This document discusses component-based software engineering (CBSE). It defines CBSE as building software from established software components rather than building from scratch. Components interact through well-defined interfaces. CBSE aims to achieve better quality software more quickly and at lower cost through systematic reuse. Advantages include increased reliability, reduced costs, faster development, and standards compliance. Challenges include increased development time, harder requirements identification, and testing difficulties. CBSE has been successful in domains like web applications and office tools.
4. What is Component-Based Software Engineering (CBSE)?
Component
◦ What is a component?
◦ Aspects of well-designed components
Integration of components
Advantages of CBSE
Disadvantages of CBSE
5. To explain that CBSE is used to develop standard
components
To explain the laws of software development
To describe component and component integration
6. Component-based software engineering is the idea of
building software from established software
components, as opposed to building the software from
the ground up.
Components interact through well-defined interfaces.
7. In most engineering disciplines, systems are
designed by composition (building system out of
components that have been used in other systems)
Software engineering has focused on custom
development of components
To achieve better software quality, more quickly, at
lower costs, software engineers are beginning to
adopt systematic reuse as a design process
8. Increased Reliability
◦ components already exercised in working systems
Reduced Process Risk
◦ less uncertainty in development costs
Effective Use of Specialists
◦ reuse components instead of people
Standards Compliance
◦ embed standards in reusable components
Accelerated Development
◦ avoid custom development and speed up delivery
10. Conservation of familiarity
Continuing growth
Declining quality
Feed back systems
11. CBSE based software engineering is an approach to
software development that relies on software reuse
• Reusability
• Sustainability
• Extensibility
12. Reusing components in different systems
Reusing components demands certain constraints like
the necessity for ..
Good documentation
Well organized reuse process
Similar architecture
C1
Application1 Application2
C1 C2 C3 C1 C4 C5
13. Alternative implementation of a component may be used
The component used should meet the system
requirements
Application 1 Application2
c1 c2 c3 C1’ c2 c3
14. Extending components that are part of a system
Add additional Components
c1 c2 c3
c1
C2+ c3
c1 c2 c3
c2 c4 c3c1
15. Component integration is relatively easy, the main focus
is on maintenance.
Component
Builder Integrator Customer
16. COTS systems are usually complete applications
library the off an applications programming
interface (API)
Building large systems by integrating COTS
components is a viable development strategy for
some types of systems (e.g. E-commerce or video
games)
17. Divides large projects into smaller subprojects
CBSE is language independent.
Reduced time to market
Increased productivity/quality
Reusability of components
Easy to replace components
18. Making Components Reusable
◦ Increased Development time
◦ Harder to identify requirements
◦ Decreases usability
Choosing Middleware
◦ Incompatible technologies
Testing is Harder
◦ Unknown uses of components
High initial cost
◦ Training of developers
19. Component based approach has been successful in
many application domains
Web and internet based applications
Office applications like the GUI tools
Telecommunications and consumer electronics
20. Software evolution in the age of component-based
software engineering M.M. Lehman and J. F. Rami
Towards Component-Based Software Engineering Gilda
Pour San Jose State University U.S.A.
Maintaining Component based software systems .Jeffrey
Voes Reliable Software Technologies.