component base development
TRANSCRIPT
C B
D
omponent ase
evelopment
Presenters:MAHSA BAYAT
With
FRIK KHECHOOMIANSpring 2016
ContentSoftware Reuse
Separation of Concerns(SoC)
Component-Based Software Engineering
Component-based Development
Component-Based Software Lifecycle
Summary
Reference
What is Software Reuse?
Reuse of previously built software
Asset / Property to fulfill need in new
Development task or sub-task.
Methodologies, Practices, Processes,
Techniques, Languages, Frameworks,
CASE tools
Increased Reliability
Reduced Process Risk
Effective Use of Specialists
Standards Compliance
Accelerated Development
Benefits of Reuse
Increased maintenance costs
Lack of tool support
Pervasiveness of the “not invented here”
syndrome
Need to create and maintain a component
library
Finding and adapting reusable components
Reuse Problems
A Software Asset
What to Reuse?
Assets can be at any level of Software Process
Any Information or Tools used during Development
Application Development
Team
Reusable AssetManagement
Team
ReusableAsset Base
ApplicationAssemble
Submit potentially reusable assets
Develop for reuse
Refactor for reuse
Reuse-oriented
Software House Organizations
Seperation of Concerns (SoC)
Comprises the process of Separating a system into
Distinct parts, that adhere to a single and unique
purpose.
Value:
Increased
Maintainability Reusability
CustomizationTestability
Stability
Productivity
Object-Oriented Programming Design Patterns
Service-Oriented Programming
Procedural Programming
Component-Based Software Engineering
It is a Reuse-based approach to Defining, Implementing
and Composing loosely coupled independent
Components into systems.
Is a Branch of Software Engineering that Emphasizes the
Separation of Concerns.
Problems of Software Engineering
1. The Size & Complexity of Software Increases Rapidly
2. Single Products Become part of Product Families
3. Software is Upgraded After Deployment
4. Applications must be built from components that
were never intended to work together.
5.The Time-to-Market Must Decrease Significantly
6.The Cost of Products must be Reduced
Productivity & Flexibility
CBSE is Part of The Solution
Why Components?
Software Engineering
is Looking to
Develop:
A Catalogue of
Software
Building Blocks
Component Specification vs Component Interface
Specification is about the Component as a
whole. ( Realization Contract )
interface might be about part of a
Component only. ( Usage Contract )
Component-Based Development
The Component must be:
Designed
Implemented
Verified
Validated
Delivered
Classifying and Retrieving:
Describing Components:
Concept
What The Component Does Content
How The Concept is Realized Context
Specifies Conceptual,Operational,
Implementation features of the software
Library Indexing Methods
Uncontrolled Indexing Vocabularies
Enumerated Classification
Faceted Classification
Attribute-Value Classification
Reuse Environment Elements
Component Database
Library Management
Software Component Retrieve
Component-Based Software Lifecycle
Thanks For Your Patience