1 / 28

Managing Variability in Product Line Scoping Using Design Space Models

Managing Variability in Product Line Scoping Using Design Space Models. Bedir Tekinerdo ğ an & Mehmet Ak ş it University of Twente Dept. of Computer Science Software Engineering TRESE, Software Engineering (bedir | aksit)@cs.utwente.nl. Contents. Reuse Product Line Engineering

kacy
Download Presentation

Managing Variability in Product Line Scoping Using Design Space Models

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 Variabilityin Product Line ScopingUsing Design Space Models Bedir Tekinerdoğan & Mehmet Akşit University of Twente Dept. of Computer Science Software Engineering TRESE, Software Engineering (bedir | aksit)@cs.utwente.nl

  2. Contents • Reuse • Product Line Engineering • Product Line Scoping • Design Space Modeling • Conclusion

  3. This takes too much time! costs too much money! I want it faster and cheaper! Requirements Analysis Architecture Design Design Implementation Testing I want Car Insurance System I want Health Insurance System I want Life Insurance System I want House Insurance System I want Tarvel Insurance System Development from scratch… Car Insurance System Health Insurance System Life Insurance System House Insurance System Travel Insurance System

  4. Cause of the problem? • Lack of process? • Wrong process • Require higher CMM level? • Adopt agile? • What?!

  5. Nokia Facts • sells phones in more than 130 countries • support 58 languages (Japanese, Arabic, Hebrew, Chinese, etc. ) • support multiple protocols • CDMA, TDMA, AMPS, GSM, GPRS, … • Hardware is constantly changing and software is constantly expanding. • Different UI support From Slide from Anders Heie, Nokia Mobile Phones

  6. Example – Nokia Mobile Phones

  7. Product Component-Based Software Engineering Product Product Insurance Components I want Car Insurance System I want Health Insurance System I want Life Insurance System I want House Insurance System I want Travel Insurance System Development with reuse

  8. Source of reusable components… But where did the class/component library come from?! How where these components planned for this application?! ? Insurance Components

  9. Domain Engineering (Reusable) Domain Knowledge Domain Engineering - Development for reuse Domain Engineering: • the process of analysis, • specification and • implementation of software assets • in a domain which are used in • the development of multiple software products. Relevant Domain Knowledge

  10. Example - Domain Model for Insurance Systems

  11. Domain Implementation • Generate reusable assets derived from domain architecture and catalog in component library Domain Implementation Reusable Assets... Domain Model Insurance Assets

  12. Application Engineering • The process of developing software products from software assets created by a domain engineering process. • Focus on a single system… • but development is basically composition Application n (Reusable) Domain Knowledge Application 2 generate Application 1

  13. Domain Engineering Application Engineering Application n (Reusable) Domain Knowledge Application 2 Application 1 Domain Engineering vs. Application Engineering • How to make domain knowledge reusable? • Domain Engineering • How to apply it for building many applications? • Application Engineering Relevant Domain Knowledge

  14. Domain Model Domain Software Architecture Reusable Assets Domain Design Domain Implementation Application Engineering Application Engineering APPLICATION ENGINEERING New Requirements Application Performance Specification Application Software Architecture Analysis Based on Domain Model System Software Architecture Design Application Development Two-Life Cycle Model DOMAIN ENGINEERING Domain Analysis

  15. 1. health insurance that covers illness with own risk and direct premium 2. life insurance with service and periodical payment 3. Car insurance with coverage for damage, own risk and periodical payment etc. Alternatives Product Alternatives Domain Model 2976 alternatives!

  16. What are thealternatives? Problem Statement:What are the product alternatives? Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Product Line Scoping

  17. Product Line Scoping Risks • Scope is too large • product members might vary too much • more difficult to define commonality and variability • waste of resources • Scope is too small • core assets might not be built in a generic enough fashion to accommodate future growth • product line will stagnate and no additional benefits

  18. Alternative Implementations Product Implementation alternatives Domain Model

  19. What are thealternatives? Problem Statement:What are the implementation alternatives? Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Alternative Product Implementation Scoping

  20. Design Spaces • A multi-dimensional representation • of a set of alternatives • for a given design problem

  21. Process for Scoping Design Space • Represent Design Spaces • Define constraints of alternatives • Unfolding design space • Reduce design space using selection and elimination • Map design space to implementation

  22. Payment Coverage Conditions Corporation Realty Person Moveable Prop. Premium InsuredObject Payee InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) Represent Design Space 2976 alternatives!

  23. Reducing Design Space

  24. Reducing Design Space • Define Constraints: 1. InsuredObject.Person mutex-with Coverage.Damage If the ensured object is a person then the insurance product cannot include coverage of damage (for physical objects) 2. Coverage.Loss requires InsuredObject.MoveableProperty If the insurance product includes coverage for loss then the insured object can only be a moveable property 3. Coverage.Illness mutex InsuredObject.Corporation If the insurance product includes coverage for illness then the insured object cannot be a person. 4. InsuredObject.Corporation requires Payee.Corporation If the insured object is a corporation then the claimer should also be a corporation.

  25. HealthInsuranceProduct :: Select from InsuranceProduct Where <Insbj.Person and (Cov.Illness or Cov.Life)> Reducing Design Space • Select/Eliminate subspaces InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee)

  26. Design Space ObjectInsurance :: InsuranceProduct  Object Map to implementations • For example object-oriented implementation • Mapping is a model transformation InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) 512000 alternatives Object = (CL ; OP; AT)

  27. Constraint Definer Tool: For defining constraints among concepts and features. Design Space Composer: Map the defined models to the object model to depict the set of implementation alternatives, and set the adaptability properties. Alternative Generator Tool: Generate alternatives after models, their constraints, and the design spaces have been defined. Select the appropriate alternatives. Model Builder Tool: A model is defined as a set of concepts, relations and constraints. Feature Definer Tool: For defining distinctive features of concepts Launcher: Open other tools from here Rumi

  28. Conclusion • Quality is not improved how good the process is, but firstly what kind of process you have • Introducing a secondary lifecycle process (domain engineering) supports quality: • time-to-market • Reuse • Product Line Engineering consists of Domain Engineering and ApplicationEngineering • One of the most important issues in PLE is Product Line Scoping • Current Product Line Scoping Techniques fail to depict the set of alternatives explicitly • We have applied design space modeling to represent design spaces for Product Alternatives and Product Implementation Alternatives • Thetool Rumi implements design space modeling techniques.

More Related