SlideShare uma empresa Scribd logo
1 de 23
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

Mais conteúdo relacionado

Mais procurados

V model Over View (Software Engineering)
V model Over View (Software Engineering) V model Over View (Software Engineering)
V model Over View (Software Engineering) Badar Rameez. CH.
 
A detailed-look-at-v-model-in-software-testing
A detailed-look-at-v-model-in-software-testingA detailed-look-at-v-model-in-software-testing
A detailed-look-at-v-model-in-software-testingpooja deshmukh
 
Building a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP appsBuilding a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP appsJuan Manuel Torres
 
Software engineering - Topics and Research Areas
Software engineering - Topics and Research AreasSoftware engineering - Topics and Research Areas
Software engineering - Topics and Research AreasTechsparks
 
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...Mohammed Kharma
 

Mais procurados (11)

V model Over View (Software Engineering)
V model Over View (Software Engineering) V model Over View (Software Engineering)
V model Over View (Software Engineering)
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
A detailed-look-at-v-model-in-software-testing
A detailed-look-at-v-model-in-software-testingA detailed-look-at-v-model-in-software-testing
A detailed-look-at-v-model-in-software-testing
 
The V Model
The V ModelThe V Model
The V Model
 
OSS Project Quality & management
OSS Project Quality & managementOSS Project Quality & management
OSS Project Quality & management
 
Building a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP appsBuilding a CI/CD Pipeline for PHP apps
Building a CI/CD Pipeline for PHP apps
 
PhD-viva_ver0.4
PhD-viva_ver0.4PhD-viva_ver0.4
PhD-viva_ver0.4
 
Software engineering - Topics and Research Areas
Software engineering - Topics and Research AreasSoftware engineering - Topics and Research Areas
Software engineering - Topics and Research Areas
 
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
Mohammed Kharma-A flexible framework for quality assurance and testing of sof...
 
Agile mODEL
Agile mODELAgile mODEL
Agile mODEL
 
What is waterfall
What is waterfallWhat is waterfall
What is waterfall
 

Destaque

Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without ServersDev_Events
 
Docker & PHP - Practical use case
Docker & PHP - Practical use caseDocker & PHP - Practical use case
Docker & PHP - Practical use caserjsmelo
 
Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016Chris Tankersley
 
2013 Social Admissions Report
 2013 Social Admissions Report   2013 Social Admissions Report
2013 Social Admissions Report Uversity, Inc.
 
Information Design Web Planning Mockup
Information Design Web Planning MockupInformation Design Web Planning Mockup
Information Design Web Planning MockupANGELA Smithers
 
Computer-free Website Development Demo - WordPressDC Jan 2015
 Computer-free Website Development Demo - WordPressDC Jan 2015 Computer-free Website Development Demo - WordPressDC Jan 2015
Computer-free Website Development Demo - WordPressDC Jan 2015Anthony D. Paul
 
Docker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopDocker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopChris Tankersley
 
Php development with Docker
Php development with DockerPhp development with Docker
Php development with DockerMichael Bui
 
NTR Lab - bespoke software development in Russia
NTR Lab - bespoke software development in RussiaNTR Lab - bespoke software development in Russia
NTR Lab - bespoke software development in RussiaOlessya
 
Git Workshop : Getting Started
Git Workshop : Getting StartedGit Workshop : Getting Started
Git Workshop : Getting StartedWildan Maulana
 
Engine lab software hybrid cloud specialists
Engine lab software hybrid cloud specialistsEngine lab software hybrid cloud specialists
Engine lab software hybrid cloud specialistsJohn Rowan
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshopthemystic_ca
 
The App Evolution
The App Evolution The App Evolution
The App Evolution Dev_Events
 
An introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersAn introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersRobert McFrazier
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Dev_Events
 
Next Generation Application Development
Next Generation Application DevelopmentNext Generation Application Development
Next Generation Application DevelopmentKen Ng
 

Destaque (20)

Spm file33
Spm file33Spm file33
Spm file33
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without Servers
 
Docker & PHP - Practical use case
Docker & PHP - Practical use caseDocker & PHP - Practical use case
Docker & PHP - Practical use case
 
Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016Docker for PHP Developers - ZendCon 2016
Docker for PHP Developers - ZendCon 2016
 
2013 Social Admissions Report
 2013 Social Admissions Report   2013 Social Admissions Report
2013 Social Admissions Report
 
Information Design Web Planning Mockup
Information Design Web Planning MockupInformation Design Web Planning Mockup
Information Design Web Planning Mockup
 
Computer-free Website Development Demo - WordPressDC Jan 2015
 Computer-free Website Development Demo - WordPressDC Jan 2015 Computer-free Website Development Demo - WordPressDC Jan 2015
Computer-free Website Development Demo - WordPressDC Jan 2015
 
Docker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 WorkshopDocker for Developers - PNWPHP 2016 Workshop
Docker for Developers - PNWPHP 2016 Workshop
 
Php development with Docker
Php development with DockerPhp development with Docker
Php development with Docker
 
MockupBuilder
MockupBuilderMockupBuilder
MockupBuilder
 
NTR Lab - bespoke software development in Russia
NTR Lab - bespoke software development in RussiaNTR Lab - bespoke software development in Russia
NTR Lab - bespoke software development in Russia
 
Git Workshop : Getting Started
Git Workshop : Getting StartedGit Workshop : Getting Started
Git Workshop : Getting Started
 
Especialidade de inclusão 5
Especialidade de inclusão 5Especialidade de inclusão 5
Especialidade de inclusão 5
 
Engine lab software hybrid cloud specialists
Engine lab software hybrid cloud specialistsEngine lab software hybrid cloud specialists
Engine lab software hybrid cloud specialists
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
 
Lab docker
Lab dockerLab docker
Lab docker
 
The App Evolution
The App Evolution The App Evolution
The App Evolution
 
An introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developersAn introduction to contianers and Docker for PHP developers
An introduction to contianers and Docker for PHP developers
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices
 
Next Generation Application Development
Next Generation Application DevelopmentNext Generation Application Development
Next Generation Application Development
 

Semelhante a component based softwrae engineering Cbse

Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software EngineeringSatishDabhi1
 
Component-based Software Engineering
Component-based Software EngineeringComponent-based Software Engineering
Component-based Software EngineeringSalman Khan
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Chandan Thakur
 
component based development model
component based development modelcomponent based development model
component based development modelMuneeba Qamar
 
Component based-software-engineering
Component based-software-engineeringComponent based-software-engineering
Component based-software-engineeringWasim Raza
 
Component based-software-engineering
Component based-software-engineeringComponent based-software-engineering
Component based-software-engineeringWasim Raza
 
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptWrushabhShirsat3
 
Software Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software DesignSoftware Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software Designmayanksingh678141
 
Hci In The Software Process
Hci In The Software ProcessHci In The Software Process
Hci In The Software Processahmad bassiouny
 
HCI 3e - Ch 6: HCI in the software process
HCI 3e - Ch 6:  HCI in the software processHCI 3e - Ch 6:  HCI in the software process
HCI 3e - Ch 6: HCI in the software processAlan Dix
 
HCI - Chapter 6
HCI - Chapter 6HCI - Chapter 6
HCI - Chapter 6Alan Dix
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback systemAkshay Surve
 

Semelhante a component based softwrae engineering Cbse (20)

Cbse
CbseCbse
Cbse
 
Component Based Software Engineering
Component Based Software EngineeringComponent Based Software Engineering
Component Based Software Engineering
 
Component-based Software Engineering
Component-based Software EngineeringComponent-based Software Engineering
Component-based Software Engineering
 
Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)Presentation on component based software engineering(cbse)
Presentation on component based software engineering(cbse)
 
component based development model
component based development modelcomponent based development model
component based development model
 
Component based-software-engineering
Component based-software-engineeringComponent based-software-engineering
Component based-software-engineering
 
Component based-software-engineering
Component based-software-engineeringComponent based-software-engineering
Component based-software-engineering
 
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDpptunit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
unit-iipart-1.WDQWDQWDQWDQWDQWDQWDQWDQWDQWDppt
 
SE UNIT-3.pdf
SE UNIT-3.pdfSE UNIT-3.pdf
SE UNIT-3.pdf
 
Component based software engineering
Component based software engineeringComponent based software engineering
Component based software engineering
 
2.SDLC Models.ppt
2.SDLC Models.ppt2.SDLC Models.ppt
2.SDLC Models.ppt
 
2 (1).ppt
2 (1).ppt2 (1).ppt
2 (1).ppt
 
Ch19
Ch19Ch19
Ch19
 
Ch17
Ch17Ch17
Ch17
 
Software Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software DesignSoftware Engineering Unit 3 PPT Software Design
Software Engineering Unit 3 PPT Software Design
 
Hci In The Software Process
Hci In The Software ProcessHci In The Software Process
Hci In The Software Process
 
HCI 3e - Ch 6: HCI in the software process
HCI 3e - Ch 6:  HCI in the software processHCI 3e - Ch 6:  HCI in the software process
HCI 3e - Ch 6: HCI in the software process
 
HCI - Chapter 6
HCI - Chapter 6HCI - Chapter 6
HCI - Chapter 6
 
Student feedback system
Student feedback systemStudent feedback system
Student feedback system
 
chapter 2 (1).ppt
chapter 2 (1).pptchapter 2 (1).ppt
chapter 2 (1).ppt
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Último (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

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