© Bedir Tekinerdoğan Managing Variability in Product Line Scoping Using Design Space Models Bedir...
-
Upload
hanna-elswick -
Category
Documents
-
view
224 -
download
3
Transcript of © Bedir Tekinerdoğan Managing Variability in Product Line Scoping Using Design Space Models Bedir...
© 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
2© Bedir Tekinerdoğan
Contents
Reuse
Product Line Engineering
Product Line Scoping
Design Space Modeling
Conclusion
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!
4© 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
5© Bedir Tekinerdoğan
Example – Nokia Mobile Phones
6© 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
7© 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
?
8© 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
9© 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
10© 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
11© 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
12© 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
13© 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
14© 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.
Altern atives
2976alternatives!
15© 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
16© 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
17© 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
18© 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
19© Bedir Tekinerdoğan
Design Spaces
A multi-dimensional representation of a set of alternatives for a given design problem
20© 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
21© 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
InsuranceProduct = (InsObj Λ Cov Λ Paym Λ Cond Λ Prem Λ Payee)
2976alternatives!
22© 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
23© 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:
24© 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
25© 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
26© 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.
27© 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.