Component-Based Software Engineering

1. Introduction
 2. Development Life-Cycle
 3. Current Component Technologies
 4. Component Quality Assurance
 5. Advantages and Disadvantages
What is component based software
engineering (CBSE)?
› Components
› Component Model
› Component Framework
An abstract implementation of
functionality that conforms to a
component model.
Small systems for small pieces of
Designed by third party developers.
Specify rules that must be obeyed by the
 Standardized Assumptions
› Control Flow
› Synchronization
Needed to remove sources of interface
Software services to support and enforce
a component model.
 Usually designed by the developer using
the component model.
 Can be viewed as a mini operating
1. Requirements Analysis
 2. Software Architecture Selection
 3. Component Identification and
 4. System Integration
 5. System Testing
 6. Software Maintenance
Determine what functionality is required
by client.
Look at requirements with possible
components in mind.
Choosing a component model to be
used in your solution.
 Determines what components will be
available to you.
 Different software architectures can be
more appropriate than others based on
the application.
Most important phase of CBSE
 Two main parts of this phase
› 1. Evaluation of each component canidate
› 2. Customization of the chosen components
Need to look at included functionality
and customization options of each
Bring all the chosen components
 Components are built on top of chosen
architecture framework.
 Other Tasks
› Testing
› Change and Reintegration
Tests are needed for each individual
 Tests for the system framework
 Testing of the components is limited
 Less testing required for software
Correcting faults, improving system
performance, and adapting the system.
 Most controllable maintenance is done
on the component
 Maintenance of components handled
primarily by developer of the
Visual Basic Controls (VBX)
 ActiveX controls
 Class Libraries
 JavaBeans
Common object request broker
 Allows for communication between
applications developed separately.
 A server object call ORB controls things.
 ORB locates the objects that clients call
to use.
Model consists of two parts
› The clients side component development
› Server side component development
Uses portable Java bytecodes and java
applets trust security.
 Offers a portable, secure, and reliable
environment for developing robust
Component object model
 Defines how clients and components will
 Provides a binary standard that
components and clients must follow.
 Extension of COM known as DCOM or
distributed COM.
Quality Characteristics of Components
› Size
› Complexity
› Reuse Frequency
› Reliability
Components cannot be too large
Large components are costly and may
not be cost effective until used multiple
Makes the components difficult to use.
Overly simple components may not be
beneficial for reuse.
Quality is more difficult to ensure with a
complex system.
The number of times that a component is
used is a very valuable indicator of how
useful a component is.
Offer financial saving, which can allow
resources to be used elsewhere to
improve quality.
Probability of failure free operations.
Failing components can be easily
How to certify quality of a component?
How to certify quality of software systems
based on components?
Independent extensions
 Component Market
 Component models lessen
unanticipated interactions between
 Reduced time to market
 Reduced Costs
Time to develop software components
takes a big effort.
 Components can be pricey.
 Requirements in component
technologies lacking
 Conflict between usability and reusability
of components.
 Maintenance cost for components
Component-Based Development
 Components
 Look at the quality of the components
 Independent Extensions
 Reduced Time-to-Market
 Conflict between reusability and usability