New Building Product Populations with Software...

Preview:

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!

Recommended