Component-Based Software Engineering

offbeatnothingSoftware and s/w Development

Dec 2, 2013 (3 years and 9 months ago)

62 views


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