Executable UMLExecutable UML
Two Real-World ProjectsTwo Real-World Projects
Paul KrausePaul Krause
Lecture 10 - Lecture 10 - Two Real-World ProjectsTwo Real-World Projects
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
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?
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
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.
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
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.
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.
ContentsContents
IntroductionIntroduction ContextContext DocumentsDocuments Family issuesFamily issues Towards a designTowards a design ExperienceExperience ConclusionConclusion
Introduction: Product familiesIntroduction: Product families
Deal explicitly with commonalities and Deal explicitly with commonalities and differencesdifferences
Advantages inAdvantages in MarketingMarketing DevelopmentDevelopment ManufacturingManufacturing MaintenanceMaintenance
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
Context: Medical imagingContext: Medical imaging
X-Ray
CT
MR
Ultrasound
Context: Medical imaging: X-RayContext: Medical imaging: X-Ray
Cardio/Vascular
UniversalRadiographyandFluoroscopy
Radiography
Surgery
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
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)
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)
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
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.
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
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
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
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
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.
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)
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
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
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
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
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
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
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
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
Part IVPart IV
EpilogueEpilogue
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
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
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