© Bedir Tekinerdoğan Managing Variability in Product Line Scoping Using Design Space Models Bedir Tekinerdoğan & Mehmet Akşit University of Twente Dept.

Slides:



Advertisements
Similar presentations
The GDSE Framework A Meta-Tool for Automated Design Space Exploration Tripti Saxena Graduate Student Vanderbilt University 1.
Advertisements

Domain Engineering Silvio Romero de Lemos Meira
Main issues: • Why is reuse so difficult • How to realize reuse
Chapter 22 Product Line Engineering Week 1 CIS 673.
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Sept-Dec w1d21 Third-Generation Information Architecture CMPT 455/826 - Week 1, Day 2 (based on R. Evernden & E. Evernden)
IBM Business Consulting Services © Copyright IBM Corporation 2006 Unified Process March 27, 2006 Chris Armstrong.
Software Reuse Building software from reusable components Objectives
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
NON-FUNCTIONAL PROPERTIES IN SOFTWARE PRODUCT LINES: A FRAMEWORK FOR DEVELOPING QUALITY-CENTRIC SOFTWARE PRODUCTS May Mahdi Noorian
Software Product Line Architectures (SPLA) Nipun Shah
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Software Architecture premaster course 1.  Israa Mosatafa Islam  Neveen Adel Mohamed  Omnia Ibrahim Ahmed  Dr Hany Ammar 2.
Domain-Specific Software Engineering Alex Adamec.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Computer Systems & Architecture Lesson Software Product Lines.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Katanosh Morovat.   This concept is a formal approach for identifying the rules that encapsulate the structure, constraint, and control of the operation.
Software Product Line Testing Part I : Introduction
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Verification and Validation.
Software Engineering Reuse.
Chapter 2 The process Process, Methods, and Tools
Software Product Families. Generative Programming Main text: Ian Sommerville, Software Engineering, 8 th edition, chapter 18 Additional readings: K. Czarnecki.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Chapter 8 Architecture Analysis. 8 – Architecture Analysis 8.1 Analysis Techniques 8.2 Quantitative Analysis  Performance Views  Performance.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
Embedded Systems Mohammad A. Gowayyed (c) 2012 Mohammad A. Gowayyed1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Classifying Software Architecture Design Methods Bedir Tekinerdoğan University of Twente Department of Computer Science Enschede, The Netherlands e:mail.
Nipissing University, North Bay, Ontario, Canada 1 Building Reusable Components with Service-Oriented -IBM Eclipse Innovation Grant -IBM Eclipse Innovation.
REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
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.
Computer Science 101 Database Concepts. Database Collection of related data Models real world “universe” Reflects changes Specific purposes and audience.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
April 22, 2002VMASC Board Meeting Issues in Enhancing Simulation Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Jan. 29, 2002Grand Challenges in Simulation Issues in Enhancing Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
Component Based SW Development and Domain Engineering 1 Component Based Software Development and Domain Engineering.
HRL © 2009 IBM Corporation Model-Driven Product-Lines for Embedded Software and for Supply-Chain Companies Tali Yatzkar-Haham Julia Rubin,
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
EMEA Beat Schwegler Architect Microsoft EMEA HQ Ingo Rammer Principal Consultant thinktecture
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.
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
Lecture 21: Component-Based Software Engineering
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Engineering, COMP201 Slide 1 Software Requirements BY M D ACHARYA Dept of Computer Science.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Sheet 1 Forum on Specification and Design Languages (FDL), Frankfurt, September 2003 UML to XML-Schema Transformation: a Case Study in Managing Alternative.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Component Based Software Engineering
Software Reuse Objectives
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software Architecture in Practice
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Component Based Software Engineering (CBSE)
Presentation transcript:

© 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 |

© 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) 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.