We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byHanna Elswick
Modified over 2 years ago
© 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
© Bedir Tekinerdoğan 2 Contents Reuse Product Line Engineering Product Line Scoping Design Space Modeling Conclusion
© 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!
© 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
© Bedir Tekinerdoğan 5 Example – Nokia Mobile Phones
© 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
© 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 ?
© 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
© Bedir Tekinerdoğan 9 Example - Domain Model for Insurance Systems
© 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
© 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
© 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
© 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
© 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!
© Bedir Tekinerdoğan 15 Problem Statement: What are the product alternatives? Alternative What are the alternatives? Product Line Scoping
© 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
© Bedir Tekinerdoğan 17 Product Implementation alternatives Alternative Implementations Domain Model
© Bedir Tekinerdoğan 18 Problem Statement: What are the implementation alternatives? Alternative What are the alternatives? Product Implementation Scoping
© Bedir Tekinerdoğan 19 Design Spaces A multi-dimensional representation of a set of alternatives for a given design problem
© 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
© Bedir Tekinerdoğan 21 Represent Design Space InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) 2976 alternatives!
© Bedir Tekinerdoğan 22 Reducing Design Space
© 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:
© Bedir Tekinerdoğan 24 Reducing Design Space InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee) HealthInsuranceProduct :: Select from InsuranceProduct Where Select/Eliminate subspaces
© 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
© 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.
© 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.
Domain-Specific Software Engineering Alex Adamec.
Classifying Software Architecture Design Methods Bedir Tekinerdoğan University of Twente Department of Computer Science Enschede, The Netherlands e:mail.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Domain Engineering Silvio Romero de Lemos Meira
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Reuse Building software from reusable components Objectives
Component Based SW Development and Domain Engineering 1 Component Based Software Development and Domain Engineering.
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2004 Session 5 Lecture # 4 – October 5, 2004.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
The GDSE Framework A Meta-Tool for Automated Design Space Exploration Tripti Saxena Graduate Student Vanderbilt University 1.
Software Architecture premaster course 1. Israa Mosatafa Islam Neveen Adel Mohamed Omnia Ibrahim Ahmed Dr Hany Ammar 2.
Introduction to Early Aspects Bedir Tekinerdogan Billkent University, Department of Computer Engineering Bilkent, Turkey, Ankara e:mail -
© 2017 SlidePlayer.com Inc. All rights reserved.