Component-Based Software Engineering

advertisement
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

Download