0% found this document useful (0 votes)
14 views25 pages

9 Component Based SE

Uploaded by

hira bukhari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views25 pages

9 Component Based SE

Uploaded by

hira bukhari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Introduction to Component-Based

Software Engineering

1
Motivation
• Expansion in the use of software
– in business, industry, administration, research, and even in everyday life.
– Software is no longer used marginally in technical systems; instead it has
become a central factor in many fields.
• Features based on software functionality, rather than other system
characteristics, are becoming the most important factor in a competitive
market.
• This trend increases the demands on software products such as
– enhanced usability, robustness, reliability, flexibility, adaptability, and simpler
installation and deployment.
• As these demands are growing stronger, the complexity of processes that
software manages is increasing along with the demand for the
integration of processes from different areas.
• As a consequence, software programs are becoming increasingly large
and complex.
• The main challenge for software developers today is to cope with 2
Motivation
• Traditionally, software development addressed the
challenges of increasing complexity and dependence on
external software by:
– focusing on one system at a time
– and on satisfying delivery deadline
– and budget requirements without considering the evolutionary
needs of the system.
• Focusing on one system at a time and neglecting
forthcoming changes has led to a number of
problems:
– the failure of the majority of projects to meet their deadline,
budget, and quality requirements
– as well as the continued increase in costs associated with software
maintenance. 3
Motivation
• One key to the solution of these problems is
reusability.
• The idea of software reuse is not new. But, despite
some successes, reusability has not become a
driving force in software development.
• Many of the unsuccessful approaches to reuse did
not satisfy the basic requirements of reusability
– Reuse requires some modification of the object being
reused.
– Reuse must be integrated into specific software
development.
4
Challanges of Software Engineering

5
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

6
Component-based software construction
components
Component
#1 construction application

Component Component Component


#4 #1 #2

Component
#2
Component Component
#3 #4
Component
#3

7
Concentration on the business parts
“30 % of SW development effort is spent on infrastructure that adds no
value”

Application
Business
specific
issues

GUI
GUI

Standard
Reusable parts Communication

Data model

Deployment

------

INFRASTRUCTURE

8
What is software reuse?
Software reuse is the process whereby an
organisation employs a set of systematic operating
procedures to specify, produce, classify, retrieve,
and adapt software artifacts for the purpose of
using them in its development activities.

9
Reusable Assets
Virtually any product of the SE process can be
reused:
• Requirements
• Architectures
• Designs
– design patterns, interfaces

• Source Code
– ranging from to libraries, patterns, to modules, to
macros, coding conventions, ...
• Test Scripts 10
CBSE Goals
1. To provide support for the development of systems
as assemblies of components.
2. To support the development of components as
reusable entities.
3. To facilitate the maintenance and upgrading of
systems by customizing and replacing their
components.

11
What is CBSE?
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

12
A component can be used within the scope of a
component-model

.Net Enterprise Java Corba Components


, Beans, + ...
13
On the relation between OO and
CBD
• Object Orientation emphasizes modularity of
the construction of a system

• CBD emphasizes modularity in design,


production, deployment and use of a system.

14
Szyperski: 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.

15
Composition 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

System
Glue code
Components

How much components fit together?


How much costs the glue code?

16
Another 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

17
What is a Component?
A component is a piece of software small enough
to create and maintain, big enough to deploy and
support, and with standard interfaces for
interoperability.
Jed Harris, President of CI Labs (Jan. 1995).

18
What is a Component?
- a unit of
- independent production, propertie
acquisition, deployment, and s depend
maintenance on how
- replacement
they are
- reuse
- composition used
- a package of cohesive
services
- encapsulates design intrinsic
decisions propertie
- explicit dependencies
s
- cohesive / denotes a
single abstraction
-- generic
loosely coupled
(application context /
- independent)
standardized system
interfaces
- configurable properties
- self-contained 19
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

20
21
22
Component Development Lifecycle
phase development packaging distribution deployment execution

representation of
component

design & execution


modelling tool infrastructure

infrastructure programming tool

compiler

packaging
tool

configuration management tool

build/release tool

23
Component Development Lifecycle
phase development packaging distribution deployment execution

representation of model / specification


component e.g. UML, Petri-net
source code & data files
e.g. C++ Structured archive
e.g. zip-file
• Solid-medium that preserves file-structure
• network: requires conventions on where to install
unpack & place comp in memory
executable code
- low level machine code
- high level code for
interpretation

In different processes, components are composed


in different phases of
24
development
Summary CBSE – basic definitions

 The basis is the Component


 Components can be assembled
according to the rules specified by the
component model c1 c2

 Components are assembled through


their Middleware
interfaces framework
 A Component Composition is the process Run-time system
of assembling components to form an
assembly, a larger component or an
application
 Component are performing in the Component
context of a component framework Model
 All parts conform to the component
model
 A component technology is a concrete
implementation of a component
model

25

You might also like