2. Content
Software Reuse
Separation of Concerns(SoC)
Component-Based Software Engineering
Component-based Development
Component-Based Software Lifecycle
Summary
Reference
3. 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
4. Increased Reliability
Reduced Process Risk
Effective Use of Specialists
Standards Compliance
Accelerated Development
Benefits of Reuse
5. 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
6. A Software Asset
What to Reuse?
Assets can be at any level of Software Process
Any Information or Tools used during Development
8. 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
Customization
Testability
Stability
Productivity
11. 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.
12. 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
14. 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 )
18. 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