0% found this document useful (0 votes)
31 views16 pages

Component-Based Software Engineering 1: ©ian Sommerville 2004 Slide 1

Uploaded by

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

Component-Based Software Engineering 1: ©ian Sommerville 2004 Slide 1

Uploaded by

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

Component-based software

engineering 1

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 1


Objectives

To explain that CBSE is concerned with
developing standardised components and
composing these into applications

To describe components and component
models

To show the principal activities in the CBSE
process

To discuss approaches to component
composition and problems that may arise

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 2


Component-based development

Component-based software engineering
(CBSE) is an approach to software
development that relies on software reuse.

It emerged from the failure of object-oriented
development to support effective reuse.
Single object classes are too detailed and
specific.

Components are more abstract than object
classes and can be considered to be stand-
alone service providers.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 3


CBSE essentials

Independent components specified by their
interfaces.

Component standards to facilitate
component integration.

Middleware that provides support for
component inter-operability.

A development process that is geared to
reuse.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 4


CBSE problems

Component trustworthiness - how can a component
with no available source code be trusted?

Component certification - who will certify the quality
of components?

Emergent property prediction - how can the
emergent properties of component compositions be
predicted?

Requirements trade-offs - how do we do trade-off
analysis between the features of one component
and another?

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 5


Components

Components provide a service without
regard to where the component is executing
or its programming language
• A component is an independent executable
entity that can be made up of one or more
executable objects;
• The component interface is published and all
interactions are through the published interface;

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 6


Component definitions

Councill and Heinmann:
• A software component is a software element that
conforms to a component model and can be
independently deployed and composed without
modification according to a composition standard.

Szyperski:
• 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-parties.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 7


Component as a service provider

The component is an independent,
executable entity. It does not have to be
compiled before it is used with other
components.

The services offered by a component are
made available through an interface and all
component interactions take place through
that interface.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 8


Component interfaces

Provides interface
• Defines the services that are provided by the
component to other components.

Requires interface
• Defines the services that specifies what
services must be made available for the
component to execute as specified.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 9


Component interfaces

Requires int
erface Provides int
erface
Defines the services Defines the services
from the component’s Component that are provided
environment that it by the component
uses to other components

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 10


A data collector component

Requires int
erface Provides int
erface

addSensor
removeSensor
sensorManagement
startSensor
Data collector stopSensor
sensorData testSensor
initialise
report
listAll

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 11


Component models

A component model is a definition of standards for
component implementation, documentation and
deployment.

Examples of component models
• EJB model (Enterprise Java Beans)
• COM+ model (.NET model)
• Corba Component Model

The component model specifies how interfaces
should be defined and the elements that should be
included in an interface definition.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 12


Elements of a component model

Customisation
Naming
convention

Composition Documentation

Interface Specific Meta-data Evolution


Packaging
definition interfaces access support

Usage Deployment
Interfaces
information and use
Component model

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 13


Component development for reuse

Components developed for a specific
application usually have to be generalised to
make them reusable.

A component is most likely to be reusable if
it associated with a stable domain
abstraction (business object).

For example, in a hospital stable domain
abstractions are associated with the
fundamental purpose - nurses, patients,
treatments, etc.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 14


Changes for reusability

Remove application-specific methods.

Change names to make them general.

Add methods to broaden coverage.

Make exception handling consistent.

Add a configuration interface for component
adaptation.

Integrate required components to reduce
dependencies.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 15


Key points

CBSE is a reuse-based approach to defining and
implementing loosely coupled components into
systems.

A component is a software unit whose functionality
and dependencies are completely defined by its
interfaces.

A component model defines a set of standards that
component providers and composers should follow.

During the CBSE process, the processes of
requirements engineering and system design are
interleaved.

©Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 19 Slide 16

You might also like