components in product lines - the next steps rob van ommering philips research euromicro 2005,...
TRANSCRIPT
Components in Product Lines -The Next Steps
Rob van OmmeringPhilips ResearchEuroMicro 2005, Porto, Portugal,September 1st, 2005
2© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Introducing my domain…
2000 1990
1979
2 MB 64 kB
1 kB
1965
3© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
(1) Complexity
Code Size Evolution of High End TV Software
2
4
8
16
32
64
256
512
1024
2048
12000
30004096
32000
100000
64000
1
10
100
1000
10000
100000
1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002 2004 2006 2008 2009
Year of Market Introduction
Kby
tes
4© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Image
Sound
100 Hz
100 Hz
quality
quality
Dolby
Dolby
AC3AC3
DataProcessing
UserInterface
Txt
Txt
EPGEPGmenusmenus
animationanimation
3D3D
Connectivity
P50P50
1394
1394
StorageDevice
TiVoTiVo
VCR
VCR
DVDDVD
TVCRTVCR
HDHD
BroadcastingStandard
DTVDTV
RegionEuEuUSUS
APAP
Video Output Device
PTVPTV
FTVFTVLCTVLCTV
Price
UTVUTV
MTVMTV
(2) Diversity
5© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
(3) Lead Time
Was:• Yearly cycle of product introduction
– Christmas– World championship
Is:• Decreasing to 6 (or even 3) months
– Otherwise loose shelf space in shop
6© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Summary…
Software GrowsExponentially(Moore’s Law)
Software GrowsExponentially(Moore’s Law)
Market demands...Market demands... Shorter lead time…More product variation...Shorter lead time…More product variation...
Need more people...Need more time...Need more people...Need more time...
7© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Contents of my talk
• Introduction• Product families, populations, lines• Koala 101• Configuration and reflection• Calculating system properties• Evolution and branching• Current and future challenges
8© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Philips TV product familycineo flat projection
wide screen designer
9© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Related product families
VCRVCR
AudioAudio
STBSTB
DVDDVD
10© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Convergence
TVTV
TVTV
TVTV
TVTV
TVTV
VCRVCR
DVDDVD
HDHD
AudioAudio
STBSTB
TVCRTVCR
TV-DVDTV-DVD
TivoTivo
Home TheaterHome Theater
Digital TVDigital TV
+
+
+
+
+
=
=
=
=
=
11© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Convergence yesterday :-)
GPS + GSM
GSM + DigCamPDA + GPS
CD-RW, DVD, Card, TV PDA + GSM + DigCam
13© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
A product population is:
- a set of products with many commonalities, - but also with many differences, - developed by different sub-organizations, - each with its own time-line / lifecycle.
- a set of products with many commonalities, - but also with many differences, - developed by different sub-organizations, - each with its own time-line / lifecycle.
SingleProductSingle
ProductProductFamily
ProductFamily
ProductPopulation
ProductPopulation
UnrelatedProductsUnrelatedProducts
DecompositionDedicated components
CompositionCOTS
14© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
A product line is:
15© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Contents
• Introduction• Product families and populations• Koala 101• Configuration and reflection• Calculating system properties• Evolution and branching• Current and future challenges
16© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Module
A Koala module is:
- a non-reusable unit of code - with variation points
Mindset: a Koala module can (at least in in principle):
- be written in any language (C, Koala, HTML, makefile, …) - have any form (source, object, library, …)
17© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Variation Points
Koala has a two-level parameterization mechanism:
Level I
Level II
Name : rType : ISomething
interface ISomething{ int p; int q = 7; int f(x); int g(x) = 1 + f(x);}
This is Koala’s Interface Definition Language (IDL)
19© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Modules also provide stuff…
Same two-level mechanism:
Name : pType : ISomething
Level I
Level IIinterface ISomething{ int p; // defined in module int q = 7; int f(x); // defined in module int g(x) = 1 + f(x);}
21© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Building Systems
We can now build systems:
m provides
m requires
m
m’
…in both dimensions…
m’’
22© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Component
A Koala component is:
- a reusable … - … unit of encapsulation … - … still with variation points - providing stuff
m
m’m’’
C
Note how:
- modules are internal - some interfaces are internal - some interfaces are external
23© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Component Definition
m
Ccomponent C{ provides IXxx p;
requires IYyy r;
contains module m;
connects p = m; m = r;}
A component is described in a Component Definition Language (CDL):
p
r
24© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Compound Component
CC
C2
C1
C3
Components can instantiate other components:
25© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Contents
• Introduction• Product families and populations• Koala 101• Configuration and reflection• Calculating system properties• Evolution and branching• Current and future challenges
26© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Setting Diversity
C1C142C1C17 C1C1x
P1 P2 P3
Creating different products…
…by setting diversity parameters differently
27© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Selecting Components
Creating different products…
…by selecting different subcomponents
P1
C1C1
C2C2
P2
C1C1
C3C3
P3
C1C1
C2C2 C3C3
x
28© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Parameterization
C1C1
C2C2 C3C3
Partial evaluation is usedto create resource efficientconfigurations.
Spreadsheet ofdiversity calculations
29© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Reflection
C1 C1
A component can observe whether interfaces are actually connected.
This allows components to adapt themselves to their environment automatically.
30© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Reflection
A component can observe whether interfaces are actually connected.
Special notation for this common design pattern
42© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Contents
• Introduction• Product families and populations• Koala 101• Configuration and reflection• Calculating system properties• Evolution and branching• Current and future challenges
43© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Configuration Management
Distinguish between:• versions• temporary variants• permanent variantsof components.
We use our CM system for:• versions• temporary variants
But we use the component model for:• permanent variants
C2
Internal diversityInternal diversity
C2 C3
Structural diversityStructural diversity
44© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Roadmapping
‘ ’
ArchitectureProject
SubsystemEvolutionProjects
ProductRealization
Projects
47© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Show over time in a single picture:
0
50000
100000
150000
200000
250000
300000
350000
400000
21-0
5-19
99
21-0
8-19
99
21-1
1-19
99
21-0
2-20
00
21-0
5-20
00
21-0
8-20
00
21-1
1-20
00
21-0
2-20
01
21-0
5-20
01
21-0
8-20
01
21-1
1-20
01
21-0
2-20
02
21-0
5-20
02
21-0
8-20
02
21-1
1-20
02
21-0
2-20
03
21-0
5-20
03
21-0
8-20
03
Branch
Main
Raw Size
code size == LoC created
LoC modifiedon main line
LoC modifiedin branches
50© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
First Impression
• Effort in branches is 10-20%.• Effort in rewrites is 50%!• A subsystem is either stable or non-stable.• Subsystems are stable (only) when no developers have
been assigned.• Non-stable subsystems are completely rewritten in 3-4
years.
To do:• Zoom in• Look at other software (in Philips, or Open Source)
52© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Refined Measurement
0
200000
400000
600000
800000
1000000
1200000
1400000
19-0
7-19
99
19-1
1-19
99
19-0
3-20
00
19-0
7-20
00
19-1
1-20
00
19-0
3-20
01
19-0
7-20
01
19-1
1-20
01
19-0
3-20
02
19-0
7-20
02
19-1
1-20
02
19-0
3-20
03
19-0
7-20
03
19-1
1-20
03
19-0
3-20
04
19-0
7-20
04
19-1
1-20
04
Date
LO
C
Cloned
Added
Size
Deleted
Deleted Files
deleted
created
modified
clones
53© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Comparing Various Subsystems
0
5000
10000
15000
20000
25000
30000
35000
40000
45000
50000
22-0
9-19
99
22-1
2-19
99
22-0
3-20
00
22-0
6-20
00
22-0
9-20
00
22-1
2-20
00
22-0
3-20
01
22-0
6-20
01
22-0
9-20
01
22-1
2-20
01
22-0
3-20
02
22-0
6-20
02
22-0
9-20
02
22-1
2-20
02
22-0
3-20
03
Date
LO
C
Cloned
Added
Size
Deleted
Deleted Files
0
200000
400000
600000
800000
1000000
1200000
1400000
19-0
7-19
99
19-1
1-19
99
19-0
3-20
00
19-0
7-20
00
19-1
1-20
00
19-0
3-20
01
19-0
7-20
01
19-1
1-20
01
19-0
3-20
02
19-0
7-20
02
19-1
1-20
02
19-0
3-20
03
19-0
7-20
03
19-1
1-20
03
19-0
3-20
04
19-0
7-20
04
19-1
1-20
04
Date
LO
C
Cloned
Added
Size
Deleted
Deleted Files
0
50000
100000
150000
200000
250000
01-1
2-19
99
01-0
3-20
00
01-0
6-20
00
01-0
9-20
00
01-1
2-20
00
01-0
3-20
01
01-0
6-20
01
01-0
9-20
01
01-1
2-20
01
01-0
3-20
02
01-0
6-20
02
01-0
9-20
02
01-1
2-20
02
01-0
3-20
03
01-0
6-20
03
01-0
9-20
03
01-1
2-20
03
01-0
3-20
04
01-0
6-20
04
01-0
9-20
04
01-1
2-20
04
Date
LO
C
Cloned
Added
Size
Deleted
Deleted Files
0
50000
100000
150000
200000
250000
300000
350000
23-1
2-19
98
23-0
4-19
99
23-0
8-19
99
23-1
2-19
99
23-0
4-20
00
23-0
8-20
00
23-1
2-20
00
23-0
4-20
01
23-0
8-20
01
23-1
2-20
01
23-0
4-20
02
23-0
8-20
02
23-1
2-20
02
23-0
4-20
03
23-0
8-20
03
23-1
2-20
03
23-0
4-20
04
23-0
8-20
04
23-1
2-20
04
Date
LO
C
Cloned
Added
Size
Deleted
Deleted Files
54© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Some Open-Source Packages
Apache Linux
Mono Subversion
55© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Zooming in…
56© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
New Impression
• Many people confirm rewrite every 3-4 year.• More difficult to measure in growing systems.• Open Source also shows rewrites on main line. • Stable subsystems are dead code!
Spin-off:• Evolution browser helps to understand architecture
57© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Contents
• Introduction• Product families and populations• Koala 101• Configuration and reflection• Calculating system properties• Evolution and branching• Current and future challenges
60© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Conway’s Law -1
The structure of the organization should mirror the architecture of the software.
Bangalore
Singapore
EindhovenBrugge
Wien
Knoxville
Sunnyvale
BriarcliffHamburg
Southampton
Software development shifts east…
61© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Another Shift: CE PS 3rd party
02468
101214161820
2003 2004 2005 2006
In-house
Supplier
ISV
MBytes
OS
OS
ApplicationsApplications
A/V platformA/V platform
OS
OS
ApplicationsApplications
A/V platformA/V platform
MiddlewareMiddleware
It is no longer efficient to write all the software yourself…
63© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Can I check more things statically?
Multi-threading checking is a success, but transfer to our product division is cumbersome:
• Gain expected but cost is high• Can I derive models from source code?
‘Our’ Robocop component model, in some sense a successor of Koala, defines a component as a set of models
64© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
Can I do more things dynamically?
No problem w.r.t. binding technology:• Koala is prepared for that (need another back-end)• Were already expecting to go this way in 2000!
But you also give up certain things:• Performance• Memory use• Source code browsing• Source code analysis• …
How can we combine the good things?
65© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005
ThankYou!
Limited availability…