1 / 24

Building Product Populations with Software Components

Building Product Populations with Software Components Rob van Ommering Philips Research May 23 rd , 2002 Contents P S P S P S A I Product Populations Software Components Building ,, with ,, Complexity 1965 1979 1 kB Moore’s Law 2000 1990 2 MB 64 kB

Ava
Download Presentation

Building Product Populations with Software Components

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. Building Product Populationswith Software Components Rob van Ommering Philips Research May 23rd, 2002

  2. Contents P S P S P S A I Product Populations Software Components Building ,, with ,,

  3. Complexity 1965 1979 1 kB Moore’s Law 2000 1990 2 MB 64 kB

  4. A Television Product Family Price Region Other axes of diversity:image, sound, data processing,user interface, connectivity, … Output Device

  5. Other Product Families STB VCR DVD Audio

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

  7. Composition Teletext EPG UIMS VideoProcessing OutputDriver Tuner AudioProcessing Amplifier Hard disk VCR DVD

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

  9. P S P S P S A I Product Populations Software Components Building ,, with ,,

  10. The Koala Component Model CC C1 C3 C2 Koala is: - a component Model - with an ADL - to build populations of - resource constrained products

  11. A Product Line for Bears  …

  12. Provides Interfaces CTuner CTuner’ Looks like: CSearchTuner C Microsoft COM tun: ITuner tun: ITuner tun2: ITuner2 Evolution Diversity tun: ITuner stun: ISearchTuner

  13. Requires Interfaces All context dependencies are made explicit……and are bindable by a third party CTuner CTuner Looks like: C C8720Driver Darwin …so they can be bound differently in another product

  14. ‘Connectors’ C1 C2 C2 C2 Looks likeVisual Basic Looks likeHardware! Direct Switch Glue Module C1 C1 r r r m p p p1 p2 C2

  15. Compound Components C2 C2 The compositionprocess isrecursive… C1 Component instancesare encapsulated. Component typesare not (necessarily)(see later).

  16. Diversity Interfaces and Partial Evaluation C2 C2 Diversity interfacesare outgoinginterfaces wichparameterize thecomponent. C1 Partial evaluation is usedto create resource efficientconfigurations.

  17. P S P S P S A I Product Populations Software Components Building ,, with ,,

  18. A Real-Life Example

  19. 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 Step 2: bind these to pump engines (a real dispatcher loop) CFireBrigade C2 Same thread, No synchronisation required C1

  20. Evolution IA IB IA IB+ IC Koala subtypes interfaces based on set inclusion of functions IB+ IB C C’ C’  C Provide more... Koala reports an error if a non-existing interface is bound…! IB- IB C C’ C’  C IA IB- IA IB IC Require less…???

  21. Documentation Separate component information from interface informationSeparate component external behaviour from component implementationUse does instead of shall.

  22. Configuration Management Internal diversity C2 Structural diversity C3 C2 Distinguish between: • versions • temporary variants • permanent variants of components. We use our CM system for: • versions • temporary variants But we use the component model for: • permanent variants

  23. Concluding Remarks Product populations arise from ‘convergence’ of products, and are becoming increasingly important. Product populations require a balance between classicalproduct family development and a COTS-like approach. Introducing product populations also impacts thesoftware process and organization. We currently have 100-200 software engineers in 10 sites deploying our approach. But we still have a long way to go…

  24. Thank you!

More Related