Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
H
1
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Building Product Populationswith Software Components
Rob van OmmeringPhilips ResearchMay 23rd, 2002
H
2
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Contents
Product Populations
Software Components
Building ,, with ,,A
SSSIPPP
H
3
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Complexity
20002000
2 MB2 MB
19901990
64 kB64 kB
19791979
1 kB1 kBMoore’s LawMoore’s Law
19651965
H
4
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
A Television Product FamilyPricePrice
Output DeviceOutput Device
RegionRegion
Other axes of diversity:image, sound, data processing,user interface, connectivity, …
Other axes of diversity:image, sound, data processing,user interface, connectivity, …
H
5
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Other Product Families
VCRVCR
AudioAudio
STBSTB
DVDDVD
H
6
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Convergence
TVTV
TVTV
TVTV
TVTV
TVTV
VCRVCR
DVDDVD
HDHD
AudioAudio
STBSTB
TVCRTVCR
TV-DVDTV-DVD
TivoTivo
Home TheaterHome Theater
Digital TVDigital TV
+
+
+
+
+
=
=
=
=
=
H
7
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Composition
VideoProcessing
AudioProcessing
Tuner
Hard disk DVD
OutputDriver
Amplifier
Teletext EPG UIMS
VCR
H
8
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
A 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.
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.
SingleProductSingle
ProductProductFamily
ProductFamily
ProductPopulation
ProductPopulation
UnrelatedProductsUnrelatedProducts
DecompositionDedicated components
CompositionCOTS
H
9
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Product Populations
Software Components
Building ,, with ,,A
SSSIPPP
H
10
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
The Koala Component Model
CC
C2
C1
C3
Koala is:- a component Model- with an ADL- to build populations of- resource constrained products
Koala is:- a component Model- with an ADL- to build populations of- resource constrained products
H
11
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
A Product Line for Bears JJJJ …
H
12
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Provides Interfaces
CTunerCTuner CTuner’CTuner’
CSearchTuner
CSearchTuner
tun: ITuner tun: ITuner tun2: ITuner2
tun: ITuner stun: ISearchTuner
Div
ersi
ty
Evolution
C
Looks like:
Microsoft COM
H
13
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Requires Interfaces
CTunerCTuner
C8720DriverC8720Driver
CTunerCTuner
All context dependencies are made explicit……and are bindable by a third partyAll context dependencies are made explicit……and are bindable by a third party
…so they can be bound differently in another product…so they can be bound differently in another product
C
Looks like:
Darwin
H
14
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
‘Connectors’
C1C1
C2C2
C1C1
C2C2
Looks likeVisual Basic
C1C1
C2C2 C2C2
Looks likeHardware!
SwitchSwitch Glue ModuleGlue ModuleDirectDirect
r
p
r
p1
r
pp2
m
H
15
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Compound Components
C1C1
C2C2 C2C2
The compositionprocess isrecursive…
The compositionprocess isrecursive…
Component instancesare encapsulated.
Component typesare not (necessarily)(see later).
Component instancesare encapsulated.
Component typesare not (necessarily)(see later).
H
16
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Diversity Interfaces and Partial Evaluation
C1C1
C2C2 C2C2
Diversity interfacesare outgoinginterfaces wichparameterize thecomponent.
Diversity interfacesare outgoinginterfaces wichparameterize thecomponent.
Partial evaluation is usedto create resource efficientconfigurations.
Partial evaluation is usedto create resource efficientconfigurations.
H
17
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Product Populations
Software Components
Building ,, with ,,A
SS
S
IPP
P
H
18
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
A Real-Life Example
mgsrccl 2b6:CMgSourcesClus ter2b6
ant
rgb1
rgb2
cvbs1
cvbs3
cvbs4
yccvbs2
yccvbsf
yccvbsui
lr1
lr2
lr3
lr4
lrui
lrf
pow
antN
rgb1N
rgb2N
cvbs1N
cvbs3N
cvbs4N
yccvbs2N
yccvbsfN
yccvbsuiN
lr1N
lr2N
lr3N
lr4N
lruiN
lrfN
div
mgdpow:CMgDirectViewPower
pow fac
deflNsndN
src
dst
powN facN
tun ssd vif vio deflsndstub rtkpmp
pen
i2cc
iic
oiodiv
mgtun:CMgTuner
mtun
inantN
outif
pow
ifs
i2c
err
pmp
penmtunN
inant
outifN
div
mgssd:CMgSourceSelectionDecoding
ifs mcol
inrgb1N
inrgb2N
incvbs1N
incvbs2N
inyccvbs3N
inyccvbs4N
inyccvbs5N
inyccvbs6N
inifN
outsi f
outmain
outyccvbs2
outcvbs1
outcvbs3
powmcol N
i2c
pmp pen
inrgb1
inrgb2
incvbs1
incvbs2
inyccvbs3
inyccvbs4
inyccvbs5
inyccvbs6
inif
outsi fN
outmainN
outyccvbs2N
outcvbs1N
outcvbs3N
div
mgvif:CMgVi deoFeaturing
aln
yuvoutyuvinN
pow vim vifps tvfrvip
pmp i2c pen
div zoom
yuvoutNyuvin
vimN vfrN vifNpstNvipN
mgdvo:CMgDirectViewVideoOutput
zoom
vio
yuvN
rgb
rgb1N
rgb2N
pow deflvioN
pmp
i2c pen
bi odi v
yuv
rgbN
rgb1 rgb2
deflN
mgmsp:CMgSoundMsp
ssoo hsoosnd sop
inlr2N
inlr3N
inlr4N
inlr5N
inlr6N
inlr9N
inifN
outlr
outhp
outlr1
outlr2
inlr1Ninlr7N inlr8Nini2s1N
ini2s2NinmonoN
outlr3outi2s pow
sndN sopN oiopmp rtkdi v i2c
pen
inlr2
inlr3
inlr4
inlr5
inlr6
inlr9
inif
outlrN
outhpN
outlr1N
outlr2N
inlr1 inlr7inlr8ini2s1 ini2s2inmonooutlr3N
outi2sN
powN
mgds tcl 2b6:CMgDesti nat ionsCluster2b6
cnc
yccvbs2N
rgbmainN
speakersN
headphonesN
lr1N
lr2N
rgbsubN
pow
cncN
yccvbs2
rgbmain
speakers
headphones
lr1
lr2
rgbsub
di v
i2c
pmp
mgtun.pen
i2c
pmp
mgssd.pen
pmp i2c
mgvif.pen
mdiv
pmp
i2c
mgdvo.pen
oi omdiv
oiopmp rtkmdiv i2c
mgmsp.pen
gndN
mgnd
gndN
mgnd
mgnd gndmgnd gndgndmgnd gndmgnd gnd
mgnd
gnd
mgnd
gndN mgnd
gndN
mgnd
gnd
mgnd
gnd
mgnd
gnd
mgnd
mgnd rtk
pmp
mgdpow.pen
i2c
oiomdiv
mdiv
mdiv
condiv
condiv
mdiv
mcl2b6
mdcu mosd
malign
mres
mgnd
pow fac al gmtun mcol
ssoo hsoosnd sop
mvim mvifmpstmvf rmvip vio
cnc
powN facNmtunN mcol N
sndN sopN
mvi mN mvi fNmpstNmvfrNmvi pN vioN
cncN
di v
i2c
i2cc
rtk
pmp
penerr
oi o
dcu odp
condiv
gnd
gndN
H
19
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Multi-Threading
C1C1
Step 1: use message pumpscreated on virtual pump enginesrequired through a diversity interface
Step 1: use message pumpscreated on virtual pump enginesrequired through a diversity interface
Step 2: bind these to pump engines(a real dispatcher loop)
Step 2: bind these to pump engines(a real dispatcher loop)
Problem: many (>100) activities but few (<10) threadsProblem: many (>100) activities but few (<10) threads
C2C2
C3C3
CF
ireB
rigad
eC
Fire
Brig
ade
Same thread,No synchronisation required
Different thread,Synchronisation
required
H
20
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Evolution
CC C’C’
IB+ ⊆⊆⊆⊆ IBIB+ ⊆⊆⊆⊆ IB
Provide more...Provide more...
IA IB IA IB+ IC
C’ ⊆⊆⊆⊆ CC’ ⊆⊆⊆⊆ C
Koala subtypes interfaces based on
set inclusion of functions
Koala subtypes interfaces based on
set inclusion of functions
CC C’C’IB- ⊇ IBIB- ⊇ IB
Require less…???Require less…???
IA IB-IA IB IC
C’ ⊆⊆⊆⊆ CC’ ⊆⊆⊆⊆ C
Koala reports an error if a non-
existing interface is bound…!
Koala reports an error if a non-
existing interface is bound…!
H
21
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Documentation
Separate component information from interface informationSeparate component external behaviour from component implementationUse does instead of shall.
Separate component information from interface informationSeparate component external behaviour from component implementationUse does instead of shall.
H
22
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Configuration Management
Distinguish between:u versionsu temporary variantsu permanent variantsof components.
We use our CM system for:u versionsu temporary variants
But we use the component model for:u permanent variants
C2
Internal diversityInternal diversity
C2 C3
Structural diversityStructural diversity
H
23
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Concluding Remarks
Product populations arise from ‘convergence’ of products,and are becoming increasingly important.
Introducing product populations also impacts thesoftware process and organization.
We currently have 100-200 software engineersin 10 sites deploying our approach.
But we still have a long way to go…
Product populations require a balance between classicalproduct family development and a COTS-like approach.
H
24
Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV
Thank you!