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
Contents • Reuse • Product Line Engineering • Product Line Scoping • Design Space Modeling • Conclusion
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
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
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
Source of reusable components… But where did the class/component library come from?! How where these components planned for this application?! ? Insurance Components
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
Domain Implementation • Generate reusable assets derived from domain architecture and catalog in component library Domain Implementation Reusable Assets... Domain Model Insurance Assets
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
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
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
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. Altern atives Product Alternatives Domain Model 2976 alternatives!
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
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
Alternative Implementations Product Implementation alternatives Domain Model
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
Design Spaces • A multi-dimensional representation • of a set of alternatives • for a given design problem
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
InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) Represent Design Space 2976 alternatives!
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.
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)
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)
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
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.