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
functionality.
Designed by third party developers.
Specify rules that must be obeyed by the
components
Standardized Assumptions
› Control Flow
› Synchronization
Needed to remove sources of interface
mismatches.
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
system
1. Requirements Analysis
2. Software Architecture Selection
3. Component Identification and
Customization
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
component.
Bring all the chosen components
together
Components are built on top of chosen
architecture framework.
Other Tasks
› Testing
› Change and Reintegration
Tests are needed for each individual
component
Tests for the system framework
Testing of the components is limited
Less testing required for software
components
Correcting faults, improving system
performance, and adapting the system.
Most controllable maintenance is done
on the component
architecture/framework
Maintenance of components handled
primarily by developer of the
component.
Visual Basic Controls (VBX)
ActiveX controls
Class Libraries
JavaBeans
CORBA
COM
Common object request broker
architecture
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
components.
Component object model
Defines how clients and components will
interact
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
times.
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
replaced.
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
components
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
increased.
Component-Based Development
Components
Look at the quality of the components
Independent Extensions
Reduced Time-to-Market
Conflict between reusability and usability