Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

36
Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause

Transcript of Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Page 1: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Component-Based Software Engineering

Component Engineeringat Philips Electronics

Paul Krause

Page 2: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

A Talk in Four Parts Prologue

Requirements Modeling for Families of Complex Systems

The Koala Component Model for Consumer Electronics Software

Epilogue

Page 3: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Part IPart I

The Prologue Why is Philips interested in Software?

The need for Quality

What is Quality?

Page 4: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Philips Electronics makes Software?

Philishave - 35k of software

Mid end TV > 4M of software

Development teams > 100

Distributed development e.g. TV development sites at Brugge, Eindhoven,

Southampton, Vienna, Bangalore, Singapore, Briarcliffe, Knoxville

Page 5: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

The Need for Software Quality Embedded software follows Moore’s Law

doubling in size every two years

Diversity of products and their software is also increasing rapidly

Development time must decrease significantly Reliability Flexibility Extendibility Reusability.

Page 6: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

What is Quality (or what is it not)! “Quality means conformance to requirements”

BUT!

Requirements contain >15% of all errors

Requirements typically grow at >2% per month Do you conform to requirements errors? Do you conform to new requirements? Whose requirements are you trying to satisfy?

Source: Capers Jones, 2000

Page 7: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Conclusion To achieve quality products we need to look at

all aspects of our development processes

In this lecture we will look at ways of improving requirements management; reducing time to market; increasing responsiveness to changes in the market

place.

Page 8: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Part IIPart II

Requirements Modeling for Families of Complex Systems

Based on presentation by Pierre America, Philips Research, and Jan van Wijgerden, Philips Medical Systems Presented at the 3rd Int. Workshop on Software

Architecture for Product Families, March 2000, Las Palmas de Gran Canaria, Spain.

Page 9: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Contents Introduction

Context

Documents

Family issues

Experience

Conclusion

Page 10: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Introduction: Product families

Deal explicitly with commonalities and differences

Advantages in Marketing Development Manufacturing Maintenance

Page 11: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Introduction: Goals

Requirements specifications for product families should

specify what can be expected from the products

be agreed on by all stakeholders

be sufficiently precise to avoid misunderstandings

deal explicitly with commonalities and differences

form a solid basis for further development

without unnecessarily limiting the designers’ freedom

Page 12: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Context: Medical imaging

X-Ray

CT

MR

Ultrasound

Page 13: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Context: Medical imaging: X-Ray

Cardio/Vascular

UniversalRadiographyandFluoroscopy

Radiography

Surgery

Page 14: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Context: Market and product characteristics

Mature market

complex systems

Potential hazards (radiation, electricity,

mechanics, …) high demands on products

and process

Relatively few systems, many configurations

systems cannot all be tested thoroughly

Page 15: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Context: Project characteristics

Vast range of expertise needed

Many (>100) developers, some new to the

domain

Carried out jointly by several departments

Time to market important

Long project duration (several years)

Long lifetime of architecture (>10 years)

Page 16: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Documents

Commercial Requirements Specification (CRS) positioning of system family in market

Systems Requirements Specification (SRS) features mentioned in lists and tables

Functional Requirements Specification (FRS) detailed descriptions of use cases (in English)

Requirements Object Model concepts and their relationships (in UML)

Page 17: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Documents: Example model

XrayBeamToDetectorPosition

SourceImageDistance

Detector

CircleShutter

DiameterSpeed

XRayBeam

ShapeIntensitySpectrum

Exposable

RectangleShutter

HeightWidthXSpeedYSpeed

Tube

VoltageCurrent

11

Generates

Shutter

Detector

Shapes

Object

Shapes

XRaySource

1

0..*

1

0..*

11

Page 18: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Documents: Example use case

Use case CloseCircleShutter:

When the CloseShuttersEvent is received from the ClinicalUser, then the Diameter of the Object CircleShutter is decreased with a fixed Speed, until either the StopShuttersEvent or the OpenShuttersEvent is received.

Page 19: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Documents: Structure of FRS

Divided into chapters according to areas of functionality: Different kinds of user (clinical user, field service. …) Different phases of workflow

Often coincides with areas of expertise of FRS authors.

Does not imply the same subdivision in design.

Examples: Administration Patient positioning Acquisition

Field service

Reviewing Printing Archiving

Page 20: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Family issues: Expressing variation: Object model

Specialization

Multiplicity ImagingSystem XRayDetector0 …*

XRayDetector

FilmDetector IITVDetector SolidStateDetector

AttributesXRayDetector

MaxResolution : IntMaxFrameRate : Int

Page 21: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Family issues: Expressing variation: Use cases

Behaviour of use cases may depend on model,

including the above variation mechanisms.

Different systems may support different sets of use cases

Result:

Precise and detailed specifications for the domain

Concise specifications for individual systems

Page 22: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Experience Tried out in one large development project and

several small feasibility studies

Large FRS15 chapters 500 use cases

Large requirements model100 diagrams 1000 relationships 700 classes 1500 attributes

Solid basis of shared knowledge

Effort well spent

Object model relatively immune to changes

Page 23: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Conclusion

We learned:

Early construction of a requirements object model provides an explicit, shared map of concepts.

Developing use cases and object model hand in hand leads to precise use cases and a complete model.

Overlapping groups allow many participants and parallel work, while maintaining consistency.

Not the individual technique counts, but the way they fit together.

Page 24: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Part IIIPart III

The Koala Component Model for Consumer Electronics Software

For more information, see article by Rob van Ommering, Frank van der Linden (Philips Research Laboratories, Eindhoven), Jeff Kramer and Jeff Magee (Imperial College)

Page 25: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Contents of Part III Motivation - the need for components

The Koala model

Coping with evolution

Conclusions

Page 26: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

The need for components Consumer Electronics products are members of

complex family structures

Exhibit diversity in: product features user control style supported broadcasting standards hardware technology

Need to create new products by extending and rearranging elements of existing products

Page 27: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

The need for components Object-oriented frameworks enable multiple

applications to be created from shared structure and code but changing the structure significantly is difficult

Component-based approaches let engineers construct multiple configurations with variations in both structure and content component - an encapsulated piece of software with

an explicit interface to its environment components - can be used in many different

configurations

Page 28: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

The need for “requires” interfaces

A

B1

Product 1

A

B2

Product 2

Importing B1 into A:

• gives A access to B1

• but puts knowledge of B1 inside A

So A cannot also combine with B2

PROBLEM

A

B1

Product 3

B2

Take binding knowledge out of the components.• A requires an interface of a certain type.• B1 and B2 provide such an interface.• Binding made at the product level

SOLUTION

Page 29: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

The Koala Model Components

units of design development and reuse

Interfaces a component communicates with its environment

through interfaces an interface is a small set of semantically related

functions

A component provides functionality through its interfaces

To do so, it may also require functionality through its interfaces

Page 30: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Koala’s graphical notation

CFrontEndcfre

pprg

pprg

pini

rtun rif

IProgram

CBackEndcbke

pprg

ppic

pini

rcol rscr

IPicture

CTunerDriverctun

ptun

pini

ri2c

CHipDriverchip

pcol

pini

ri2c

CHopDriverchop

pscr

pini

ri2c

pif

fast slow

m

II2cII2c

pini

IInitITuner

IIf IColorIScreen

CTvPlatformCTvPlatform

Page 31: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Configurations and Compound Components A configuration is a set of components

connected together to form a product all requires interfaces must be bound to precisely

one provides interface each provides interface can be bound to zero or

more requires interfaces

It may be useful to compose Compound Components from basic components But always, when binding interfaces there must be a

unique definition of each function, but a function may be called by many other functions

Page 32: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Conclusion Able to introduce component orientation in a

domain that is resource-constrained

Graphical notation helpful in design discussions

More than 100 software developers within Philips are currently using Koala, on an increasing diversity of products

Page 33: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Part IVPart IV

Epilogue

Page 34: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

We have seen: how the need to deliver quality products in a

volatile and complex market place has driven developments in Software Engineering

how UML can be exploited to strengthen the requirements process for families of complex systems

a component model that enables new configurations to be rapidly developed for novel products

Page 35: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Global concerns

Mainstream TVSingapore

System HouseEindhoven

Upmarket TVBrugge

Projection TVKnoxville

Software CentreBangalore

PhilipsSemiconductors Third Parties

Digital TVBriarcliffe

Set Top BoxesParis

TVCRVienna

Hard Disk/CD-RHasselt

Page 36: Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Software Engineering issues are vitally important

But this is not the whole story: co-ordination collaboration communication people management planning strategy technology

Conclusion