+ All Categories
Home > Documents > Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005,...

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

Date post: 16-Jan-2016
Category:
Upload: gyles-bates
View: 216 times
Download: 0 times
Share this document with a friend
Popular Tags:
43
Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st , 2005
Transcript
Page 1: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

Components in Product Lines -The Next Steps

Rob van OmmeringPhilips ResearchEuroMicro 2005, Porto, Portugal,September 1st, 2005

Page 2: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 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

Page 3: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 4: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 5: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 6: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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...

Page 7: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 8: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

8© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

Philips TV product familycineo flat projection

wide screen designer

Page 9: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

9© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

Related product families

VCRVCR

AudioAudio

STBSTB

DVDDVD

Page 10: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

+

+

+

+

+

=

=

=

=

=

Page 11: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 12: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 13: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

14© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

A product line is:

Page 14: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 15: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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, …)

Page 16: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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)

Page 17: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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);}

Page 18: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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’’

Page 19: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 20: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 21: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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:

Page 22: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 23: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 24: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 25: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 26: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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.

Page 27: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 28: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 29: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 30: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

44© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

Roadmapping

‘ ’

ArchitectureProject

SubsystemEvolutionProjects

ProductRealization

Projects

Page 31: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 32: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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)

Page 33: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 34: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 35: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

54© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

Some Open-Source Packages

Apache Linux

Mono Subversion

Page 36: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

55© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

Zooming in…

Page 37: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 38: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 39: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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…

Page 40: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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…

Page 41: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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

Page 42: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

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?

Page 43: Components in Product Lines - The Next Steps Rob van Ommering Philips Research EuroMicro 2005, Porto, Portugal, September 1 st, 2005.

65© 2005 Philips Research, Rob van Ommering, EuroMicro 2005, Porto, Portugal, Sep 1st, 2005

ThankYou!

Limited availability…


Recommended