1. Topic : Component-based Software
Engineering
Course Name : Software Engineering
Course Code : ICT-605
Salman Khan
Id: 1309004
Session:2013-14
Dept. Of ICT
Comilla University
1
2. Outline
• Introduction
• Component-based software engineering
• Stages of CBSE
• Essentials of CBSE
• Components
• Component Characteristics
• Advantages & Disadvantages of CBSE
• Conclusion
2
3. Introduction
• A software process is represented as a set of work phases that is
applied to design and build a Software product.
• To represent software processes, we will use different types of
models which are called software process models. Each model
represents a process from a specific perspective.
• The three most widly used software process models are :-
The Waterfall Model
Evolutionary Development
Component-based Software Engineering (CBSE)
3
4. Component-based Software Engineering
• Component-based software engineering (CBSE) is an approach to
software development that is based on the existance of a significant
number of reusable components. It focuses on integrating these
components into a system rather than developing them from
scratch.
• A generic process model for CBSE is given below:-
Requirements
specification
Component
analysis
Requirements
modification
System design
with reuse
Development
and
integration
System
validation
4
5. Stages of CBSE
• Requirements specification : A software requirements specification
(SRS) is a document that captures complete description about how
the system is expected to perform.
• Component analysis: A search is made for the components to
implement the given requirements specification.
• Requirements modification: During this phase, the requirements are
analyzed using information about the components that have been
discovered. They are then modified to reflect the available
components. If the modifications are impossible, the component
analysis activity may be re-entered to search for alternative solutions.
5
6. Con’t
• System design with reuse: During this phase, the framework of the
system is designed or an existing framework is reused. The
designers take into account the components that are reused and
they will organize the framework accordingly.
• Development and integration: The components are integrated to
create the new system. System integration, in this model, may be
part of the development process rather than a separate activity.
• System Validation is a set of actions used to check the compliance
of any element with its purpose and functions. These actions are
planned and carried out throughout the life cycle of the system.
6
7. Essentials of CBSE
• Independent components that are completely specified by their
interfaces. There should be a clear separation between the
component Interface and its implementation.
• Component standards to facilitate component integration. That is
how components will communicate with each other.
• Middleware that provides software support for component
integration.
• A development process that is geared to reuse.
7
8. Components
The component is an independent, executable entity. It can be
made up of one or more executable objects.
Councill and Heineman defines a component as:
- “A software component is a software element that conforms
to a component model and can be independently deployed and
composed without modification according to a composition
standard.”
8
9. Component Characteristics
Component
Characteristic
Description
Standardized Component standardization means that a component used in a CBSE process has to conform to a standard
component model. This model may define component interfaces, component metadata, documentation,
composition, and deployment.
Independent A component should be independent—it should be possible to compose and deploy it without having to
use other specific components.
Composable For a component to be composable, all external interactions must take place through publicly defined
interfaces. In addition, it must provide external access to information about itself, such as its methods and
attributes.
Deployable To be deployable, a component has to be self-contained. It must be able to operate as a stand-alone entity
on a component platform that provides an implementation of the component model.
Documented Components have to be fully documented so that potential users can decide whether or not the
components meet their needs. The syntax and, ideally, the semantics of all component interfaces should
be specified.
9
10. Advantages
• Reduces development time
• Increases productivity
• Reduction in cost for
development
• Reliability is increased
• Flexibility
Disadvantages
• Development of components
• Quality of components is
questionable
• Component maintenance costs
• Sensitive to changes
10
11. Conclusion
- CBSE is not a small topic, but I’ve tried to cover all
the important points of it in my limited time. I hope it was
helpful to you all.
- Any Questions?
11