Introduction to Component-Based Software Engineering
description
Transcript of Introduction to Component-Based Software Engineering
![Page 1: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/1.jpg)
Page 1, April 20, 2023
Introduction toIntroduction to
Component-Based Software Component-Based Software
EngineeringEngineeringIvica Crnkovic
Mälardalen University,
Department of Computer Engineering
Sweden
http://www.idt.mdh.se/~icc
![Page 2: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/2.jpg)
Page 2, April 20, 2023
Topic overviewTopic overview
1 The challenges of SW- how can CBD help?
2 What is a software component?
3 Software Architecture and Software Components
4 Basic principles of component-based approach
5 Component-based Software Development Process
6 Problems and research issues
7 References
![Page 3: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/3.jpg)
Page 3, April 20, 2023
Part 1 Part 1
The challenges of software development The challenges of software development
- how can component software help?- how can component software help?
![Page 4: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/4.jpg)
Page 4, April 20, 2023
Software problemsSoftware problems
How to develop high quality software in an efficient an inexpensive way?
The “software crisis” (1968) still exists:
SW is late
SW is buggy
SW is expensive
SW is difficult to understand
Software is difficult to maintain (problems with software life cycle)
NATO conf 1968
SW crisis
SW engineering
components
NATO conf 1968
SW crisis
SW engineering
components
![Page 5: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/5.jpg)
Page 5, April 20, 2023
SW Productivity Gap (ITEA)SW Productivity Gap (ITEA)
www.itea-office.org
![Page 6: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/6.jpg)
Page 6, April 20, 2023
Challanges of Software EngineeringChallanges of Software Engineering
(The author of slides with blue background: Michel Chaudron, TUe
![Page 7: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/7.jpg)
Page 7, April 20, 2023
![Page 8: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/8.jpg)
Page 9, April 20, 2023
Answer: Component-based DevelopmentAnswer: Component-based Development
Idea:
Build software systems from pre-existing components (like building cars from existing components)
Building components that can be reused in different applications
Separate development of components from development of systems
![Page 9: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/9.jpg)
Page 10, April 20, 2023
Component-Based Software Engineering (CBSE)Component-Based Software Engineering (CBSE)
Provides methods and tools for
Building systems from components
Building components as reusable units
Performing maintenance by replacement of components and introducing new components into the system
![Page 10: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/10.jpg)
Page 11, April 20, 2023
application
Component#1
Component #
2
Component#3
Component#4
componentsComponent-based software construction (1)Component-based software construction (1)
Component
#1
Component #
2
Component#3
Component#4
construction
![Page 11: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/11.jpg)
Page 12, April 20, 2023
Concentration on the business partsConcentration on the business parts
Business issues
GUI
Communication
GUI
Data model
Deployment
- - - - - -
INFRASTRUCTURE
StandardReusable parts
Application specific
“30 % of SW development effort is spent on infrastructure that adds no value”
![Page 12: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/12.jpg)
Page 15, April 20, 2023
Part 2 Part 2
What is a software component?What is a software component?
![Page 13: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/13.jpg)
Page 16, April 20, 2023
The software architecture of a program or computing system is the structure or structures of the system, which comprise software components [and connectors], the externally visible properties of those components [and connectors] and the relationships among them.”
Bass L., Clements P., and Kazman R., Software Architecture in Practice,
C1
C4
C2
C5C3
Architectural point of viewArchitectural point of view
![Page 14: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/14.jpg)
1704/20/23
CORBA (Common Object Request Broker ArchitectureCORBA (Common Object Request Broker Architecture))
CORBAappsCORBAapps CORBAdomainsCORBAdomains CORBAfacilitiesCORBAfacilities
CORBAservicesCORBAservices
Another exampleAnother example
Object Management Architecture OverviewObject Management Architecture Overview
TransactionsTransactionsTransactionsTransactions EventEventEventEvent SecuritySecuritySecuritySecurity NamingNamingNamingNaming
![Page 15: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/15.jpg)
Corba component modelCorba component model
Page 18, April 20, 2023
![Page 16: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/16.jpg)
Page 19, April 20, 2023
Some successful components: In the past...Some successful components: In the past...
Mathematical libraries
NAGLIB - Fortran Library
Mathematical and physical functions
Characteristics
Well defined theory behind the functions - very well standardized
Simple Interface - procedural type of communication between client (application) and server (component)
Well defined input and output
Relative good error handling
Difficult for adaptation (not flexible)
![Page 17: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/17.jpg)
Page 20, April 20, 2023
Some successful components: The big ones…Some successful components: The big ones…
Client - server type
Database
Relational databases, (Object-oriented databases, hierarchical databases)
Standard API - SQL
Different dialects of the standard
X-windows
Standard API, callback type of communication
High level of adaptation
Too general - difficult to use it
![Page 18: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/18.jpg)
Page 21, April 20, 2023
Even bigger components: Operating systemsEven bigger components: Operating systems
Example - Unix
A general purpose OS, used as a platform for dedicated purposes
Standard API - POSIX
Commands uses as components in a shell-process
Example: sort out words from text files:
$ cat file1 file2 file3 ... | sed ’s/ /\ /g’ | sort -u >words.txt
Different variants, POSIX is not sufficient
Not a real component behavior (difficult to replace or update)
MS Windows ...
![Page 19: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/19.jpg)
Page 22, April 20, 2023
Frameworks - building Frameworks - building ““the real componentsthe real components””
Component Object Management - COM, Active X
Enterprise JavaBeans
CORBA components
.NET
Late binding - easy replacement
Word document
Excel document
My_application
Excel document
component
![Page 20: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/20.jpg)
Page 23, April 20, 2023
Example: The architecture of a car control systemExample: The architecture of a car control system
Vehicle mechanics
ECU
Sensor ActuatorSensor
ECU
Sensor ActuatorSensor
ECU
Sensor ActuatorSensor
gateway
(CAN) BUS
brake injection
Infotaiment
ECU – Electronic Control Unit
![Page 21: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/21.jpg)
Page 24, April 20, 2023
The architectural design challenge The architectural design challenge
Vehicle stability Suspension Drive by wire …… Complex functions
Local Control Functions
Sensor ActuatorSensor
Basic functionsLocal Control Functions
Sensor ActuatorSensor
How to implement complex functions based on local control functions?
![Page 22: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/22.jpg)
Page 25, April 20, 2023
Problem: resource sharing Problem: resource sharing
Sensor 1
Sensor 2
Sensor 3
Sensor ..
Networkresources
++++++++++
++++++++++
++++++++++Sensor ..
Executionresources
Node 1
Node 2
Node 3
Node …
Node …
Actuator 1
Actuator 2
Actuator 3
Actuator …
Actuator …
Can functions of different criticality be allowed to share resources?
![Page 23: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/23.jpg)
Page 26, April 20, 2023
sensors
Challenge – open and dependable platformChallenge – open and dependable platform
Vehicle
actuators
Engine Control Local brake Control Transmission ………local
Vehicle stability
Cruise control
Antispin Global (complex) functions
Hardware
Input/output drivers
MiddlewareECU ECU ECU
Applications
SOFTWARE COMPONENTS
Collision detection
![Page 24: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/24.jpg)
Page 27, April 20, 2023
Challenge – open and dependable platformChallenge – open and dependable platform
Hardware
Input/output drivers
Middleware
ECU ECUECU
Applications C1 C2
RequirementsSeparation of hw from SW developmentSeparation of SW component development
![Page 25: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/25.jpg)
Page 28, April 20, 2023
Szyperski: Software Component DefinitionSzyperski: Software Component Definition
Szyperski (Component Software beyond OO programming)
A software component is
a unit of composition
with contractually specified interfaces
and explicit context dependencies only.
A software component
can be deployed independently
it is subject to composition by third party.
Will you meet him?
![Page 26: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/26.jpg)
Page 29, April 20, 2023
Composition unitComposition unit
A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party. –Clemens Szyperski
How much components fit together?
How much costs the glue code?
Components
Glue codeSystem
![Page 27: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/27.jpg)
Page 30, April 20, 2023
What is a contract?What is a contract?
A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party.
Interface – component specification
Contract - A specification attached to an interface that mutually binds the clients and providers of the components.
Functional Aspects (API)
Pre- and post-conditions for the operations specified by API.
Non functional aspects (different constrains, environment requirements, etc.)
![Page 28: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/28.jpg)
Page 31, April 20, 2023
What is an explicit context dependency?What is an explicit context dependency?
A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party.
Provided and Required Interface
Context dependencies - Specification of the deployment environment and run-time environment
Example: Which tools, platforms, resources or other components are required?
Do
![Page 29: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/29.jpg)
Page 32, April 20, 2023
A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third party.
Late binding - dependencies are resolved at load or run-time.
What does it mean deployed independently?What does it mean deployed independently?
Platform (framework)Platform (framework)
connector
![Page 30: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/30.jpg)
Page 34, April 20, 2023
Components and Interfaces - UML definitionComponents and Interfaces - UML definition
Component
Interface
Operation
*
in-interfaces*
*
*
Name
1
1
1 1
1
1
Parameter
1
*
Type
1 *
OutParameterInParameter
InOutParameter
*
out-interfaces
*
Component – a set of interfacesrequired (in-interfaces)provided (out-interfaces)
Interface – set of operationsOperations – input and output parameters of
certain type
![Page 31: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/31.jpg)
Page 35, April 20, 2023
Contractually specified interfaces in a UML metamodelContractually specified interfaces in a UML metamodel
Interface
Component
*
in-interfaces*
*
out-interfaces
*
State
1 *
Constraint
*
*
* 1
Invariant
1
*
1
*
Operation
*
*
Parameter
1
*
PreCondition
* 1
PostCondition
1 *
1
*
InParameter OutParameter
*
*
*
*
*
*
*
2
![Page 32: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/32.jpg)
Page 36, April 20, 2023
Is Szyperski definition enough?
![Page 33: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/33.jpg)
Page 37, April 20, 2023
Component specificationComponent specification
Components are described by their interfaces
(A black box character)
glass boxglass box
black boxblack box
white boxwhite box
grey boxgrey box
![Page 34: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/34.jpg)
Page 38, April 20, 2023
Nice components that can be composed (put together)
![Page 35: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/35.jpg)
Page 39, April 20, 2023
![Page 36: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/36.jpg)
Page 40, April 20, 2023
![Page 37: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/37.jpg)
Page 41, April 20, 2023
Another definitionAnother definition
A software component is a software element that confirms a component model can be independently deployed composed without modification according to a
composition standard.
A component model defines specific interaction and composition standards.
G. Heineman, W. Councel, Component-based software engineering, putting the peaces together, Addoson Wesley, 2001
![Page 38: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/38.jpg)
Page 42, April 20, 2023
![Page 39: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/39.jpg)
Page 43, April 20, 2023
![Page 40: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/40.jpg)
Page 47, April 20, 2023
Summary CBSE – basic definitionsSummary CBSE – basic definitions
The basis is the Component
Components can be assembled according to the rules specified by the component model
Components are assembled through their interfaces
A Component Composition is the process of assembling components to form an assembly, a larger component or an application
Component are performing in the context of a component framework
All parts conform to the component model
A component technology is a concrete implementation of a component model
c1 c2
Middleware
Run-time system
framework
Component Model
![Page 41: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/41.jpg)
Page 48, April 20, 2023
Component TechnologyComponent Technology
Component Component Framework
Platfo
rmP
latform
Co
mp
on
ents
Co
mp
on
ents
RepositoryRepository
Supporting ToolSupporting Tool
![Page 42: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/42.jpg)
Page 49, April 20, 2023
Part 3 Part 3
Software Architecture and Software Software Architecture and Software
ComponentsComponents
![Page 43: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/43.jpg)
Page 50, April 20, 2023
Software ArchitectureSoftware Architecture
L. Bass, P. Clements, R. Kazman, Software Architecture In Practice
The software architecture of a program or computing
system is the structure or structures of the system, which
comprise software components [and connectors], the
externally visible properties of those components [and
connectors] and the relationships among them.”
![Page 44: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/44.jpg)
Page 51, April 20, 2023
Aspects of Software ArchitectureAspects of Software Architecture
Connector
RolePort
Attachment
(sub)System
Architectural Component
Representation
Elements and Form (UniCon notation)
![Page 45: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/45.jpg)
Page 53, April 20, 2023
N-Tier Architecture N-Tier Architecture
DatabaseDatabase
Tier Boundary
BusinessLogic
BusinessLogic
DatabaseDriver
DatabaseDriver
BusinessLogic
BusinessLogic
BusinessLogic
BusinessLogic
PresentationLogic
PresentationLogic
Data Layer
Business Layer
Tier BoundaryPresentation Layer
![Page 46: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/46.jpg)
Page 54, April 20, 2023
N-Tier Architecture - and ComponentsN-Tier Architecture - and Components
DatabaseDatabase
Tier Boundary
BusinessLogic
BusinessLogic
DatabaseDriver
DatabaseDriver
BusinessLogic
BusinessLogic
BusinessLogic
BusinessLogic
PresentationLogic
PresentationLogic
Data Layer
Business Layer
Tier BoundaryPresentation Layer
ComponetComponet
componetcomponet
componetcomponet
componetcomponet
![Page 47: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/47.jpg)
Page 55, April 20, 2023
Different architecture view in different phasesDifferent architecture view in different phases
Phase I
System architecture - Decomposition of the system
<<subsystem>>ComAIComA
<<subsystem>>ComBIComB
<<subsystem>>ComCIComC
ConceptualArchitecture
![Page 48: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/48.jpg)
Page 56, April 20, 2023
System Design – Phase 2System Design – Phase 2
Implementation Architecture - Component Identification
<<imp>>ComAIComA
<<imp>>ComBIComB
<<imp>>ComCIComC
<<imp>>SysXISysX
<<imp>>ComYIComY
ImplementationArchitecture
![Page 49: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/49.jpg)
Page 57, April 20, 2023
System Design – Phase 3System Design – Phase 3
Deployment architecture
:SysX :ComC
:ComA
DeploymentArchitecture
:ComB
Server
DataServer
:ComD
![Page 50: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/50.jpg)
Page 58, April 20, 2023
Basic principles
of
Component-based approach
![Page 51: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/51.jpg)
Page 59, April 20, 2023
Main principles: (1) ReusabilityMain principles: (1) Reusability
Reusing components in different systems
The desire to reuse a component poses few technical constraints.
Good documentation (component specification…)
a well-organized reuse process
Similar architecture
….
C1
C1 C2
C3 C4
Application A1
C1 C5
C6 C7
Application A2
![Page 52: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/52.jpg)
Page 60, April 20, 2023
Main principles: (2) SubstitutabilityMain principles: (2) Substitutability
Alternative implementations of a component may be used.
The system should meet its requirements irrespective of which component is used.
Substitution principles Function level Non-functional level
Added technical challenges Design-time: precise definition of
interfaces & specification Run-time: replacement
mechanism
C1 C2
C3 C4
Application A1
C1´ C2
C3 C4
Application A1
![Page 53: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/53.jpg)
Page 61, April 20, 2023
Substitution principleSubstitution principle
Substituting a component Y for a component X is said to be safe if:
All systems that work with X will also work with Y
From a syntax viewpoint, a component can safely be replaced if:
The new component implements at least the same interfaces as the older components
From semantic point of view?
Contractual interface holds (pre-, postconditions and invariants)
![Page 54: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/54.jpg)
Page 62, April 20, 2023
Substitution principleSubstitution principle
Principle:
A component can be replaced if the new component Provide a sub-range of the output
Can accept larger range of input
CONDITION. Everything which comes from the firstTube fits to the second
C -C - C´ C´Input(c) <_ Input(c’)Input(c) <_ Input(c’)Output(C) _> Output(C’)Output(C) _> Output(C’)
![Page 55: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/55.jpg)
Page 63, April 20, 2023
Main principles: (3) ExtensibilityMain principles: (3) Extensibility
Comes in two flavors:
extending components that are part of a system
Increase the functionality of individual components
Added technical challenges:
Design-time: extensible architecture
Run-time: mechanism for discovering new functionality
C1 C2 C3
C1 C2+ C3
C1 C2 C3
C1 C2 C4 C3
![Page 56: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/56.jpg)
Page 64, April 20, 2023
Main principles: (4) ComposabilityMain principles: (4) Composability
Composition of components
P(c1 o c2) =P(c1) o P(c2) ??
Composition of functions
Composition of extra-functional properties
Many challenges
How to reason about a system composed from components? Different type of properties
Different principles of compositions
C1 C2
assembly
C
![Page 57: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/57.jpg)
Page 65, April 20, 2023
![Page 58: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/58.jpg)
Page 66, April 20, 2023
![Page 59: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/59.jpg)
Page 67, April 20, 2023
![Page 60: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/60.jpg)
Page 68, April 20, 2023
![Page 61: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/61.jpg)
Page 69, April 20, 2023
Part 5Part 5
Component-based software development Component-based software development
processprocess
![Page 62: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/62.jpg)
Page 70, April 20, 2023
Time to Market – “Classical” Development Process?Time to Market – “Classical” Development Process?
Requirements
Specification
Design
Implementation
Test
Product LifecycleProblems:Problems:•Time To MarketTime To Market•High CostsHigh Costs•Meeting deadlinesMeeting deadlines•VisibilityVisibility
Operation & Maintenance
TIMETIME
![Page 63: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/63.jpg)
Page 71, April 20, 2023
Development processDevelopment process COTS and outsourcing require different development
processes
Requirements
Specification
Design
Implementation
Test
Find & Select
Adapt
Deploy
![Page 64: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/64.jpg)
Page 72, April 20, 2023
Development process – emphasize reuseDevelopment process – emphasize reuse
Managing COTS in the early stage of the development process
Requirements
Specification
Design
Implementation
Test
Deploy
Find & Select
Adapt
Test
![Page 65: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/65.jpg)
Page 73, April 20, 2023
CBDCBD – separation of development processes – separation of development processes
Requirements
Specification
Design
Implementation
Test
Deploy
Find & Select
Adapt
Test
ApplicationApplicationdevelopmentdevelopment
ComponentComponentdevelopmentdevelopment
Operation &Maintenance
![Page 66: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/66.jpg)
Page 74, April 20, 2023
Types of component-based developmentTypes of component-based development
Internal components as structural entities
Reusable components developed in-house
COTS (commercial off the shelf) components
![Page 67: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/67.jpg)
Page 75, April 20, 2023
Product Line ArchitectureProduct Line Architecture
Core components building a core functionality
(Basic platform)
A set of configurable components combined building different products
![Page 68: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/68.jpg)
Page 76, April 20, 2023
Platform-based productsPlatform-based products
Basic services
Middleware / infrastructure
Platform layer
Application layer
![Page 69: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/69.jpg)
Page 77, April 20, 2023
Advantages of Software Product LinesAdvantages of Software Product Lines
Using existing infrastructure
Savings 30%-40% of efforts per product
Time to Market - improved
Larger variety of products
Uniform and recognizable functionality/interface
Better scalability (not obvious!)
Better maintainability (not obvious!)
Better possibility of component replacement
![Page 70: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/70.jpg)
Page 78, April 20, 2023
The Cathedral and the Bazaar?
La Sagrada Familia, Barcelona
Building Started:On March 19, 1882
Still not completed
Is it worth to build it in that way?
Building platforms
Similar with platform-basedAnd component-based developmentIs it worth?
![Page 71: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/71.jpg)
Page 79, April 20, 2023
Part 6Part 6
Problems and research issuesProblems and research issues
![Page 72: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/72.jpg)
Page 80, April 20, 2023
CBSE research and the SW life-cycleCBSE research and the SW life-cycle
AnalysisDesign
ImplementationTesting
Deployment
AnalysisDesign
ImplementationTesting
Deployment
AnalysisDesign
ImplementationTesting
Deployment
Quality Management
Project Management
ComponentsApplication
- assembly- finding - trusting - distribution- glue code
- design for customization/ variability- wrapping- specification/contracts
- development methods- frameworks
- storage- documentation
- run-time infrastructures
- configuration management
- certification- SW development process
- team structure
![Page 73: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/73.jpg)
Page 81, April 20, 2023
SpecificationSpecificationAre more than interface method definitions
How to specify?
Interfaces, behavior (pre-/post conditions, invariants)
dependencies (required interfaces)
quality of service
How to test/verify component specifications?
How to document component specifications?
How to automatically connect components in builder tools using their specification?
How to verify the correctness of a composite system?
...
![Page 74: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/74.jpg)
Page 82, April 20, 2023
Design for reuseDesign for reuse
Design for reuse requires additional effort
What is the best level of reuse (component granularity)?
How can the benefit of reuse be measured?
Development and documentation of component usage patterns
![Page 75: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/75.jpg)
Page 83, April 20, 2023
RepositoriesRepositories How to store components?
How to classify and describe components?
How to find components?
fast
different aspectsinterfaces
functionality
component model
certification level
previous usage, trust
negotiable requirements
![Page 76: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/76.jpg)
Page 84, April 20, 2023
Software development processSoftware development process
Current approach
requirements - analyses - design - implementation - test
CBSE approach must include
reuse component selection
component test
requirements reconciliation
CBSE must be supported by
modeling formalisms and tools
development tools
![Page 77: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/77.jpg)
Page 86, April 20, 2023
Versioning and configuration managementVersioning and configuration management
Is more complex than usually (DLL hell)
especially in dynamic environments
Dependencies and composition constraints have to be resolved almost automatically
consider systems comprising thousands of components
How to do safe exchange of components e.g. upgrade, without contractual specification and proof?
All of the issues above are prerequisite for uploading and downloading of components
![Page 78: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/78.jpg)
Page 87, April 20, 2023
SecuritySecurity
Requires trust and certification
complicated by large group of (small) vendors
‘mobile code security’ important
not user access control but code access control
current mechanisms
sandboxing: restricted functionality, restricted availability
codesigning: not necessarily suitable to establish trustprove of problem origin
difficulty of persecution
![Page 79: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/79.jpg)
Page 89, April 20, 2023
Part 7Part 7
Information sourcesInformation sources
![Page 80: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/80.jpg)
This presentations is based on:This presentations is based on:
Ivica Crnkovic, Magnus Larsson: Building reliable component-based systems
Chapters: PART 1 The Definition and Specification of Components
Chapter 1 Basic Concepts in Component-Based Software Engineering
Chapter 2 On the Specification of Components
PART 2 SOFTWARE ARCHITECTURE AND COMPONENTS
Chapter 3 Architecting Component-based Systems
Chapter 4 Component Models and Technology
PART 3 DEVELOPING SOFTWARE COMPONENTS Chapter 6 Semantic Integrity in Component Based Development
Ivica Crnkovic: CBSE - New Challenges in Software Development
Ivica Crnkovic et al: Specification, Implementation and Deployment of Components
Page 90, April 20, 2023
![Page 81: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/81.jpg)
Page 91, April 20, 2023
BooksBooks Clemens Szyperski: Component Software : Beyond
Object-Oriented Programming: (1998), 2003 – second edition
Alan W. Brown: Large-Scale Component-Based Development
Betrand Meyer: Object-Oriented Software Construction, 2nd
G.T. Heineman, W. Councill: CBSE Putting the Pieces Together
J. Cheesmam, J. Daniels: UML Components
K. Wallnau: Building Systems form Commercial Components
Ivica Crnkovic & Magnus Larsson:CBSE - Building reliable component--based systems
![Page 82: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/82.jpg)
Page 92, April 20, 2023
JournalsJournals IEEE Computer
IEEE Software
IEEE Internet Computing
IEEE Transactions on Software Engineering
IEEE Transactions on Computers
ACM Transactions on Programming Languages and Systems languages and programming systems.
ACM Transactions on Software Engineering and Methodology
ACM Transactions on Computer Systems
Software Development (www.sdmagazine.com)
… all major SW development magazines
![Page 83: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/83.jpg)
Page 93, April 20, 2023
ConferencesConferences International Workshop on Component-Based Software
Engineering, ICSE, CBSE
http://www.csse.monash.edu.au/~hws/CBSE10/
Euromicro CBSE trackhttp://www.idt.mdh.se/ecbse/2007/
![Page 84: Introduction to Component-Based Software Engineering](https://reader035.fdocuments.in/reader035/viewer/2022062221/56813bf5550346895da53c36/html5/thumbnails/84.jpg)
Page 94, April 20, 2023
ConferencesConferences International Conference on Software engineering
(ICSE)
ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) (oopsla.acm.org)
International Workshop on Component-Oriented Programming (WCOP)
Symposium on Generative and Component-Based Software Engineering
Technology of Object-Oriented Languages and Systems (TOOLS) (www.tools-conferences.com)
International Conference on Software Reuse (ICSR)
ESEC/FSE