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 about 1 year 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 Eduardo Santana de Almeida
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.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Software Reuse l Building software from reusable components l Objectives To.
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 -
NON-FUNCTIONAL PROPERTIES IN SOFTWARE PRODUCT LINES: A FRAMEWORK FOR DEVELOPING QUALITY-CENTRIC SOFTWARE PRODUCTS May Mahdi Noorian
Jan. 29, 2002Grand Challenges in Simulation Issues in Enhancing Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
April 22, 2002VMASC Board Meeting Issues in Enhancing Simulation Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
S/W Project Management Software Process Models. Objectives To understand Software process and process models, including the main characteristics of.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Chapter 22 Product Line Engineering Week 1 CIS 673.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda.
Software Product Line Architectures (SPLA) Nipun Shah
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Software Reusability Main issues: Why is reuse so difficult How to realize reuse.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Engineering Lecture 21: Component-Based Software Engineering.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Formal Ontology and Information Systems Nicola Guarino (FOIS’98) Presenter: Yihong Ding CS652 Spring 2004.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
CPSC 871 John D. McGregor Module 6 Session 2 Validation and Verification.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Chapter 3 Software Processes.
1 SWE Introduction to Software Engineering Lecture 20 – Architectural Design (Chapter 11)
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
© 2017 SlidePlayer.com Inc. All rights reserved.