Representing Variability in Product Lines: A Survey of Modeling and - - PowerPoint PPT Presentation
Representing Variability in Product Lines: A Survey of Modeling and - - PowerPoint PPT Presentation
Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques Fabian Benduhn FOSD Meeting 2014 May 6, 2014 Background SPL used for safety-critical and mission-critical systems High degree of reliability
Background
◮ SPL used for safety-critical and mission-critical systems ◮ High degree of reliability required ◮ Adaption of verification techniques: growing research area ◮ Requires modeling and specification techniques ◮ Model: formal description of behavior ◮ Specification: formal description of properties
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 2
Problem
◮ Modeling and specification techniques proposed in diverse
lines of research
◮ Hard to compare, hard to keep track ◮ Representation of variability?
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 3
Feature-Oriented Software Development
Feature Model Domain Artifacts Configuration Product Generation Products
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 4
Feature-Oriented Software Development
Feature Model Domain Artifacts Configuration Product Generation Products
Mapping
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 4
Representation of Variability: Implementation
Annotation-Based Techniques:
◮ Single code base ◮ Annotated with mapping to features ◮ Product generation: remove code of undesired features
Composition-Based Techniques:
◮ Features encapsulated into modules ◮ Product generation: composition of feature modules
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 5
Example: Annotation-Based (Preprocessor)
class Transaction {
{Base, Locking}
void run(){ //if[Locking] lock(); //end[Locking] while(!operations.isEmpty)operations.pop().operate(); //if[Locking] unlock(); //end[Locking] }}
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 6
Example: Composition-Based (FOP)
class Transaction {
{Base}
void run(){ while(!operations.isEmpty)operations.pop().operate(); } }
- class Transaction {
{Locking}
void run(){ lock();
- riginal();
unlock();}}
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 7
Example: Composition-Based (FOP)
class Transaction {
{Base}
void run(){ while(!operations.isEmpty)operations.pop().operate(); } }
- class Transaction {
{Locking}
void run(){ lock();
- riginal();
unlock();}}
=
class Transaction {
{Base, Locking}
void run(){ lock(); while(!operations.isEmpty)operations.pop().operate(); unlock();}}
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 7
Contributions
◮ General taxonomy of product-line representations
→ implementation, specification, models, documentation, ...
◮ Survey modeling and specification techniques for software
product lines
◮ Classification of modeling and specification techniques
according to taxonomy
◮ Identify possible directions for future research
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 8
Taxonomy of Product-Line Representations
◮ Product-Line Representation: Set of artifacts representing
characteristics such as behavior or properties of a product line
◮ Mapping between domain artifacts and products
Product-Line Representation Variability-Aware Annotation-Based Feature-Based Family-Based Composition-Based Feature-Based Family-Based Product-Based Commonality-Based Family-Wide Domain-Independent
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 9
Variability-Aware Representation
Single Module Annotated Parts Products Composition-Based Representation Separate Modules Annotation-Based Representation ... ...
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 10
Annotation-Based: Featured Transition Systems
◮ Mapping: Transitions annotated with feature expressions
undef lockedDB running ready committed done aborted unlockedDB unlockedDB rescheduled
¬Locking Base Base ¬Locking ¬Locking Locking L
- c
k i n g L
- c
k i n g Locking L
- c
k i n g L
- c
k i n g R e s c h e d u l i n g Rescheduling Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 11
Composition-Based: Design by Contract for FOP
class Transaction {
{Base}
Queue operations; /∗@ ensures operations.isEmpty(); @∗/ void run(){...}}
- class Transaction {
{Locking}
/∗@ ensures Database.isLocked == false; @∗/ void run(){...}}
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 12
Composition-Based: Design by Contract for FOP
class Transaction {
{Base}
Queue operations; /∗@ ensures operations.isEmpty(); @∗/ void run(){...}}
- class Transaction {
{Locking}
/∗@ ensures Database.isLocked == false; @∗/ void run(){...}}
=
class Transaction {
{Base, Locking}
/∗@ ensures operations.isEmpty() && Database.isLocked == false; @∗/ void run(){ ...}
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 12
Feature-Based Representation
Products Feature-Composition-Based Representation Separate Modules Products with certain Feature ...
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 13
Family-Based Representation
Products Family-Composition-Based Representation + + Separate Modules Arbitrary Sets ...
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 14
Product-Based Representation
Product-Based Representation Products Separate Modules Single Products ...
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 15
Commonality-Based Representation
Complete Representation Product Line Commonality-based Representation All Products
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 16
Family-Wide Representation
Products Family-Wide Representation All Products Commonalities
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 17
Domain-Independent Representation
Commonalities Product Line
Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice Cream Ice CreamProduct Line Domain-Independent Representation All Products Several Product Lines
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 18
Taxonomy Overview
#Modules Mapping Source Mapping Target Product-based
- module
single product Commonality-based
- representation
- Family-wide
- representation
all products of single product line Domain-Independent
- representation
all products of several product lines Variability-aware
- set of products, (not single, not same)
Composition-based multiple module
- Annotation-based
single parts of modules
- Feature-based
- all products with certain feature
Family-based
- arbitrary sets of products
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 19
Annotation-Based Modeling Techniques
Formalism/Language Feature-Based Family-Based Formalisms SHVM
- FTS
- Feature Petri Nets
- FTS
- A-FTS
- FTA
- GEMTS
- MTS
- Modal I/O-automata
- Languages
FLan
- fSMV
- Rebeca
- SDVA
- fPromela
- PL-CCS
- Fabian Benduhn
Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 20
Composition-Based Modeling Techniques
Formalism/Language Feature-Based Family-Based Transition-Based Formalisms Variable IO-Automata
- Transition Systems/TS+
- Transition Systems
- Modular Transition Systems
- Languages
Alloy
- ASM
- Event-B
- State Charts
- Promela
- FSMv
- Larissa
- FeatureAlloy
- Modal Sequence Diagrams
- Fabian Benduhn
Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 21
Specification Techniques
Formalism/Language Feature-B. Family-B. Comp.-B. Annot.-B. Domain-I. Family-W. Variable CTL
- fCTL
- fLTL
- AdaCTL
- VMC (CTL-Based)
- vaCTL/MHML
- Service Diagrams
- LTL
- FeatureAlloy
- Tests
- Contracts (AOP)
- Contracts (FOP)
- Contracts (DOP)
- LTL
- JPF (verification tool)
- LTSA (verification tool)
- CTL
- LTL
- TCTL
- ACTL
- Tests
- Fabian Benduhn
Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 22
Directions for Future Research
◮ Gap between problem space and solution space →
model-based refinement
◮ Usability of representation types / empirical evaluation ◮ Role of different representation types in development process ◮ Feature-modular representations ◮ Specification inference for product lines ◮ Generic variability-encoding ◮ Variability in test cases
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 23
Model-Based Refinement for Product Lines
Feature Model Feature Model Product Line Model D A’ B’ C’ E Mapping V e r t i c a l R e fi n e m e n t Level n Level n-1 Feature Model Refinement Vertical Feature Refinement B A C A’ C’ B’ D E Mapping Product Line Model A B C Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 24
Summary
◮ Representation of variability required for all kind of artifacts ◮ Taxonomy of product-line representations
→ Helps to understand differences and commonalities
◮ Classification of modeling and specification techniques for
product lines → Overview of state-of-the-art, identification of potential research directions
Product-Line Representation Variability-Aware Annotation-Based Feature-Based Family-Based Composition-Based Feature-Based Family-Based Product-Based Commonality-Based Family-Wide Domain-Independent
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 25
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 26
Research Scope
◮ Formal specification,
not: informal or semi-formal specification.
◮ Specification as a means to specify software systems,
not: pure formalizations of theoretical concepts
◮ Specification of behavior or properties of software systems,
not: pure variability modeling
Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 27
Modeling Techniques
Variability-Aware Composition-Based Prod. ... ... ... Comp. ... ... ... Annot. ... ... ... Annotation-Based Prod. ... ... ... Comp. ... ... ... Annot. ... ... ...
Derived Developed Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 28
Specification Techniques
Specification Techniques Product-Based Prod. ... ... ... Var. ... ... ... Com. ... ... ... Variability-Aware Prod. ... ... ... Var. ... ... ... Com. ... ... ... Commonality-Based Prod. ... ... ... Var. ... ... ... Com. ... ... ... Derived Developed Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 29