24
H 1 Building Product Populations with Software Components, 23-05-2002 © 2002 Koninklijke Philips Electronics NV Building Product Populations with Software Components Rob van Ommering Philips Research May 23 rd , 2002

New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 2: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 3: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 4: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 5: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

H

5

Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV

Other Product Families

VCRVCR

AudioAudio

STBSTB

DVDDVD

Page 6: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

+

+

+

+

+

=

=

=

=

=

Page 7: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 8: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 9: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

H

9

Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV

Product Populations

Software Components

Building ,, with ,,A

SSSIPPP

Page 10: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 11: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

H

11

Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV

A Product Line for Bears JJJJ …

Page 12: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 13: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 14: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 15: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 16: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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.

Page 17: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 18: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 19: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 20: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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…!

Page 21: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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.

Page 22: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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

Page 23: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

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.

Page 24: New Building Product Populations with Software Componentsisr.uci.edu/events/colloquia/presentations/vanOmmering02.pdf · 2007. 9. 19. · lr4N lruiN lrfN div mgdpow: CMgDirectViewPower

H

24

Building Product Populations with Software Components, 23-05-2002© 2002 Koninklijke Philips Electronics NV

Thank you!