1 / 47

Managing Variability with Koala

Managing Variability with Koala. Rob van Ommering Philips Research IPA Lentedagen 2005, April 1 st , 2005. 1 kB. Moore’s Law. 64 kB. 2 MB. Introducing my domain…. 1965. 1979. 2000. 1990. (1) Complexity. Price. (2) Diversity. Image. UTV. quality. Connectivity. Sound. 1394.

dominy
Download Presentation

Managing Variability with Koala

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 1 kB Moore’s Law 64 kB 2 MB Introducing my domain… 1965 1979 2000 1990

  3. (1) Complexity

  4. Price (2) Diversity Image UTV quality Connectivity Sound 1394 AC3 100 Hz P50 Dolby Broadcasting Standard AP US Region Eu DTV MTV TiVo Txt menus TVCR EPG Data Processing PTV animation HD DVD Storage Device 3D FTV LCTV VCR User Interface Video Output Device

  5. (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. STB VCR DVD Audio Related product families

  7. VCR TVCR TV + = DVD TV-DVD TV + = HD Tivo TV + = STB Digital TV TV + = Audio Home Theater TV + = Convergence

  8. PDA + GPS GSM + DigCam GPS + GSM CD-RW, DVD, Card, TV PDA + GSM + DigCam Recent examples of convergence…

  9. Summary… Software Grows Exponentially (Moore’s Law) Need more people... Need more time... Shorter lead time… More product variation... Market demands...

  10. Decomposition paradigm Composition paradigm Product Family Product Population Application Domain Product Everything A specific TV TV, FTV, PTV All CE Products World TV, VCR, DVD, ... Separate productinformation from componentinformation

  11. 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. SingleProduct ProductFamily ProductPopulation UnrelatedProducts DecompositionDedicated components CompositionCOTS

  12. CC C1 C3 C2 Koala is… - a component model - with an ADL - to build populations of - resource constrained products

  13. Koala 101

  14. Component A Koala component is: - a unit of design/implementation - a unit of reuse CTuner Compare a Koala component to: - a Java or .Net class - a COM coclass component CTuner { … } A component is described in CDL (Component Definition Language)

  15. Provides Interface A Koala interface is: - a unit of specification - a unit of binding interface ITuner { void Tune(int freq); } p CTuner Compare a Koala interface to: - a Java or .Net interface - a COM interface component CTuner { provides ITuner p; } An interface is described in IDL (Interface Definition Language)

  16. Provides Interfaces interface IInit { void Init(void); } interface ITuner { void Tune(int freq); } i p CTuner A component may (and usually will) provide more than one interface. component CTuner { provides IInit i; ITuner p; } An interface is a small set of functions that are semantically related.

  17. Commonality and Variation Commonality Variation ISearchTuner ITuner ITuner IInit IInit CSearchTuner CTuner IVideo IInit CVideo Components in the repository

  18. Requires Interfaces interface IInit { void Init(void); } interface ITuner { void Tune(int freq); } component CTuner { provides IInit i; ITuner p; requires IRtk r; IMem m; } i p CTuner r m Components access functions in their environment through explicit requires interfaces interface IRtk { Sem CreateSem(); } interface IMem { void *malloc(int size); }

  19. A Product Also a component! CProduct 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; } CTuner CMem CRtk

  20. Another Product CProduct2 CApp2 Same! CTuner Different! CMem2 CRtk2 Requires interfaces are variation points!

  21. Compound Component The component model is recursive CPlatform CTuner component CPlatform { provides … requires … contains … connects … } CMem

  22. Glue Module CTuner Sometimes interfaces are not connected 1:1 component CXxx { contains component CTuner tun; component COs os; module m; connects tun.m = m; m = os.m; … } We can then insert a glue module COs Examples:- interface mismatch- tracing / logging- special strategies

  23. Code Module We also use modules to implement a component 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; } There is no distinction between code and glue modules!

  24. Implementing a Module Interface functions can be implemented in CDL… component CProduct { …. connects within m1 { p1.f(x) = ra.g(2*x); … } } …or in the underlying implementation language (following the language binding conventions)

  25. Diversity Interface interface IDiv { bool Fast; int Color; } Component can be parameterized… C component C { requires IDiv div; } …to postpone certain decisions to product time

  26. C2 C3 Switch Also the binding decision can be postponed. C1 component C { provides … requires … contains … connects switch div.Fast in { c1.r } out { c2.p } onfalse, { c3.p } ontrue; } A switch can be statically evaluated or converted into run-time code.

  27. C1 C2 C2 Diversity Spreadsheet Parameters of subcomponents can be partially filled in… … and partially diverted to parameters of the compound component

  28. Optional Interface Parameters of subcomponents can be partially filled in… C component C { provides … requires IX r optional; } … and partially diverted to parameters of the compound component

  29. Sub-typing and evolution IA IB IA IB+ IC IB+  IB Koala subtypes interfacesbased on set inclusion offunctions C C’ C’  C Provide more... IB-  IB Koala reports an error if anon-existing interface isbound…! C C’ C’  C IA IB- IA IB IC Require less…???

  30. Reflection A component can observe whether interfaces are actually connected. C1 This allows components to adapt themselves to their environment automatically.

  31. My old digital camera… Dedicated Dedicated “Dedicated”

  32. The one I wanted to buy…

  33. The one I bought… All general purpose components!

  34. But be careful! One snag though… Can do 110 Volts and 220 Volts

  35. Self-configuring components Components specify howmany resources they require C1 C3 + C1 This can be summed and provided tothe component that delivers theresources at the product level

  36. Multi threading Problem: many (>100) activities but few (<10) threads Step 1: use message pumps created on virtual pump engines required through a diversity interface C3 Different thread, Synchronisation required CFireBrigade Step 2: bind these to pump engines (a real dispatcher loop) C2 Same thread, No synchronisation required C1

  37. Threading Analysis Attribute interfaces witha symbolic thread label a b b * a b c *

  38. Threading calculus a a * * a X X a b * a * X X a c * * a X O a d * a *

  39. Unification q must besame as p Thread labelsare unified p p q a b b Prepared forcall on differentthreads, but calledon the same thread a b c C is a new thread,and cannot beequal to q p p q

  40. Using Koala

  41. Under a common architecture... … executed in projects! Architecture Projects Products Subsystems … a set of subsystems is developed... …with which products can be built... Our approach…

  42. Domain vs application engineering Products Application Architecture Domain Subsystems

  43. Eindhoven Brugge Hamburg Briarcliff Southampton Wien Sunnyvale Knoxville Bangalore Singapore Yawnoc’s Law The structure of the organization should mirror the architecture of the software. Surprisingly(?), the development managers agree, but the architects protest… Source: David Weiss

  44. In-house versus 3rd party Source-code in MBytes

  45. Applications Applications OS OS Middleware A/V platform A/V platform Applications Middleware Drivers Leveraging & Architecture ?

  46. The End

More Related