Component-Based Software Engineering - PowerPoint PPT Presentation

1 / 62
About This Presentation
Title:

Component-Based Software Engineering

Description:

'A binary unit of independent production, acquisition, and deployment that ... component is a unit of independent deployment. no dependencies on peer-components ... – PowerPoint PPT presentation

Number of Views:535
Avg rating:3.0/5.0
Slides: 63
Provided by: toinek
Category:

less

Transcript and Presenter's Notes

Title: Component-Based Software Engineering


1
Component-Based Software Engineering
  • M.R.V. Chaudron
  • M.R.V.Chaudron_at_tue.nl
  • www.win.tue.nl/mchaudro/cbse
  • Technische Universiteit Eindhoven

2
Course Logistics
  • 9 x lectures of 2 x 45 min.
  • home-work read literature
  • assignment
  • work in groups
  • design implementation
  • intermediate presentations
  • possibly individual test

3
References Main Sources
  • Main text
  • Reuse-Based Software Engineering Techniques,
    Organization,
  • and Controls, H. Mili, A. Mili, S. Yacoub E.
    Addy, Wiley, 2002
  • Supplementary
  • Component Software Beyond Object Oriented
    Programming
  • Clemens Szyperski, Addison-Wesley, (2nd ed,
    2002)
  • papers from course web page www.win.tue.nl/mcha
    udro/cbd
  • Volume II Technical Concepts of CBSE, F.
    Bachman et. al.,
  • CMU/SEI TR 2000-008, May 2000
  • Components are from Mars, Chaudron De Jong,
    WPDRTS
  • Douglas Mc Illroy, 1968/9, NATO Conference on SE

4
References Background Literature
  • Component-Based Development Principles and
    Planning
  • for Business Systems, Katharine Whitehead,
    Addison-Wesley 2002
  • Orientation towards business systems.
  • Building Reliable Component-based Software
    Systems,
  • Ivica Crnkovic Magnus Larson (eds), Artech
    House Publishers, 2002
  • Orientation towards technical, embedded,
    Real-Time systems
  • UML Components A Simple Process for Specifying
    Component-
  • based Software, Cheesman Daniels,
    Addison-Wesley
  • Heavily leans on UML, describes some design
    guidelines for business information systems
  • Building Systems from Commercial Components,
    Kurt C. Wallnau, Scott A. Hissam, and Robert C.
    Seacord, Addison-Wesley (SEI series), 2001

5
Lecture Scheme
  1. Introduction, Concepts, Terminology, Definitions
  2. Process, Requirements, Domain Analysis
  3. Design and Specification of Components
  4. COM, CORBA
  5. EJB, .Net
  6. Reuse Economics
  7. Real-Time Components
  8. Certification, Testing, Repositories, CM
  9. SW Composition Predictable Assembly
  10. Advanced topics

Selection of topics from the CBSE area Some more
stable than others.
6
Who is Michel Chaudron?
  • Studied CS in Leiden worked for couple of
    years in IT company
  • joined TUE 1999.
  • Teach
  • Software Architecting (1st year M.Sc.)
  • Component-Based Software Engineering
  • Research
  • Member of the System Architecture and Networking
    (SAN) Group
  • Subjects CBSE (predicatable assembly), Sw.
    Arch., empirical SE
  • How can we predict extra-functional properties of
    the systems we design ?
  • Collaboration with industry ASML, Nokia, Oce,
    Philips Natlab, Medical, ...
  • Coordinates HG 5.03, m.r.v.chaudron_at_tue.nl
    www.win.tue.nl/mchaudro
  • secretary mw. Cecile Brouwer, HG 5.08, tel. 247
    8309

7
Todays Lecture
  • Introduction CBSE Reuse
  • Motivation
  • Concepts, Definitions, Terminology

8
Observations on the practice of SE
About 80 of software engineering deals with
changing existing software
It is not the strongest of the species that
survive, nor the most intelligent, but the ones
most responsive to change. -- Charles Darwin
Time to market is an important competitive
advantage incorporate successful innovations
quickly
? Systems should be built to facilitate change ?
easy removal and addition of functionality
9
Problems of Software Engineering
  • The size complexity of software increases
    rapidly
  • Single products become part of product families
  • Software is upgraded after deployment
  • The time-to-market must decrease significantly
  • The cost of products must be reduced

10
The CBD-?Solution
Systems should be assembled from existing
components
Idea dates (at least) to Douglas McIlroy, NATO
Conference 1968
component-based systems
component repository market
assembly
11
Why Components?
Component Library
Following other engineering disciplines (civil
and electrical), software engineering is looking
to develop a catalogue of software building
blocks.
12
What is CBSE?
based on definition of SEI in CMU/SEI-2000-TR-008
  • Component-based Software Engineering is concerned
    with the rapid assembly and maintenance of
    component-based systems, where
  • components and platforms have certified
    properties
  • these certified properties provide the basis for
    predicting
  • properties of systems built from components.

Predictability is a key property of mature
engineering disciplines. It enables feedback on
design and adaptation i.e. development time is
reduced because we can analyze prior to building
13
Business Drivers for CBD
Improve Productivity Build more software using
fewer resources through enabling the assembly of
systems from components that may be independently
developed by different parties.
Independent in time and space ? independent from
ultimate application ? independent from (future)
peer-components
14
Aspects of Software Productivity
  • Increase competitiveness (sw/money)
  • Reduce cost of development and maintenance
  • Increase software/
  • Market share
  • Reduce time-to-market (sw/time)
  • Limited human talent (sw/people)
  • Increase software/person
  • ? reuse existing solutions, rather than invent
    them

15
Business Drivers for CBD Quality
Improve Quality Idea Assuming that a collection
of high-quality components is available,
assembling these should yield systems of
high-quality.
  1. The cost of establishing the high quality of
    components is amortized over multiple use.
  2. Multiple use of a component increases the
    likelihood of finding and removing errors.

16
Business Drivers for CBD Quality (2)
Improve Quality
The use of CBD requires good modular
design. This modularity provide quality
properties like maintainability, flexibility,
17
Technical Drivers for CBSE
Flexibility
Interoperability
Adaptability
System Qualities
Reliability
Maintainability
Integration
CBSE may help improve system qualities
18
Reuse-based Software Engineering
  • Reuse-based SE has many business drivers in
    common with CBSE
  • increase productivity quality
  • reduce time-to-market,
  • reduce development cost

However, reuse imposes less technical- and
design-constraints on the unit of reuse (asset ).
CBSE enables Reuse, Reuse is not sufficient for
CBSE.
19
Reusable Assets
  • Virtually any product of the SE process can be
    reused
  • Requirements
  • Architectures
  • Designs
  • design patterns
  • Source Code
  • ranging from to libraries, patterns, to modules,
    to macros, coding conventions, ...
  • Test Scripts

20
What is a component?
Suggestions from the audience?
Reflect on differences between civil and
electrical engineering on the one hand and
software engineering on the other hand
21
CBD in Practice
Lego Fisher Technik Meccanno Ministek ...
22
A component can be used within the scope of a
component-model
.Net, Enterprise Java Beans, Corba Components
...
23
Component Model
  • A component model is a set of agreements that is
    needed to enable the combination of components.
  • A component model typically addresses
  • Life-cycle management instantiation,
    (de)activation, removal
  • Binding mechanisms
  • Interaction style
  • Data exchange format
  • Process model

Related Packaging Model
24
Design Choices in Component Models
  • control flow
  • distribution
  • mobility
  • topology
  • multiplicity
  • binding time
  • binding type
  • interaction style
  • platform features
  • auxiliary

25
Control Flow
Multiplicity Locus of control
within component
across components
1/component
1/component
26
Distribution
  • A collection of component resides on
  • a single location
  • cpu, board
  • network
  • (in)homogeneous
  • open/closed network
  • internet vs. private network

Can a single component be distributed over
multiple locations?
27
Mobility
  • Can components move from one location to another?
  • unlimited or do they need access-rights?
  • do components move themselves or are they
  • moved by a (resource) manager?

28
Topology
  • How are components connected?
  • - network (node to node)
  • star (central node)
  • bus (central interconnection)
  • Changeability of the topology
  • static
  • dynamic
  • - changes in links
  • component creation/deletion
  • changes in component location

29
Multiplicity
May multiple instances of a component exist
concurrently?
30
Interaction Style
  • What mechanism may components use to exchange
    data?
  • - request/response (rpc), asynchronous or
    synchronous
  • datagram
  • broadcast (multicast)
  • blackboard
  • streaming?
  • Multiplicity of interaction styles
  • - single style vs. multiple styles

31
Binding
The mechanism that enables components to find
other components. This so central a topic to
CBSE that we discuss it in greater detail in a
later lecture
32
Component Platform
  • A component platform is run-time incarnation of
  • the agreements of the component model.
  • For example

33
Component Platform
  • Platforms typically provide support for
  • Extra-functional / resource aspects
  • scheduling
  • quality of service management
  • (dynamic) load balancing
  • (re)negotatiation
  • security
  • fault tolerance (replication)
  • - interoperabiliy (language/OS)
  • Inter-component services
  • binding
  • interaction
  • Component lifecycles
  • install, replace, remove

34
Component Platform
  • What features does the infrastructure provide?
  • (dynamic) load balancing / scheduling
  • fault tolerance (replication)
  • quality of service negotiation
  • security
  • - heterogeneous platforms (language/OS)

35
What is a Component?
Probably more definitions than for software
architecture
A software component is a unit of composition
with contractually specified interfaces and
explicit context dependencies only A software
component is independently deployable and subject
to composition by third parties. Clemens
Szyperski, 1997
36
What is a Component?
A reusable software component is a logically
cohesive, loosely coupled module that denotes a
single abstraction. Grady Booch, Software
Components with Ada, 1987
Tries to provides some design guidance. What is
cohesive? loosely coupled? single abstraction?
37
What is a Component?
A binary unit of independent production,
acquisition, and deployment that interacts to
form a functioning system. - C. Szyperski,
Component Software A component is an
independently deliverable package of operations.
- Texas Instruments Literature A
replaceable unit of development work which
encapsulates design decisions and which will be
composed with other components as part of a
larger unit. - Desmond D Souza, in Catalysis
38
It depends (?)
  • It depends to some degree on what you want to do
    with components
  • REPLACING one part of an implementation with
    another
  • then adhering to a well defined specification is
    sufficient
  • at run-time, then mechanisms are needed for
  • registering, locating / binding components
  • EXTEND components
  • extend interfaces, merge implementations

39
It depends (?)
  • TRADING (use across multiple organizations)
  • need mechanism for
  • hiding intellectual property
  • certification
  • RE-USE
  • need repository for searching / matching,
    versioning
  • economics impact granularity
  • Application domain BUSINESS/EMBEDDED
  • type and granularity of component

40
What is independent deployment?
A software component is a unit of independent
deployment ? no dependencies on
peer-components ? some meaningful
functionality by itself components tend to be
large grained ? never partially deployed
41
Object Technology and CBSE
OT is Neither Necessary Nor Sufficient for
CBSE OT was a useful and convenient starting
point for CBSE OT did not express full range of
abstractions needed by CBSE (insufficiency) It is
possible to realize CBSE without employing
OT(non-necessity) CBSE might induce substantial
changes in approach to system design, project
management, and organizational style
42
Useful Distinction
component specification
has

component interface
has

architect/design
component implementation
implementation of specification
has

programmer
component instance
instantiation in a concrete device
run-time environment
43
Characteristics of Components Black Box
  • Black-box has well defined interfaces that
    specify what it does, not how it does this.
  • Internals are hidden to
  • prevent other components to build dependencies
    on internals
  • allow fast understanding
  • allow replacement of an implementation
  • protect intellectual capital from disclosure
  • This complicates diagnosing system failures

44
Interfaces are central to CBSE
  • Interfaces describe what a component
  • .. may offer provides interface
  • .. needs requires interface
  • Interfaces should be first-class citizens
  • Free combination of implementation and
    interfaces
  • Components can have multiple interfaces,
  • corresponding to different types of access
    points

45
Interfaces are central to CBSE (2)
  • Standardization to avoid market fragmentation
  • - Horizontal standards
  • Internet, OS 's, UI's,
  • - Vertical standards
  • Control, ERP, TV, ...

46
Component Flavours Glass, Gray or White?
Black box besides its interface and
specification, no details are known Glass
box inside of component can be seen, but not
changed White box implementation of a component
can be studied and manipulated Gray box part
of the implementation can be studied and
manipulated
What needs to be specified in order to enable
predictable composition?
47
Characteristics of Components
48
Characteristics of Components Cohesive
  • conceptually whole
  • size depends on
  • complexity of the concept
  • abstraction level of the concept

related unit of abstraction, abstraction of
a design decision
If components were people and computers didnt
exist, one might ask, Who is responsible for
this task?
49
Characteristics of Components Genericity
The functionality a component provides may be
used in (a range of) different systems
50
Characteristics of Components Self-Describing
  • A component should be able to describe
  • its functionality
  • public interfaces
  • its behaviour
  • e.g. the events that it generates
  • its variability/configurability
  • any properties that are customizable

component specification
For run-time binding
51
Scoping guidelines for components
52
A Component is a unit of abstraction
  • Represents a single coherent concept/responsabilit
    y.
  • This is desirable for ease of understanding.
  • This depends of the application level
  • In an ERP system, a bit-component does not fit.

53
A Component is a unit of accounting
  • In systems with multiple (classes of) users, cost
    is accounted per use.
  • The overhead of accounting precludes small
    components.
  • Components should correspond to units of

Example word2pdf
54
A Component is a unit of analysis
  • Unit of specification
  • Types of analysis
  • testing
  • type checking
  • version control

Example ...
55
A Component is a unit of compilation
  • It should be possible to compile a component
    without using other components.
  • Again, small components are not practical.
  • This leaves open whether components should be
    compiled at all?
  • Considering only executables as components avoids
    compile-time dependencies.

56
A Component is a unit of deployment
  • Deployment is the process of readying a unit for
    operation in a particular environment.
  • It carries all the information needed for
    preparing it for execution.

57
A Component is a unit of fault-containment
  • Faults should be contained to a single component.
  • Faults may not cause the component to display
    behaviour/produce results that is not specified
    by its invariants/postconditions.
  • Design alternatives
  • either include all exceptions in the interface
  • or, ensure that no exceptions cross the
    component boundary

Special attention is needed for confining memory
errors (dangling pointers, memory leaks)
Language support is needed for intercepting errors
58
A Component is a unit of fault-containment
  • Proper handling of unchecked exceptions
    requires architectural attention.
  • Conventions must be part of the component model
    or of an application model.
  • For Example
  • In distributed systems, no single component can
    be expected
  • to solve the problems of node- or network-failure.

59
A Component is a unit of ...
Think whether you understand why this is
proposed. Then think whether you agree.
  • extension
  • instantiation
  • loading
  • installation
  • Has to include all data-files that are needed
  • May be empty (such as loading a class in Java)
  • loading
  • maintenance
  • system management

60
Obstacles to CBD
61
Some Obstacles to CBSD
  • Commercial Concerns
  • No established market!
  • Software shops
  • marketing, licensing, trading,
  • Legal issues liability (aansprakelijkheid)
  • Business model (pay-per-copy vs. pay-per-use)

62
Some Obstacles to CBSD
  • Organizational Concerns
  • who pays for extra development effort?
  • (for making components more generic, flexible,
    ..)
  • cost of learning

63
Some Obstacles to CBSD
  • Technical Concerns
  • Method for Design of Components
  • balance genericity, flexibility,
  • Adequate tools are needed
  • in particular for integration of third party
    components
  • Need for Common/Standardized
  • data model, architecture

64
Summarizing, CBSE is about
Plug Play components can be composed with
little effort preferably at run-time Interface-c
entric components can be composed without
knowing their implementation Standardization
component can be manufactured by multiple vendors
and widely reused across corporations Distribution
through Market components can be acquired and
improved though competition market, and provide
incentives to the vendors Architecture-centric
components may be designed on a pre-defined
(product-line) architecture
65
Concluding Remarks 1
Whats New in CBSE? It deals with components that
were not a-priori designed to be part of the same
application There will be multiple types of
software components belonging to multiple
component architectures. A component is
characterized by technical and logical/design
properties.
66
Concluding Remarks 2
  • CBD aims to
  • increase productivity of SE
  • change-ability of software systems
  • There are no fixed recipies for designing
    components
  • only some guidelines
  • It is likely that every system will need some
    degree of
  • custom development
  • Wrapping is inevitable
  • CBD Reuse are become economically viable over a
    series of projects at least 3 years.

67
Questions?
You should know - an answer to What is a
component? including some characteristics of
components - what a component model is - the
difference between reuse and CBD
Self-Study material - paper by Doug McIlroy
Mass Produced Software Component - Tech. Report
SEI Technical Concepts of CBD
68
CBSE is about managing dependencies
  • Is this not addressing the symptoms, rather than
    the disease?
  • Q Why not try to avoid dependencies in the first
    place?

Type of dependencies design time tooling compi
le-time compiler, other components run-time pl
atform, other components
69
Different types of run-time dependencies
  • Implementation dependencies
  • Control dependencies
  • Temporal dependencies
  • Data dependencies

70
Architecture of Component Models
component
component
component
Component platform
Platform Service
  • binding
  • locating components
  • linking components
  • replacing components

HW platform
71
Component Models EJB
component
component
component
Component platform
  • EJB includes e.g.
  • network services
  • transaction services
  • better EJB is tied to RMI
  • which provides Middleware services

OS
Middleware
HW platform
72
Component Models DCOM
component
component
component
Component platform
  • DCOM
  • component support is built into OS
  • includes some networking services

OS
Middleware
HW platform
73
Component Models CORBA
component
component
component
Component platform
CORBAs original goal was a technology for
enabling interoperation between OO applications
i.e. mainly a middleware. A component model is
derived from that.
OS
Middleware
HW platform
74
(No Transcript)
75
(No Transcript)
76
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com