Download presentation
Presentation is loading. Please wait.
Published byHanna Elswick Modified over 9 years ago
1
© Bedir Tekinerdoğan 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
2
© Bedir Tekinerdoğan 2 Contents Reuse Product Line Engineering Product Line Scoping Design Space Modeling Conclusion
3
© Bedir Tekinerdoğan 3 Development from scratch… 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 Life Insurance System Architecture Design Design Implementation Testing Requirements Analysis Health Insurance System Car Insurance System House Insurance System Travel Insurance System This takes too much time! costs too much money! I want it faster and cheaper!
4
© Bedir Tekinerdoğan 4 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
5
© Bedir Tekinerdoğan 5 Example – Nokia Mobile Phones
6
© Bedir Tekinerdoğan 6 Development with reuse 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 Insurance Components Component-Based Software Engineering Product
7
© Bedir Tekinerdoğan 7 But where did the class/component library come from?! How where these components planned for this application?! Source of reusable components… Insurance Components ?
8
© Bedir Tekinerdoğan 8 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 Knowledg e (Reusable) Domain Knowledge Domain Engineering
9
© Bedir Tekinerdoğan 9 Example - Domain Model for Insurance Systems
10
© Bedir Tekinerdoğan 10 Domain Implementation Generate reusable assets derived from domain architecture and catalog in component library Domain Implementation Domain Model Reusable Assets... Insurance Assets
11
© Bedir Tekinerdoğan 11 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 Application 2 Application Engineering (Reusable) Domain Knowledge generate Application 1
12
© Bedir Tekinerdoğan 12 Domain Engineering vs. Application Engineering How to apply it for building many applications? –Application Engineering How to make domain knowledge reusable? –Domain Engineering Relevant Domain Knowledg e (Reusable) Domain Knowledge Domain Engineering Application n Application 2 Application 1 Application Engineering
13
© Bedir Tekinerdoğan 13 DOMAIN ENGINEERING Two-Life Cycle Model Domain Analysis Domain Model Domain Design Domain Software Architecture Domain Implementation Application Engineering APPLICATION ENGINEERING New Requirements Application Performance Specification Reusable Assets Analysis Based on Domain Model System Software Architecture Design Application Software Architecture Application Development
14
© Bedir Tekinerdoğan 14 Product Alternatives Domain Model 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 2976 alternatives!
15
© Bedir Tekinerdoğan 15 Problem Statement: What are the product alternatives? Alternative What are the alternatives? Product Line Scoping
16
© Bedir Tekinerdoğan 16 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
17
© Bedir Tekinerdoğan 17 Product Implementation alternatives Alternative Implementations Domain Model
18
© Bedir Tekinerdoğan 18 Problem Statement: What are the implementation alternatives? Alternative What are the alternatives? Product Implementation Scoping
19
© Bedir Tekinerdoğan 19 Design Spaces A multi-dimensional representation of a set of alternatives for a given design problem
20
© Bedir Tekinerdoğan 20 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
21
© Bedir Tekinerdoğan 21 Represent Design Space InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) 2976 alternatives!
22
© Bedir Tekinerdoğan 22 Reducing Design Space
23
© Bedir Tekinerdoğan 23 Reducing Design Space 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. Define Constraints:
24
© Bedir Tekinerdoğan 24 Reducing Design Space InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) HealthInsuranceProduct :: Select from InsuranceProduct Where Select/Eliminate subspaces
25
© Bedir Tekinerdoğan 25 Map to implementations For example object-oriented implementation Mapping is a model transformation InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) Object = (CL ; OP; AT) 512000 alternatives ObjectInsurance :: InsuranceProduct Object Design Space
26
© Bedir Tekinerdoğan 26 Rumi Launcher: Open other tools from here Model Builder Tool: A model is defined as a set of concepts, relations and constraints. Feature Definer Tool: For defining distinctive features of concepts 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.
27
© Bedir Tekinerdoğan 27 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 Application Engineering 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 The tool Rumi implements design space modeling techniques.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.