SlideShare a Scribd company logo
Component-Based Software
Engineering

Main issues:
• assemble systems out of (reusable) components
• compatibility of components
LEGO analogy

 Set of building blocks in different shapes and
colors
 Can be combined in different ways
 Composition through small stubs in one and
corresponding holes in another building block
 ⇒ LEGO blocks are generic and easily composable
 LEGO can be combined with LEGO, not with
Meccano
2
Why CBSE?

 CBSE increases quality, especially evolvability and
maintainability
 CBSE increases productivity
 CBSE shortens development time

3
Component model

 Defines the types of building block, and the recipe
for putting them together
 More precisely, a component model defines
standards for:
 Properties individual components must satisfy
 Methods and mechanisms for composing components

 Consequently, a component has to conform to
some component model
4
A software component:

 Implements some functionality
 Has explicit dependencies through provides and
required interfaces
 Communicates through its interfaces only
 Has structure and behavior that conforms to a
component model

5
A component technology

 Is the implementation of a component model, by
means of:
 Standards and guidelines for the implementation and
execution of software components
 Executable software that supports the implementation,
assembly, deployment, execution of components

 Examples: EJB, COM+, .NET, CORBA

6
Component forms

 Component goes through different stages:
development, packaging, distribution, deployment,
execution
 Across these stages, components are represented
in different forms:
 During development: UML, e.g.
 When packaging: in a .zip file, e.g.
 In the execution stage: blocks of code and data

7
Characterization of component forms

8
Component forms in different stages

9
Component specification vs component
interface
 Specification describes properties to be realized:
realization contract
 Interface describes how components interact:
usage contract
 Different in scope as well: specification is about
the component as a whole, while an interface might
be about part of a component only

10
Hiding of component internals

 Black box: only specification is known
 Glass box: internals may be inspected, but not
changed
 Grey box: part of the internals may be inspected,
limited modification is allowed
 While box: component is open to inspection and
modification

11
Managing quality in CBSE

 Who manages the quality: the component, or the
execution platform
 Scope of management: per-collaboration, or
system-wide

12
Quality management in CBSE

13
Managing quality in CBSE

 Approach A: left to the designers (e.g. when
integrating COTS components)
 Approach B: model provides standardized facilities
for managing qualities
 Approach C: component only addresses
functionality, quality in surrounding container
 Approach D: similar to C, but container interacts
with platform on quality issues

14
Common features of component models

 Infrastructure mechanisms, for binding, execution, etc
 Instantiation
 Binding (design time, compile time, …)
 Mechanisms for communication between components
 Discovery of components
 Announcement of component capabilities (interfaces)
 Development support
 Language independence
 Platform independence
 Analysis support
 Support for upgrading and extension
 Support for quality properties

15
Development process in CBSE

 Two separate development processes:
 Development of components
 Development of systems out of components

 Separate process to assess components

16
CBSE system development process

 Requirements: also considers availability of
components (like in COTS)
 Analysis and design: very similar to what we
normally do
 Implementation: less coding, focus on selection of
components, provision of glue code
 Integration: largely automated
 Testing: verification of components is necessary
 Release: as in classical approaches
 Maintenance: replace components
17
Component assessment

 Find components
 Verify components
 Store components in repository

18
Component development process

 Components are intended for reuse

⇒
 Managing requirements is more difficult
 More effort required to develop reusable
components
 More effort in documentation for consumers
19
Component development process

 Requirements: combination of top-down (from
system) and bottom-up (generality)
 Analysis and design: generality is an issue,
assumptions about system (use) must be made
 Implementation: largely determined by component
technology
 Testing: extensive (no assumptions of usage!), and
well-documented
 Release: not only executables, also metadata

20
Component maintenance

 Who is responsible: producer or consumer?
 Blame analysis: relation between manifestation of
a fault and its cause, e.g.
 Component A requires more CPU time
 As a consequence, B does not complete in time
 As required by C, so
 C issues a time-out error to its user
 Analysis: goes from C to B to A to input of A
 Who does the analysis, if producers of A,B,C are different?

21
Architecture and CBSE

 Architecture-driven: top-down: components are
identified as part of an architectural design
 Product line: family of similar products, with 1
architecture
 COTS-based: bottom-up, architecture is secondary
to components found

22
Summary

 To enable composition, components must be
compatible: achieved by component model
 Separation of development process for
components from that of assembling systems out
of components
 Architectural plan organizes how components fit
together and meet quality requirements

23

More Related Content

What's hot (11)

PPTX
V model Over View (Software Engineering)
Badar Rameez. CH.
 
PPTX
Chapter 1
Sarath Srivatsan
 
PPTX
A detailed-look-at-v-model-in-software-testing
pooja deshmukh
 
PPTX
The V Model
Damian T. Gordon
 
PDF
OSS Project Quality & management
fOSSa - Free Open Source Software Academia Conference
 
PDF
Building a CI/CD Pipeline for PHP apps
Juan Manuel Torres
 
PDF
PhD-viva_ver0.4
SAADBIN ABID, PhD
 
PPTX
Software engineering - Topics and Research Areas
Techsparks
 
PPT
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma
 
PDF
Agile mODEL
Anjana Verma
 
PPTX
What is waterfall
Abdullah Al Rumy
 
V model Over View (Software Engineering)
Badar Rameez. CH.
 
Chapter 1
Sarath Srivatsan
 
A detailed-look-at-v-model-in-software-testing
pooja deshmukh
 
The V Model
Damian T. Gordon
 
Building a CI/CD Pipeline for PHP apps
Juan Manuel Torres
 
PhD-viva_ver0.4
SAADBIN ABID, PhD
 
Software engineering - Topics and Research Areas
Techsparks
 
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma
 
Agile mODEL
Anjana Verma
 
What is waterfall
Abdullah Al Rumy
 

Viewers also liked (20)

DOCX
Spm file33
Poonam Singh
 
PDF
Microservices without Servers
Dev_Events
 
PDF
Docker & PHP - Practical use case
rjsmelo
 
PPTX
Docker for PHP Developers - ZendCon 2016
Chris Tankersley
 
PDF
2013 Social Admissions Report
Uversity, Inc.
 
PPTX
Information Design Web Planning Mockup
ANGELA Smithers
 
PDF
Computer-free Website Development Demo - WordPressDC Jan 2015
Anthony D. Paul
 
PPTX
Docker for Developers - PNWPHP 2016 Workshop
Chris Tankersley
 
PPTX
Php development with Docker
Michael Bui
 
PPT
MockupBuilder
Lviv Startup Club
 
PPT
NTR Lab - bespoke software development in Russia
Olessya
 
ODP
Git Workshop : Getting Started
Wildan Maulana
 
PDF
Especialidade de inclusão 5
GRUPO ESCOTEIRO JOÃO OSCALINO
 
PPTX
Engine lab software hybrid cloud specialists
John Rowan
 
PPTX
Introduction To Git Workshop
themystic_ca
 
PDF
Lab docker
Bruno Cornec
 
PPTX
The App Evolution
Dev_Events
 
PDF
An introduction to contianers and Docker for PHP developers
Robert McFrazier
 
PDF
Building Next Generation Applications and Microservices
Dev_Events
 
PDF
Next Generation Application Development
Ken Ng
 
Spm file33
Poonam Singh
 
Microservices without Servers
Dev_Events
 
Docker & PHP - Practical use case
rjsmelo
 
Docker for PHP Developers - ZendCon 2016
Chris Tankersley
 
2013 Social Admissions Report
Uversity, Inc.
 
Information Design Web Planning Mockup
ANGELA Smithers
 
Computer-free Website Development Demo - WordPressDC Jan 2015
Anthony D. Paul
 
Docker for Developers - PNWPHP 2016 Workshop
Chris Tankersley
 
Php development with Docker
Michael Bui
 
MockupBuilder
Lviv Startup Club
 
NTR Lab - bespoke software development in Russia
Olessya
 
Git Workshop : Getting Started
Wildan Maulana
 
Especialidade de inclusão 5
GRUPO ESCOTEIRO JOÃO OSCALINO
 
Engine lab software hybrid cloud specialists
John Rowan
 
Introduction To Git Workshop
themystic_ca
 
Lab docker
Bruno Cornec
 
The App Evolution
Dev_Events
 
An introduction to contianers and Docker for PHP developers
Robert McFrazier
 
Building Next Generation Applications and Microservices
Dev_Events
 
Next Generation Application Development
Ken Ng
 
Ad

Similar to component based softwrae engineering Cbse (20)

PPT
Cbse
annuaniket
 
PPTX
Component Based Software Engineering
SatishDabhi1
 
PPTX
Component-based Software Engineering
Salman Khan
 
PPTX
Presentation on component based software engineering(cbse)
Chandan Thakur
 
PPTX
component based development model
Muneeba Qamar
 
PPTX
Component based-software-engineering
Wasim Raza
 
PPTX
Component based-software-engineering
Wasim Raza
 
PPT
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
WrushabhShirsat3
 
PDF
SE UNIT-3.pdf
Dr. Radhey Shyam
 
PPTX
KIOIO jert fill for a art and design .pptx
aethroinkstudio
 
PPTX
Component based software engineering
Charotar University Of Science And Technology,Gujrat
 
PPT
2.SDLC Models.ppt
ssuser1288e7
 
PPTX
design-3 software engineering unit three
Devendra Meena
 
PPT
2 (1).ppt
pranavdesai63
 
PPT
Ch19
phanleson
 
PPT
SE-4 software engineering nekdnhjnrindnj
125gredmi
 
PPTX
Software Engineering Unit 3 PPT Software Design
mayanksingh678141
 
PPT
Hci In The Software Process
ahmad bassiouny
 
PPT
HCI 3e - Ch 6: HCI in the software process
Alan Dix
 
Component Based Software Engineering
SatishDabhi1
 
Component-based Software Engineering
Salman Khan
 
Presentation on component based software engineering(cbse)
Chandan Thakur
 
component based development model
Muneeba Qamar
 
Component based-software-engineering
Wasim Raza
 
Component based-software-engineering
Wasim Raza
 
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
WrushabhShirsat3
 
SE UNIT-3.pdf
Dr. Radhey Shyam
 
KIOIO jert fill for a art and design .pptx
aethroinkstudio
 
Component based software engineering
Charotar University Of Science And Technology,Gujrat
 
2.SDLC Models.ppt
ssuser1288e7
 
design-3 software engineering unit three
Devendra Meena
 
2 (1).ppt
pranavdesai63
 
Ch19
phanleson
 
SE-4 software engineering nekdnhjnrindnj
125gredmi
 
Software Engineering Unit 3 PPT Software Design
mayanksingh678141
 
Hci In The Software Process
ahmad bassiouny
 
HCI 3e - Ch 6: HCI in the software process
Alan Dix
 
Ad

Recently uploaded (20)

PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Timothy Rottach - Ramp up on AI Use Cases, from Vector Search to AI Agents wi...
AWS Chicago
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 

component based softwrae engineering Cbse

  • 1. Component-Based Software Engineering Main issues: • assemble systems out of (reusable) components • compatibility of components
  • 2. LEGO analogy  Set of building blocks in different shapes and colors  Can be combined in different ways  Composition through small stubs in one and corresponding holes in another building block  ⇒ LEGO blocks are generic and easily composable  LEGO can be combined with LEGO, not with Meccano 2
  • 3. Why CBSE?  CBSE increases quality, especially evolvability and maintainability  CBSE increases productivity  CBSE shortens development time 3
  • 4. Component model  Defines the types of building block, and the recipe for putting them together  More precisely, a component model defines standards for:  Properties individual components must satisfy  Methods and mechanisms for composing components  Consequently, a component has to conform to some component model 4
  • 5. A software component:  Implements some functionality  Has explicit dependencies through provides and required interfaces  Communicates through its interfaces only  Has structure and behavior that conforms to a component model 5
  • 6. A component technology  Is the implementation of a component model, by means of:  Standards and guidelines for the implementation and execution of software components  Executable software that supports the implementation, assembly, deployment, execution of components  Examples: EJB, COM+, .NET, CORBA 6
  • 7. Component forms  Component goes through different stages: development, packaging, distribution, deployment, execution  Across these stages, components are represented in different forms:  During development: UML, e.g.  When packaging: in a .zip file, e.g.  In the execution stage: blocks of code and data 7
  • 9. Component forms in different stages 9
  • 10. Component specification vs component interface  Specification describes properties to be realized: realization contract  Interface describes how components interact: usage contract  Different in scope as well: specification is about the component as a whole, while an interface might be about part of a component only 10
  • 11. Hiding of component internals  Black box: only specification is known  Glass box: internals may be inspected, but not changed  Grey box: part of the internals may be inspected, limited modification is allowed  While box: component is open to inspection and modification 11
  • 12. Managing quality in CBSE  Who manages the quality: the component, or the execution platform  Scope of management: per-collaboration, or system-wide 12
  • 14. Managing quality in CBSE  Approach A: left to the designers (e.g. when integrating COTS components)  Approach B: model provides standardized facilities for managing qualities  Approach C: component only addresses functionality, quality in surrounding container  Approach D: similar to C, but container interacts with platform on quality issues 14
  • 15. Common features of component models  Infrastructure mechanisms, for binding, execution, etc  Instantiation  Binding (design time, compile time, …)  Mechanisms for communication between components  Discovery of components  Announcement of component capabilities (interfaces)  Development support  Language independence  Platform independence  Analysis support  Support for upgrading and extension  Support for quality properties 15
  • 16. Development process in CBSE  Two separate development processes:  Development of components  Development of systems out of components  Separate process to assess components 16
  • 17. CBSE system development process  Requirements: also considers availability of components (like in COTS)  Analysis and design: very similar to what we normally do  Implementation: less coding, focus on selection of components, provision of glue code  Integration: largely automated  Testing: verification of components is necessary  Release: as in classical approaches  Maintenance: replace components 17
  • 18. Component assessment  Find components  Verify components  Store components in repository 18
  • 19. Component development process  Components are intended for reuse ⇒  Managing requirements is more difficult  More effort required to develop reusable components  More effort in documentation for consumers 19
  • 20. Component development process  Requirements: combination of top-down (from system) and bottom-up (generality)  Analysis and design: generality is an issue, assumptions about system (use) must be made  Implementation: largely determined by component technology  Testing: extensive (no assumptions of usage!), and well-documented  Release: not only executables, also metadata 20
  • 21. Component maintenance  Who is responsible: producer or consumer?  Blame analysis: relation between manifestation of a fault and its cause, e.g.  Component A requires more CPU time  As a consequence, B does not complete in time  As required by C, so  C issues a time-out error to its user  Analysis: goes from C to B to A to input of A  Who does the analysis, if producers of A,B,C are different? 21
  • 22. Architecture and CBSE  Architecture-driven: top-down: components are identified as part of an architectural design  Product line: family of similar products, with 1 architecture  COTS-based: bottom-up, architecture is secondary to components found 22
  • 23. Summary  To enable composition, components must be compatible: achieved by component model  Separation of development process for components from that of assembling systems out of components  Architectural plan organizes how components fit together and meet quality requirements 23