Professional Documents
Culture Documents
02 CBSE Introduction
02 CBSE Introduction
Component-Based Software
Engineering"
Ivica Crnkovic"
Mälardalen University,"
Department of Computer Engineering"
Sweden"
ivica.crnkovic@mdh.se"
http://www.idt.mdh.se/~icc"
SW is late"
SW is buggy"
SW is expensive"
SW is difficult to understand"
Software is difficult to maintain (problems with software
life cycle)"
Component-based
development
Object-Oriented
Development
Structured
programming
Time
Design
SA/SO UML ADL s ???
method
COBOL, C Smalltalk C++
Language FORTRAN, ADA Java Agglets ?
C++
System N-tier
Mainframe Client-server Self-organizing
organization distributed
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 "
Performing maintenance by
replacement of components and introducing new
components into the system "
Component
#2
Component Component
#3 #4
Component
#3
Page 11, 27 January 2011
Concentration on the business parts"
30 % of SW development effort is spent on infrastructure that adds no value "
Application
specific
Business issues
GUI
GUI
Standard
Reusable parts Communication
Data model
Deployment
------
INFRASTRUCTURE
Object Object
Attributes Attributes
Methods Message Methods
"
C4
C2
C3 C5
CORBAservices
2011-01-27
17
Corba component model"
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)"
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 ..."
Excel document
Excel document
Infotaiment
gateway
(CAN) BUS
Vehicle mechanics
Sensor
Sensor Actuator Sensor
Sensor Actuator
local
Engine Control Local brake Control Transmission ………
sensors
actuators
Vehicle
Applications
Middleware
ECU ECU ECU
Input/output drivers
Hardware SOFTWARE COMPONENTS
Applications C1 C2
Middleware
Input/output drivers
Hardware
Requirements
Separation of hw from SW development ECU ECU
Separation of SW component development ECU
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."
"
Platform (framework)
Component
1
*
* Component – a set of interfaces
required (in-interfaces)
1 * in-interfaces provided (out-interfaces)
*
Name Interface
1 1 out-interfaces
Interface – set of operations
1 * Operations – input and output parameters of
certain type
*
Operation
1
1
Type Parameter
1 *
InParameter OutParameter
InOutParameter
Constraint Component
* 1 *
* *
* * in-interfaces
*
State Interface
2 1 * out-interfaces
1 1 1 *
*
Invariant
* * *
* * *
black box
grey box
glass box
ramework
ponent F
Com
Repository
Attachment
Connector Architectural Component
Representation
Port Role
(sub)System
Presentation Presentation
-------------- --------------
Business Business
Logic Logic
Database
Driver
Presentation / Business Layer
Tier Boundary
Data Layer
Database
Presentation
Logic
Presentation Layer
Tier Boundary
Database
Driver
Business Layer
Tier Boundary
Data Layer
Database
Presentation Layer
Tier Boundary
Database
Driver
Business Layer
Tier Boundary
componet Data Layer
Database
<<subsystem>> <<subsystem>>
IComA ComA IComB ComB
<<subsystem>>
IComC ComC
Conceptual
Architecture
Implementation
Architecture
<<imp>> <<imp>>
IComA ComA IComB ComB
Deployment architecture"
Server
Deployment
Architecture
:ComA :ComB
DataServer
Reusing components in
different systems" C1
CONDITION.
Everything which comes from the first
Tube fits to the second
C1 C2 C4 C3
Composition of components"
P(c1 o c2) =P(c1) o P(c2) ??" C
C1 C2
Composition of functions" assembly
Composition of extra-functional properties"
Many challenges"
How to reason about a system composed
from components?"
Different type of properties"
Different principles of compositions"
Product Lifecycle"
Problems:
•Time To Market
Requirements
•High Costs
•Meeting deadlines
Specification •Visibility
Design
Implementation
Test
Operation &
Maintenance
TIME
Specification
Design
Find & Select
Implementation
Adapt Test
Deploy
Requirements
Specification
Implementation
Test
Test
Adapt Deploy
Requirements Application
development
Specification
Test
Implementation
Adapt
Test
Deploy
Operation &
Maintenance
Component
development
Page 73, 27 January 2011
Types of component-based development ""
Application
layer
Middleware / infrastructure
Basic services
Platform layer
Building Started:
On March 19, 1882
Quality Management
Analysis Implementation
Design Testing
Deployment Application
Components Analysis Implementation
Analysis Implementation Deployment
Design Testing
Deployment Design Testing
- development
- run-time
- design for methods - assembly infrastructures
customization/ - frameworks - finding
variability - storage - trusting
- wrapping - documentation - distribution
- specification/contracts - glue code