Managing Variability in Product Line Scoping Using Design Space Models

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

description

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. Contents. Reuse Product Line Engineering - PowerPoint PPT Presentation

Transcript of Managing Variability in Product Line Scoping Using Design Space Models

Page 1: Managing Variability in Product Line Scoping Using Design Space Models

© Bedir Tekinerdoğan

Managing Variabilityin Product Line ScopingUsing 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

Page 2: Managing Variability in Product Line Scoping Using Design Space Models

2© Bedir Tekinerdoğan

Contents

Reuse

Product Line Engineering

Product Line Scoping

Design Space Modeling

Conclusion

Page 3: Managing Variability in Product Line Scoping Using Design Space Models

3© Bedir Tekinerdoğan

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!

Page 4: Managing Variability in Product Line Scoping Using Design Space Models

4© Bedir Tekinerdoğan

Cause of the problem?

Lack of process? Wrong process Require higher CMM level? Adopt agile? What?!

Page 5: Managing Variability in Product Line Scoping Using Design Space Models

5© Bedir Tekinerdoğan

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

Page 6: Managing Variability in Product Line Scoping Using Design Space Models

6© Bedir Tekinerdoğan

Example – Nokia Mobile Phones

Page 7: Managing Variability in Product Line Scoping Using Design Space Models

7© Bedir Tekinerdoğan

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-BasedSoftware Engineering

ProductProduct

Product

Page 8: Managing Variability in Product Line Scoping Using Design Space Models

8© Bedir Tekinerdoğan

But where did the class/component

library come from?!

How where these components

planned for this application?!

Source of reusable components…

Insurance Components

?

Page 9: Managing Variability in Product Line Scoping Using Design Space Models

9© Bedir Tekinerdoğan

Domain Engineering - Development for reuseDomain 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

Knowledge

Relevant Domain

Knowledge

(Reusable)Domain

Knowledge

DomainEngineering

Page 10: Managing Variability in Product Line Scoping Using Design Space Models

10© Bedir Tekinerdoğan

Example - Domain Model for Insurance Systems

Insurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

Page 11: Managing Variability in Product Line Scoping Using Design Space Models

11© Bedir Tekinerdoğan

Domain Implementation

Generate reusable assets derived from domain architecture and catalog in component library

Domain ImplementationDomain Model

Reusable Assets...

Insurance Assets

Insurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

Page 12: Managing Variability in Product Line Scoping Using Design Space Models

12© Bedir Tekinerdoğan

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

Knowledgegenerate

Application 1

Page 13: Managing Variability in Product Line Scoping Using Design Space Models

13© Bedir Tekinerdoğan

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

Knowledge

Relevant Domain

Knowledge

(Reusable)Domain

Knowledge

DomainEngineering

Application n

Application 2

Application 1

ApplicationEngineering

Page 14: Managing Variability in Product Line Scoping Using Design Space Models

14© Bedir Tekinerdoğan

DOMAIN ENGINEERING

Two-Life Cycle Model

Domain Analysis

Domain Model

Domain Design

DomainSoftware

Architecture

Domain Implementation

Application EngineeringApplication Engineering

APPLICATION ENGINEERING

New Requirements

ApplicationPerformanceSpecification

ReusableAssets

AnalysisBased on

Domain Model

SystemSoftware

ArchitectureDesign

ApplicationSoftware

Architecture

ApplicationDevelopment

Page 15: Managing Variability in Product Line Scoping Using Design Space Models

15© Bedir Tekinerdoğan

Product AlternativesInsurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

DomainModel

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.

Alternatives

2976alternatives!

Page 16: Managing Variability in Product Line Scoping Using Design Space Models

16© Bedir Tekinerdoğan

Problem Statement:What are the product alternatives?

Alternative

Alternative

Alternative

AlternativeAlternative

AlternativeAlternative

Alternative

Alternative

AlternativeAlternative

AlternativeAlternative

AlternativeAlternative

What are thealternatives?

Insurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

Product Line Scoping

Page 17: Managing Variability in Product Line Scoping Using Design Space Models

17© Bedir Tekinerdoğan

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

Page 18: Managing Variability in Product Line Scoping Using Design Space Models

18© Bedir Tekinerdoğan

Product Implementation alternatives Insurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

insuredObject()coverage()payment()conditions()premium()payee()....

InsuranceProduct

coverage()payment()conditions()premium()payee()....

InsuranceProduct

coverage()payment()conditions()premium()payee()....

LifeInsurance

coverage()payment()conditions()premium()payee()....

CarInsurance

coverage()payment()conditions()premium()payee()....

TravelInsurance

insuredObject()coverage()payment()conditions()premium()payee()....

InsuranceProduct

InsuredObject

Coverage

Payment

Conditions

Premium

Payee

AlternativeImplementations

DomainModel

Page 19: Managing Variability in Product Line Scoping Using Design Space Models

19© Bedir Tekinerdoğan

Problem Statement:What are the implementation alternatives?

Alternative

Alternative

Alternative

AlternativeAlternative

AlternativeAlternative

Alternative

Alternative

AlternativeAlternative

AlternativeAlternative

AlternativeAlternative

What are thealternatives?

Insurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

Product Implementation Scoping

Page 20: Managing Variability in Product Line Scoping Using Design Space Models

20© Bedir Tekinerdoğan

Design Spaces

A multi-dimensional representation of a set of alternatives for a given design problem

Page 21: Managing Variability in Product Line Scoping Using Design Space Models

21© Bedir Tekinerdoğan

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

Page 22: Managing Variability in Product Line Scoping Using Design Space Models

22© Bedir Tekinerdoğan

Represent Design SpaceInsurance Product

Insured Object Coverage PremiumConditionsPayment

Person

Corporation

MovableProperty

Realty

Service

Amount

Own Risk

Acceptance Exception

Payee

Person Corporation

Direct Periodical

Legend:

optional feature

alternative featuremandatory feature

or-feature

Illness

Life

Loss

Unemployment

Damage

2976alternatives!

InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee)

InsuredObject

Corporation Realty Person Moveable Prop.

Coverage

Payment

Conditions

Premium

Payee

Page 23: Managing Variability in Product Line Scoping Using Design Space Models

23© Bedir Tekinerdoğan

Reducing Design Space

GenerateAlternatives

Restrict Design Space

Heuristics-BasedSelection and

Elimination

Selection ofSub-Spaces

#alternativesin design space

< max?

Eliminationof Sub-Spaces

no

yes

Page 24: Managing Variability in Product Line Scoping Using Design Space Models

24© Bedir Tekinerdoğan

Reducing Design Space

1. InsuredObject.Person mutex-with Coverage.DamageIf the ensured object is a person then the insurance product cannot include coverage ofdamage (for physical objects)

2. Coverage.Loss requires InsuredObject.MoveablePropertyIf the insurance product includes coverage for loss then the insured object can only be amoveable property

3. Coverage.Illness mutex InsuredObject.CorporationIf the insurance product includes coverage for illness then the insured object cannot be a person.

4. InsuredObject.Corporation requires Payee.CorporationIf the insured object is a corporation then the claimer should also be a corporation.

Define Constraints:

Page 25: Managing Variability in Product Line Scoping Using Design Space Models

25© Bedir Tekinerdoğan

Reducing Design Space

InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee)

HealthInsuranceProduct ::

Select from InsuranceProductWhere <Insbj.Person and (Cov.Illness or Cov.Life)>

Select/Eliminate subspaces

Page 26: Managing Variability in Product Line Scoping Using Design Space Models

26© Bedir Tekinerdoğan

Map to implementations

For example object-oriented implementation Mapping is a model transformation

InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee)

Object = (CL ; OP; AT) 512000alternatives

ObjectInsurance :: InsuranceProduct Object

Design Space

Page 27: Managing Variability in Product Line Scoping Using Design Space Models

27© Bedir Tekinerdoğan

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.

Page 28: Managing Variability in Product Line Scoping Using Design Space Models

28© Bedir Tekinerdoğan

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.