
e2be103468ba252d2541bf0f12189142.ppt
- Количество слайдов: 28
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 © Bedir Tekinerdoğan
Contents n Reuse n Product Line Engineering n Product Line Scoping n Design Space Modeling n Conclusion © Bedir Tekinerdoğan 2
Development from scratch… Car Insurance System Health Insurance System Life Insurance System House Insurance System This takes too much time! Architecture Design costs too much money! Design I want it faster and Implementation Testing cheaper! Travel Insurance System Requirements Analysis I want Car Insurance System © Bedir Tekinerdoğan I want Health Insurance System I want Life Insurance System I want House Insurance System I want Tarvel Insurance System 3
Cause of the problem? n n n Lack of process? Wrong process Require higher CMM level? Adopt agile? What? ! © Bedir Tekinerdoğan 4
Nokia Facts n n n sells phones in more than 130 countries support 58 languages (Japanese, Arabic, Hebrew, Chinese, etc. ) support multiple protocols q n n 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 © Bedir Tekinerdoğan 5
Example – Nokia Mobile Phones © Bedir Tekinerdoğan 6
Development with reuse Product Component-Based Software Engineering Insurance Components I want Car Insurance System © Bedir Tekinerdoğan I want Health Insurance System I want Life Insurance System I want House Insurance System I want Travel Insurance System 7
Source of reusable components… But where did the class/component library come from? ! How where these components planned for this application? ! ? Insurance Components © Bedir Tekinerdoğan 8
Domain Engineering - Development for reuse Domain Engineering: n the process of analysis, n specification and n implementation of software assets n in a domain which are used in n the development of multiple software products. Relevant Domain Knowledge © Bedir Tekinerdoğan Domain Engineering (Reusable) Domain Knowledge 9
Example - Domain Model for Insurance Systems © Bedir Tekinerdoğan 10
Domain Implementation n Generate reusable assets derived from domain architecture and catalog in component library Domain Model Reusable Assets. . . Domain Implementation Insurance Assets © Bedir Tekinerdoğan 11
Application Engineering n n n 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 © Bedir Tekinerdoğan generate Application 2 Application 1 12
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 © Bedir Tekinerdoğan Domain Engineering (Reusable) Domain Knowledge Application n Engineering Application 2 Application 1 13
Two-Life Cycle Model DOMAIN ENGINEERING Domain Analysis New Requirements Domain Model Analysis Based on Domain Model Domain Design Application Performance Specification Domain Software Architecture System Software Architecture Design Domain Implementation Reusable Assets Application Software Architecture Application Development Application Engineering APPLICATION ENGINEERING © Bedir Tekinerdoğan 14
Product Alternatives Domain Model 2976 alternatives! 1. health insurance that covers illness with own risk and direct premium Alternatives 2. life insurance with service and periodical payment 3. Car insurance with coverage for damage, own risk and periodical payment etc. © Bedir Tekinerdoğan 15
Problem Statement: What are the product alternatives? Alternative Alternative What are the Alternative alternatives? Alternative Alternative Product Line Scoping © Bedir Tekinerdoğan 16
Product Line Scoping Risks n Scope is too large q q q n product members might vary too much more difficult to define commonality and variability waste of resources Scope is too small q q core assets might not be built in a generic enough fashion to accommodate future growth product line will stagnate and no additional benefits © Bedir Tekinerdoğan 17
Product Implementation alternatives Domain Model Alternative Implementations © Bedir Tekinerdoğan 18
Problem Statement: What are the implementation alternatives? Alternative Alternative What are the Alternative alternatives? Alternative Alternative Product Implementation Scoping © Bedir Tekinerdoğan 19
Design Spaces n n n A multi-dimensional representation of a set of alternatives for a given design problem © Bedir Tekinerdoğan 20
Process for Scoping Design Space n n n Represent Design Spaces Define constraints of alternatives Unfolding design space Reduce design space using selection and elimination Map design space to implementation © Bedir Tekinerdoğan 21
Represent Design Space 2976 alternatives! Payment Conditions Coverage Corporation Premium Realty Person Moveable Prop. Insured. Object Payee Insurance. Product = (Ins. Obj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) © Bedir Tekinerdoğan 22
Reducing Design Space © Bedir Tekinerdoğan 23
Reducing Design Space n Define Constraints: 1. Insured. Object. Person mutex-with Coverage. Damage If the ensured object is a person the insurance product cannot include coverage of damage (for physical objects) 2. Coverage. Loss requires Insured. Object. Moveable. Property If the insurance product includes coverage for loss then the insured object can only be a moveable property 3. Coverage. Illness mutex Insured. Object. Corporation If the insurance product includes coverage for illness then the insured object cannot be a person. 4. Insured. Object. Corporation requires Payee. Corporation If the insured object is a corporation the claimer should also be a corporation. © Bedir Tekinerdoğan 24
Reducing Design Space n Select/Eliminate subspaces Insurance. Product = (Ins. Obj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) Health. Insurance. Product : : Select from Insurance. Product Where <Insbj. Person and (Cov. Illness or Cov. Life)> © Bedir Tekinerdoğan 25
Map to implementations n n For example object-oriented implementation Mapping is a model transformation Insurance. Product = (Ins. Obj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) Object = (CL ; OP; AT) 512000 alternatives Design Space Object. Insurance : : Insurance. Product Object © Bedir Tekinerdoğan 26
Rumi Launcher: Open other tools from here Constraint. Space Composer: Design Definer Tool: Alternative Generator Tool: Model Builder models to Map the constraints For Generate alternatives after among definingdefined models, Tool: the Feature Definertheirfeatures. and Tool: object constraints, concepts and model to depict the design spaces have the set of implementation For defining distinctive features A model is defined been defined. Select and set the alternatives, the of conceptsset of concepts, as aappropriate alternatives. adaptability properties. relations and constraints. © Bedir Tekinerdoğan 27
Conclusion n n 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: q q n n n 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. © Bedir Tekinerdoğan 28
e2be103468ba252d2541bf0f12189142.ppt