Topic : Component-based
Software Engineering
Sub. Name : Software Engineering
By : SATISH DABHI
 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)
 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.
• Component Based Software Engineering(CBSE) is a
process that emphasis the design and construction of
computer based system using reusable software
“components”.
CBSE embodies the “buy , don’t built” philosophy.
A generic process model for CBSE is
given below:-
Requirements
specification
Component
analysis
Requirements
modification
System design
with reuse
Development
and
integration
System
validation
 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.
• 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.
WHY CBSE ?
 CBSE increases quality, especially evolvability and
maintainability.
 CBSE increases productivity.
 CBSE shortens development time.
 CBSE is easy to assemble and less costly to build the
system constructed from discrete parts.
 WHAT IS COMPONENT
• A component is an independent software unit that can be
composed with other components to create a software
. system.
Council and Heineman define a component as:
“ A software element that conforms to a component model and can
. Be independently deployed and composed without modification .
. accordingly to a composition standard”
 COMPONENT CHARACTERISTICS
• Independent:
A component should be independent
• Composable:
It means that all external interactions must take
place through publicly defined interfaces.
• Deployable:
A component has to be self-contained and must be
able to operate as a stand-alone entity
FUNDAMENTAL PRINCIPALS
 Independent Software Development:
Large software systems are necessarily assembled
from components developed by different people.
To facilitate independent development, it is essential to
decouple developers and users of components
 Reusability:
Some parts of a large system will necessarily be special-
purpose software, it is essential to design and assemble pre
. existing components in developing new components.
 Software quality:
A component or system needs to be shown to have desired
behavior, either through logical reasoning, tracing or testing.
 TERMS & ATTRIBUTES USED IN
SOFTWARE COMPONENT MODEL
 Syntax: It refers to the „grammar‟ or the rules followed in the
code as per the specific programming language.
 Semantics: It refers to the actual meaning and view of the
components. A component is associated with a name, an
interface and the body that includes the code.
 Composition: This relates to the construction and working
together of components.
 COMPONENT BASED SOFTWARE
DEVELOPMENT
 Component-based software development(CBSD) approach
is based on the idea to develop software systems by
selecting appropriate off-the-shelf components and then to
assemble them with a well-defined software architecture.
 The term component-based software development (CBD)
can be referred to as the process for building a system
using components.
 LIFE CYCLE IN COMPONENT-BASED
DEVELOPMENT
Requirements analysis
Software architecture selection, construction,
analysis, and evaluation
Component identification and customization
System integration
System testing
Software maintenance
 PHASES OF COMPONENT DEVELOPMENT
 System requirements
 design the component
 Develop the component
 Testing
 Functional or Black Box Testing,
 Structural or White Box Testing
 BENEFITS IN CBSD
 Management of Complexity
 Reduce Development Time
 Increased Productivity
 Improved Quality
 Reliability is increased since the components have
previously been tested in various contexts
¢ Maintenance costs are reduced.
 Efficiency and flexibility is improved due to the fact
that components can easier be added or replaced
DIFFICULTIES IN CBSD:
 Development of Components
 Quality of Components is questionable
 Lack of effective software matrix
 Component Maintenance Costs
 Reliability and Sensitivity to changes
 Unsatisfied Requirements
 CBSE VS. TRADITIONAL SE
 CBSE views the system as a set of off-the-shelf
components integrated within an appropriate architecture.
 SE seeks to create a system from scratch(building
something without tools).
 CBSE does not have any standard development models like
UML for SE
 CBSE is young, therefore long term maintainability is largely
unknown.
 SE can fulfill requirements more easily.
 CBSE fulfillment of requirements is based on the available
components.
 CBSE VS. TRADITIONAL SE-CONT..
CBSE Waterfall
Find
Select
Requirements
Analysis
Design
Adapt
Test
Deploy
Implementatio
n
Test
Release
Replace Maintenance
 CBSE Life Cycle is shorter.
 CBSE is less expensive
 CURRENT COMPONENT TECHNOLOGIES
 CORBA: Common Object Request Broker
Architecture
 IDL: Interface Description Language
 COM: Component Object Model
 EJB: Enterprise JavaBeans (Java APIs)
 Photo library composition Using CBSE
 CONCLUSION
CBSD is an inevitable next wave solution that has potential to
improve time-to-market and man power/cost trends that have
been ongoing.
CBSD is best implemented using more modern software
technologies like:
COM —
JAVA
EJB
CORBA
ActiveX
Thank You

Component Based Software Engineering

  • 1.
    Topic : Component-based SoftwareEngineering Sub. Name : Software Engineering By : SATISH DABHI
  • 2.
     Introduction A softwareprocess 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.
     Component-based Software Engineering Component-basedsoftware 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.
  • 4.
    • Component BasedSoftware Engineering(CBSE) is a process that emphasis the design and construction of computer based system using reusable software “components”. CBSE embodies the “buy , don’t built” philosophy.
  • 6.
    A generic processmodel for CBSE is given below:- Requirements specification Component analysis Requirements modification System design with reuse Development and integration System validation
  • 7.
     Stages ofCBSE : • 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.
  • 8.
    • Requirements modification: Duringthis 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. • 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.
  • 9.
    • Development andintegration: 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.
  • 10.
    WHY CBSE ? CBSE increases quality, especially evolvability and maintainability.  CBSE increases productivity.  CBSE shortens development time.  CBSE is easy to assemble and less costly to build the system constructed from discrete parts.
  • 11.
     WHAT ISCOMPONENT • A component is an independent software unit that can be composed with other components to create a software . system. Council and Heineman define a component as: “ A software element that conforms to a component model and can . Be independently deployed and composed without modification . . accordingly to a composition standard”
  • 12.
     COMPONENT CHARACTERISTICS •Independent: A component should be independent • Composable: It means that all external interactions must take place through publicly defined interfaces. • Deployable: A component has to be self-contained and must be able to operate as a stand-alone entity FUNDAMENTAL PRINCIPALS
  • 13.
     Independent SoftwareDevelopment: Large software systems are necessarily assembled from components developed by different people. To facilitate independent development, it is essential to decouple developers and users of components  Reusability: Some parts of a large system will necessarily be special- purpose software, it is essential to design and assemble pre . existing components in developing new components.  Software quality: A component or system needs to be shown to have desired behavior, either through logical reasoning, tracing or testing.
  • 14.
     TERMS &ATTRIBUTES USED IN SOFTWARE COMPONENT MODEL  Syntax: It refers to the „grammar‟ or the rules followed in the code as per the specific programming language.  Semantics: It refers to the actual meaning and view of the components. A component is associated with a name, an interface and the body that includes the code.  Composition: This relates to the construction and working together of components.
  • 15.
     COMPONENT BASEDSOFTWARE DEVELOPMENT  Component-based software development(CBSD) approach is based on the idea to develop software systems by selecting appropriate off-the-shelf components and then to assemble them with a well-defined software architecture.  The term component-based software development (CBD) can be referred to as the process for building a system using components.
  • 16.
     LIFE CYCLEIN COMPONENT-BASED DEVELOPMENT Requirements analysis Software architecture selection, construction, analysis, and evaluation Component identification and customization System integration System testing Software maintenance
  • 17.
     PHASES OFCOMPONENT DEVELOPMENT  System requirements  design the component  Develop the component  Testing  Functional or Black Box Testing,  Structural or White Box Testing
  • 18.
     BENEFITS INCBSD  Management of Complexity  Reduce Development Time  Increased Productivity  Improved Quality  Reliability is increased since the components have previously been tested in various contexts ¢ Maintenance costs are reduced.  Efficiency and flexibility is improved due to the fact that components can easier be added or replaced
  • 19.
    DIFFICULTIES IN CBSD: Development of Components  Quality of Components is questionable  Lack of effective software matrix  Component Maintenance Costs  Reliability and Sensitivity to changes  Unsatisfied Requirements
  • 20.
     CBSE VS.TRADITIONAL SE  CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture.  SE seeks to create a system from scratch(building something without tools).  CBSE does not have any standard development models like UML for SE  CBSE is young, therefore long term maintainability is largely unknown.  SE can fulfill requirements more easily.  CBSE fulfillment of requirements is based on the available components.
  • 21.
     CBSE VS.TRADITIONAL SE-CONT.. CBSE Waterfall Find Select Requirements Analysis Design Adapt Test Deploy Implementatio n Test Release Replace Maintenance  CBSE Life Cycle is shorter.  CBSE is less expensive
  • 22.
     CURRENT COMPONENTTECHNOLOGIES  CORBA: Common Object Request Broker Architecture  IDL: Interface Description Language  COM: Component Object Model  EJB: Enterprise JavaBeans (Java APIs)
  • 23.
     Photo librarycomposition Using CBSE
  • 24.
     CONCLUSION CBSD isan inevitable next wave solution that has potential to improve time-to-market and man power/cost trends that have been ongoing. CBSD is best implemented using more modern software technologies like: COM — JAVA EJB CORBA ActiveX
  • 25.