Executable UML

37
Executable UML Executable UML Two Real-World Projects Two Real-World Projects Paul Krause Paul Krause

description

Executable UML. Two Real-World Projects Paul Krause. Lecture 10 - Two Real-World Projects. A Talk in Four Parts. Prologue Requirements Modeling for Families of Complex Systems The Koala Component Model for Consumer Electronics Software Epilogue. Part I. The Prologue - PowerPoint PPT Presentation

Transcript of Executable UML

Page 1: Executable UML

Executable UMLExecutable UML

Two Real-World ProjectsTwo Real-World Projects

Paul KrausePaul Krause

Page 2: Executable UML

Lecture 10 - Lecture 10 - Two Real-World ProjectsTwo Real-World Projects

Page 3: Executable UML

A Talk in Four PartsA Talk in Four Parts

ProloguePrologue Requirements Modeling for Families of Requirements Modeling for Families of

Complex SystemsComplex Systems The Koala Component Model for Consumer The Koala Component Model for Consumer

Electronics SoftwareElectronics Software EpilogueEpilogue

Page 4: Executable UML

Part IPart I

The PrologueThe Prologue Why is Philips interested in Software?Why is Philips interested in Software? The need for QualityThe need for Quality What is Quality?What is Quality?

Page 5: Executable UML

Philips Philips ElectronicsElectronics makes makes Software?Software?

Philishave - 35k of softwarePhilishave - 35k of software Mid end TV > 4M of softwareMid end TV > 4M of software Development teams > 100Development teams > 100 Distributed developmentDistributed development

e.g. TV development sites at Brugge, Eindhoven, e.g. TV development sites at Brugge, Eindhoven, Southampton, Vienna, Bangalore, Singapore, Southampton, Vienna, Bangalore, Singapore, Briarcliffe, KnoxvilleBriarcliffe, Knoxville

Page 6: Executable UML

The Need for Software QualityThe Need for Software Quality

Embedded software follows Moore’s LawEmbedded software follows Moore’s Law doubling in size every two yearsdoubling in size every two years

Diversity of products and their software is also Diversity of products and their software is also increasing rapidlyincreasing rapidly

Development time must decrease significantlyDevelopment time must decrease significantly ReliabilityReliability FlexibilityFlexibility ExtendibilityExtendibility Reusability.Reusability.

Page 7: Executable UML

What is Quality (or what is it What is Quality (or what is it not)!not)!

““Quality means conformance to requirements”Quality means conformance to requirements”BUT!BUT! Requirements contain >15% of all errorsRequirements contain >15% of all errors Requirements typically grow at >2% per Requirements typically grow at >2% per

monthmonth Do you conform to requirements errors?Do you conform to requirements errors? Do you conform to new requirements?Do you conform to new requirements? Whose requirements are you trying to satisfy?Whose requirements are you trying to satisfy?

Source: Capers Jones, 2000Source: Capers Jones, 2000

Page 8: Executable UML

ConclusionConclusion

To achieve quality products we need to look at To achieve quality products we need to look at all aspects of our development processesall aspects of our development processes

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

market place.market place.

Page 9: Executable UML

Part IIPart II

Requirements Modeling for Families of Requirements Modeling for Families of Complex SystemsComplex Systems

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

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

Page 10: Executable UML

ContentsContents

IntroductionIntroduction ContextContext DocumentsDocuments Family issuesFamily issues Towards a designTowards a design ExperienceExperience ConclusionConclusion

Page 11: Executable UML

Introduction: Product familiesIntroduction: Product families

Deal explicitly with commonalities and Deal explicitly with commonalities and differencesdifferences

Advantages inAdvantages in MarketingMarketing DevelopmentDevelopment ManufacturingManufacturing MaintenanceMaintenance

Page 12: Executable UML

Introduction: GoalsIntroduction: Goals

Requirements specifications for product families shouldRequirements specifications for product families should

specify specify whatwhat can be expected from the products can be expected from the products

be be agreed onagreed on by all stakeholders by all stakeholders

be sufficiently be sufficiently preciseprecise to avoid misunderstandings to avoid misunderstandings

deal explicitly with deal explicitly with commonalitiescommonalities and and differencesdifferences

form a form a solid basissolid basis for further for further developmentdevelopment

withoutwithout unnecessarily unnecessarily limitinglimiting the designers’ the designers’ freedomfreedom

Page 13: Executable UML

Context: Medical imagingContext: Medical imaging

X-Ray

CT

MR

Ultrasound

Page 14: Executable UML

Context: Medical imaging: X-RayContext: Medical imaging: X-Ray

Cardio/Vascular

UniversalRadiographyandFluoroscopy

Radiography

Surgery

Page 15: Executable UML

Context: Market and product Context: Market and product characteristicscharacteristics

Mature marketMature market

complex systems complex systems

Potential hazards (radiation, electricity, mechanics, Potential hazards (radiation, electricity, mechanics,

…) …) high demands on products and process high demands on products and process

Relatively few systems, many configurationsRelatively few systems, many configurations

systems cannot all be tested thoroughly systems cannot all be tested thoroughly

Page 16: Executable UML

Context: Project characteristicsContext: Project characteristics

Vast range of expertise neededVast range of expertise needed

Many (>100) developers, some new to the domainMany (>100) developers, some new to the domain

Carried out jointly by several departmentsCarried out jointly by several departments

Time to market importantTime to market important

Long project duration (several years)Long project duration (several years)

Long lifetime of architecture (>10 years)Long lifetime of architecture (>10 years)

Page 17: Executable UML

DocumentsDocuments

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

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

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

Requirements Object ModelRequirements Object Model concepts and their relationships (in UML)concepts and their relationships (in UML)

Page 18: Executable UML

Documents: Example modelDocuments: 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 19: Executable UML

Documents: Example use caseDocuments: Example use case

Use case CloseCircleShutter:Use case CloseCircleShutter:

When the CloseShuttersEvent is received from the When the CloseShuttersEvent is received from the

ClinicalUser, then the ClinicalUser, then the DiameterDiameter of the of the ObjectObject

CircleShutterCircleShutter is decreased with a fixed is decreased with a fixed SpeedSpeed, until , until

either the StopShuttersEvent or the either the StopShuttersEvent or the

OpenShuttersEvent is received.OpenShuttersEvent is received.

Page 20: Executable UML

Documents: Structure of FRSDocuments: Structure of FRS

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

Often coincides with areas of expertise of FRS authors.Often coincides with areas of expertise of FRS authors.Does not imply the same subdivision in design.Does not imply the same subdivision in design.Examples:Examples:

AdministrationPatient positioningAcquisitionField service

ReviewingPrintingArchiving

Page 21: Executable UML

Family issues: Expressing Family issues: Expressing variation: Object modelvariation: Object model

SpecializationSpecialization

MultiplicityMultiplicity

AttributesAttributes

Xray Detector

Film Detector IITVDetector SolidState

Imaging System XRayDetector0..*

XRayDetector

MaxResolution: IntMaxFrameRate: Int

Page 22: Executable UML

Family issues: Expressing Family issues: Expressing variation: Use casesvariation: Use cases

Behaviour of use cases may depend on model, Behaviour of use cases may depend on model,

including the above variation mechanisms.including the above variation mechanisms. Different systems may support different sets of use Different systems may support different sets of use

casescases

Result:Result: Precise and detailed specifications for the domainPrecise and detailed specifications for the domain Concise specifications for individual systemsConcise specifications for individual systems

Page 23: Executable UML

ExperienceExperience

Tried out in one large development project and Tried out in one large development project and several small feasibility studiesseveral small feasibility studies

Large FRSLarge FRS15 chapters15 chapters 500 use cases500 use cases

Large requirements modelLarge requirements model100 diagrams100 diagrams 1000 relationships 1000 relationships 700 classes700 classes 1500 attributes1500 attributes

Solid basis of shared knowledgeSolid basis of shared knowledge Effort well spentEffort well spent Object model relatively immune to changes Object model relatively immune to changes

Page 24: Executable UML

ConclusionConclusion

We learned:We learned: Early construction of a requirements object model Early construction of a requirements object model

provides an explicit, shared map of concepts.provides an explicit, shared map of concepts. Developing use cases and object model hand in Developing use cases and object model hand in

hand leads to precise use cases and a complete hand leads to precise use cases and a complete model.model.

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

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

Page 25: Executable UML

Part IIIPart III

The Koala Component Model for The Koala Component Model for Consumer Electronics SoftwareConsumer Electronics Software

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

Page 26: Executable UML

Contents of Part IIIContents of Part III

Motivation - the need for componentsMotivation - the need for components The Koala modelThe Koala model Coping with evolutionCoping with evolution ConclusionsConclusions

Page 27: Executable UML

The need for componentsThe need for components

Consumer Electronics products are members Consumer Electronics products are members of complex family structuresof complex family structures

Exhibit diversity in:Exhibit diversity in: product featuresproduct features user control styleuser control style supported broadcasting standardssupported broadcasting standards hardware technologyhardware technology

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

Page 28: Executable UML

The need for componentsThe need for components

Object-oriented frameworks enable multiple Object-oriented frameworks enable multiple applications to be created from shared applications to be created from shared structurestructure and and codecode but changing the structure significantly is difficultbut changing the structure significantly is difficult

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

explicit interface to its environmentexplicit interface to its environment components - can be used in many different configurationscomponents - can be used in many different configurations

Page 29: Executable UML

The need for “requires” The need for “requires” interfacesinterfaces

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 30: Executable UML

The Koala ModelThe Koala Model

ComponentsComponents units of design development and reuseunits of design development and reuse

InterfacesInterfaces a component communicates with its environment through a component communicates with its environment through

interfacesinterfaces an interface is a small set of semantically related functionsan interface is a small set of semantically related functions

A component A component providesprovides functionality through its functionality through its interfacesinterfaces

To do so, it may also To do so, it may also requirerequire functionality through its functionality through its interfacesinterfaces

Page 31: Executable UML

Koala’s graphical notationKoala’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 32: Executable UML

Configurations and Compound Configurations and Compound ComponentsComponents

A configuration is a set of components connected A configuration is a set of components connected together to form a producttogether to form a product all all requiresrequires interfaces must be bound to precisely one interfaces must be bound to precisely one

providesprovides interface interface each each providesprovides interface can be bound to zero or more interface can be bound to zero or more

requiresrequires interfaces interfaces It may be useful to compose It may be useful to compose Compound Compound

ComponentsComponents from basic components from basic components But always, when binding interfaces But always, when binding interfaces there must be a there must be a

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

Page 33: Executable UML

ConclusionConclusion

Able to introduce component orientation in a Able to introduce component orientation in a domain that is resource-constraineddomain that is resource-constrained

Graphical notation helpful in design Graphical notation helpful in design discussionsdiscussions

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

Page 34: Executable UML

Part IVPart IV

EpilogueEpilogue

Page 35: Executable UML

We have seen:We have seen:

how the need to deliver quality products in a how the need to deliver quality products in a volatile and complex market place has driven volatile and complex market place has driven developments in Software Engineeringdevelopments in Software Engineering

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

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

Page 36: Executable UML

Global concernsGlobal 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 37: Executable UML

Software Engineering issues are vitally importantSoftware Engineering issues are vitally important But this is not the whole story:But this is not the whole story:

co-ordinationco-ordination collaborationcollaboration communicationcommunication people managementpeople management planningplanning strategystrategy technologytechnology

ConclusionConclusion