Title: A ComponentOriented Platform Architecting Method fCase Study 2: Consumer Electronics
1Building Product Populationswith Software
Components
Rob van Ommering Philips Research May 23rd, 2002
2Contents
Product Populations
Software Components
Building ,, with ,,
3Complexity
4A Television Product Family
Price
Region
Other axes of diversityimage, sound, data
processing,user interface, connectivity,
Output Device
5Other Product Families
STB
VCR
DVD
Audio
6Convergence
7Composition
Teletext
EPG
UIMS
VideoProcessing
OutputDriver
AudioProcessing
Tuner
Amplifier
Hard disk
DVD
VCR
8A Product Population
A product population is - a set of products
with many commonalities, - but also with many
differences, - developed by different
suborganizations, - each with its own time-line
/ lifecycle.
SingleProduct
ProductFamily
ProductPopulation
UnrelatedProducts
DecompositionDedicated components
CompositionCOTS
9 Product Populations
Software Components
Building ,, with ,,
10The Koala Component Model
Koala is - a component Model - with an ADL -
to build populations of - resource constrained
products
11A Product Line for Bears ?
12Provides Interfaces
tun ITuner
tun ITuner
tun2 ITuner2
Evolution
Diversity
tun ITuner
stun ISearchTuner
13Requires Interfaces
All context dependencies are made explicitand
are bindable by a third party
CTuner
CTuner
Looks like
C
C8720Driver
Darwin
so they can be bound differently in another
product
14Connectors
Switch
Glue Module
Direct
C1
C1
r
r
r
m
p
p
p1
p2
C2
15Compound Components
The compositionprocess isrecursive
C1
Component instancesare encapsulated. Component
typesare not (necessarily)(see later).
16Diversity Interfaces and Partial Evaluation
Diversity interfacesare outgoinginterfaces
wichparameterize thecomponent.
C1
Partial evaluation is usedto create resource
efficientconfigurations.
17 Product Populations
Software Components
Building ,, with ,,
18A Real-Life Example
19Multi-Threading
Problem many (100) activities but few (threads
Step 1 use message pumps created on virtual
pump engines required through a diversity
interface
C3
Different thread, Synchronisation required
Step 2 bind these to pump engines (a real
dispatcher loop)
CFireBrigade
C2
Same thread, No synchronisation required
C1
20Evolution
IA
IB
IA
IB
IC
Koala subtypes interfaces based on set inclusion
of functions
IB ? IB
C
C
C ? C
Provide more...
Koala reports an error if a non-existing
interface is bound!
IB- ? IB
C
C
C ? C
IA
IB-
IA
IB
IC
Require less???
21Documentation
Separate component information from interface
informationSeparate component external behaviour
from component implementationUse does instead of
shall.
22Configuration Management
- Distinguish between
- versions
- temporary variants
- permanent variants
- of components.
- We use our CM system for
- versions
- temporary variants
- But we use the component model for
- permanent variants
23Concluding Remarks
Product populations arise from convergence of
products, and are becoming increasingly
important.
Product populations require a balance between
classicalproduct family development and a
COTS-like approach.
Introducing product populations also impacts
thesoftware process and organization.
We currently have 100-200 software engineers in
10 sites deploying our approach.
But we still have a long way to go
24Thank you!