Representing Variability in Product Lines: A Survey of Modeling and - - PowerPoint PPT Presentation

representing variability in product lines a survey of
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques

Fabian Benduhn FOSD Meeting 2014

May 6, 2014

slide-2
SLIDE 2

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

slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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

slide-7
SLIDE 7

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

slide-8
SLIDE 8

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

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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

slide-15
SLIDE 15

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

slide-16
SLIDE 16

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

slide-17
SLIDE 17

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

slide-18
SLIDE 18

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

slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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 Cream

Product Line Domain-Independent Representation All Products Several Product Lines

Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 18

slide-22
SLIDE 22

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

slide-23
SLIDE 23

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

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

slide-29
SLIDE 29

Fabian Benduhn Representing Variability in Product Lines: A Survey of Modeling and Specification Techniques 26

slide-30
SLIDE 30

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

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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