Presentation is loading. Please wait.

Presentation is loading. Please wait.

Managing Variability with Koala Rob van Ommering Philips Research IPA Lentedagen 2005, April 1 st, 2005.

Similar presentations


Presentation on theme: "Managing Variability with Koala Rob van Ommering Philips Research IPA Lentedagen 2005, April 1 st, 2005."— Presentation transcript:

1 Managing Variability with Koala Rob van Ommering Philips Research IPA Lentedagen 2005, April 1 st, 2005

2 2 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Introducing my domain… 2000 1990 1979 2 MB 64 kB 1 kB Moore’s Law 1965

3 3 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 (1) Complexity

4 4 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Image Sound 100 Hz quality Dolby AC3 Data Processing User Interface Txt EPG menus animation 3D Connectivity P50 1394 Storage Device TiVo VCR DVD TVCR HD Broadcasting Standard DTV Region Eu US AP Video Output Device PTV FTV LCTV Price UTV MTV (2) Diversity

5 5 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 (3) Lead Time Was: Yearly cycle of product introduction –Christmas –World championship Is: Decreasing to 6 or 3 months –Otherwise loose shelf space in shop

6 6 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Related product families VCR Audio STB DVD

7 7 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Convergence TV VCR DVD HD Audio STB TVCR TV-DVD Tivo Home Theater Digital TV + + + + + = = = = =

8 8 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Recent examples of convergence… GPS + GSM GSM + DigCam PDA + GPS CD-RW, DVD, Card, TV PDA + GSM + DigCam

9 9 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Summary… Software Grows Exponentially (Moore’s Law) Software Grows Exponentially (Moore’s Law) 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...

10 10 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Product Family Product Population Application Domain Everything A specific TVTV, FTV, PTV TV, VCR, DVD,... All CE ProductsWorld Decomposition paradigm Composition paradigm Separate product information from component information

11 11 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 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. Single Product Product Family Product Population Unrelated Products Decomposition Dedicated components Composition COTS

12 12 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Koala is… C C2C2 C1C1 C3C3 - a component model - with an ADL - to build populations of - resource constrained products

13 13 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Koala 101

14 14 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Component CTuner component CTuner { … } A Koala component is: - a unit of design/implementation - a unit of reuse Compare a Koala component to: - a Java or.Net class - a COM coclass A component is described in CDL (Component Definition Language)

15 15 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Provides Interface p CTuner p CTuner component CTuner { provides ITuner p; } A Koala interface is: - a unit of specification - a unit of binding Compare a Koala interface to: - a Java or.Net interface - a COM interface An interface is described in IDL (Interface Definition Language) interface ITuner { void Tune(int freq); }

16 16 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Provides Interfaces i p CTuner i p CTuner component CTuner { provides IInit i; ITuner p; } A component may (and usually will) provide more than one interface. An interface is a small set of functions that are semantically related. interface ITuner { void Tune(int freq); } interface IInit { void Init(void); }

17 17 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Commonality and Variation CTuner ITunerIInit CSearchTuner ITunerIInit ISearchTuner CVideo IVideo IInit CommonalityVariation Components in the repository

18 18 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Requires Interfaces i p CTuner r m i p CTuner r m component CTuner { provides IInit i; ITuner p; requires IRtk r; IMem m; } Components access functions in their environment through explicit requires interfaces interface ITuner { void Tune(int freq); } interface IInit { void Init(void); } interface IRtk { Sem CreateSem(); } interface IMem { void *malloc(int size); }

19 19 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 A Product CTuner CRtk CMem CApp component CProduct { contains component CApp app; component CTuner tun; component CRtk rtk; component CMem mem; connects app.i = tun.i; app.p = tun.p; tun.r = rtk.r ; tun.m = rtk.m; } CProduct Also a component!

20 20 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Another Product CTuner CRtk2 CMem2 CApp2 CProduct2 Same! Different! Requires interfaces are variation points!

21 21 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Compound Component CTuner CMem CPlatform The component model is recursive component CPlatform { provides … requires … contains … connects … }

22 22 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Glue Module COs CTuner Sometimes interfaces are not connected 1:1 Examples: - interface mismatch - tracing / logging - special strategies We can then insert a glue module component CXxx { contains component CTuner tun; component COs os; module m; connects tun.m = m; m = os.m; … }

23 23 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Code Module We also use modules to implement a component There is no distinction between code and glue modules! component C { provides I1 p1; I2 p2; I3 p3; requires Ia ra; Ib rb; Ic rc; contains module m1, m2; connects p1 = m1; p2 = m1; p3 = m2; m1 = ra; m1 = rb; m2 = rb; m2 = rc; }

24 24 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Implementing a Module component CProduct { …. connects within m1 { p1.f(x) = ra.g(2*x); … } Interface functions can be implemented in CDL… …or in the underlying implementation language (following the language binding conventions)

25 25 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Diversity Interface C C interface IDiv { bool Fast; int Color; } Component can be parameterized… …to postpone certain decisions to product time component C { requires IDiv div; }

26 26 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Switch C1 C2 C3 component C { provides … requires … contains … connects switch div.Fast in { c1.r } out { c2.p } on false, { c3.p } on true; } Also the binding decision can be postponed. A switch can be statically evaluated or converted into run-time code.

27 27 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Diversity Spreadsheet C1 C2 Parameters of subcomponents can be partially filled in… … and partially diverted to parameters of the compound component

28 28 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Optional Interface C C Parameters of subcomponents can be partially filled in… … and partially diverted to parameters of the compound component component C { provides … requires IX r optional; }

29 29 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Sub-typing and evolution C C’ IB+  IB Provide more... IAIBIAIB + IC C’  C Koala subtypes interfaces based on set inclusion of functions C C’ IB-  IB Require less…??? IAIB - IAIBIC C’  C Koala reports an error if a non-existing interface is bound…!

30 30 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Reflection C1 A component can observe whether interfaces are actually connected. This allows components to adapt themselves to their environment automatically.

31 31 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 My old digital camera… Dedicated “Dedicated”

32 32 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 The one I wanted to buy…

33 33 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 The one I bought… All general purpose components!

34 34 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 One snag though… Can do 110 Volts and 220 Volts But be careful!

35 35 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Self-configuring components Components specify how many resources they require This can be summed and provided to the component that delivers the resources at the product level C1 C3 C1 +

36 36 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Multi threading C1 Step 1: use message pumps created on virtual pump engines required through a diversity interface Step 2: bind these to pump engines (a real dispatcher loop) Problem: many (>100) activities but few (<10) threads C2 C3 CFireBrigade Same thread, No synchronisation required Different thread, Synchronisation required

37 37 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Threading Analysis a a b b b c * * Attribute interfaces with a symbolic thread label

38 38 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Threading calculus a a a a a b c d * * * * * a * a a * a * X X X X X O

39 39 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Unification p a a p p b b p q b c q Thread labels are unified Prepared for call on different threads, but called on the same thread q must be same as p C is a new thread, and cannot be equal to q

40 40 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005

41 41 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Using Koala

42 42 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Our approach… Under a common architecture... … a set of subsystems is developed... … a set of subsystems is developed... …with which products can be built... …with which products can be built... … executed in projects!

43 43 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Domain vs application engineering Architecture Products Subsystems Domain Application

44 44 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Bangalore Singapore Eindhoven Brugge Wien Knoxville Sunnyvale Briarcliff Hamburg Southampton Yawnoc’s Law Source: David Weiss The structure of the organization should mirror the architecture of the software. Surprisingly(?), the development managers agree, but the architects protest…

45 45 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 In-house versus 3 rd party Source-code in MBytes

46 46 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 Leveraging & Architecture OS Applications A/V platform OS Applications A/V platform Middleware Applications Drivers Middleware ?

47 47 © 2005 Philips Research, Rob van Ommering, IPA Lentedagen, Made, April 1 st 2005 The End


Download ppt "Managing Variability with Koala Rob van Ommering Philips Research IPA Lentedagen 2005, April 1 st, 2005."

Similar presentations


Ads by Google