Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005,...

Preview:

Citation preview

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…

Recommended