deriving variants with variability in space and time

28
VICCI Visual and Interactive Cyber-Physical Systems Control and Integration Deriving Variants with Variability in Space and Time Using Hyper Feature Models and Delta Modeling Christoph Seidl Ina Schaefer Uwe Aßmann

Upload: vangie

Post on 25-Feb-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Deriving Variants with Variability in Space and Time. Using Hyper Feature Models and Delta Modeling. Christoph Seidl Ina Schaefer Uwe Aßmann. Background. Variability in Space Configuration Variant of system. Variability in Time Evolution Version of system. Subtractive Variability. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Deriving Variants with Variability in Space and Time

VICCIVisual and Interactive Cyber-Physical Systems Control and Integration

Deriving Variants with Variability in Space and TimeUsing Hyper Feature Models and Delta Modeling

Christoph SeidlIna SchaeferUwe Aßmann

Page 2: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 2

Software Variant Software Variant BSoftware Variant A150% Model

Variability Mechanisms (Excerpt)

Background

03.03.2014

Variability in Space Configuration Variant of system

Variability in Time Evolution Version of system

Desired Variant Subtractive Variability Delta Modeling

Software Variant

Page 3: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl

Running Example: TurtleBot Driver

303.03.2014

UltrasoundInfraredBump

[1..3]

DetectionWebservice

AutonomousGamepadKeyboard

[1..1]

MovementEngine

TurtleBot

Cross-Tree Constraints1. Autonomous ® Detection2. Keyboard Ú Gamepad ® Webservice

Page 4: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl

Development History of TurtleBot Driver

403.03.2014

UltrasoundInfraredBump

[1..n]

DetectionWebservice

AutonomousGamepadKeyboard

[1..1]

MovementEngine

TurtleBot

Lessons Learned Many updates! Old versions are still out there Incompatibilities of versions!

Resulting Problems Cannot model the evolution on conceptual level Cannot derive "older" variants!

Update! Update! Update!

Update!Update!Update!Update!

Update!

Update!

Iteration 1Iteration 2Iteration 3Iteration 4

Page 5: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 5

Requirements for Deriving "Older" Variants

03.03.2014

3

Variant Derivation Process

that can handle Variability in Time

2

Variability Mechanismthat can handle

Variability in Time

1

Variability Modelthat can handle

Variability in Time

Page 6: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 6

Varia

bilit

yin

Spa

ceSolution Overview

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

1

Extensionfor Variability in Time

3

Extensionfor Variability in Time

2

Extensionfor Variability in Time

1

Extensionfor Variability in Time

Page 7: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 7

Feature Models: No Variability in Time

03.03.2014

UltrasoundInfraredBump

[1..3]

DetectionWebservice

AutonomousGamepadKeyboard

[1..1]

MovementEngine

TurtleBot

Constraints caused by evolution (excerpt) iClebo Kobuki is incompatible with TurtleBot v1.0 iClebo Kobuki requires at least TurtleBot v2.0

Problem Feature model captures only variability in space Only exactly one version of variable asset in feature

model (no variability in time)

iRobot Create iClebo Kobuki v1.0 v2.0Evolution!Evolution!

Page 8: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl

Version-Aware Constraints1. Autonomous ® Detection2. Keyboard Ú Gamepad ® Webservice3. Infrared [³ 2.0] Ú Ultrasound ® Detection [³

1.1]

4. TurtleBot [³ 2.0] ® Engine [³ Kobuki 1.0]5. TurtleBot [1.0 – 1.1] ® Engine [£ Create 1.2]6. TurtleBot [³ 2.0] ® ? Webservice [³ 1.1]

Hyper Feature Models (HFMs) for Versions

TurtleBot

1.01.1

2.12.0

DetectionWebserviceMovementEngine

803.03.2014

UltrasoundInfraredBump

[1..3]

AutonomousGamepadKeyboard

[1..1]

TurtleBot

1.00.90.8Relative Version Restrictions

(Open Intervals)Version Range Restrictions

(Closed Intervals)

Page 9: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl

1.11.0

Configurations of Hyper Feature Models

903.03.2014

1.00.90.82.22.01.01.02.01.11.02.01.0

[1..1]1.0 2.01.21.1Create 1.2

1.0Kobuki 1.0

1.1

1.01.1

2.12.0

[1..3]1.11.0

1.0

UltrasoundInfraredBumpAutonomousGamepadKeyboard

MovementEngine

TurtleBot

DetectionWebservice

Version-Aware Constraints1. Autonomous ® Detection2. Keyboard Ú Gamepad ® Webservice3. Infrared [³ 2.0] Ú Ultrasound ® Detection [³ 1.1]4. TurtleBot [³ 2.0] ® Engine [³ Kobuki 1.0]5. TurtleBot [1.0 – 1.1] ® Engine [£ Create 1.2]6. TurtleBot [³ 2.0] ® ? Webservice [³ 1.1]Engine@Kobuki 1.0

Page 10: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 10

Variability Model for Variability in Time

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

1

Extensionfor Variability in Time

3

Extensionfor Variability in Time

2

Extensionfor Variability in Time

HyperFeature Models

Version-Aware Constraint Language

HyperFeature Models

Version-Aware Constraint Language

Page 11: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 11

Variability Mechanism for Variability in Time?

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

3

Extensionfor Variability in Time

2

Extensionfor Variability in Time

2

Extensionfor Variability in Time

HyperFeature Models

Version-Aware Constraint Language

Page 12: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 12

Delta Modeling: No Variability in Time (Yet)

03.03.2014

Delta Modeling (currently) handles only variability in space Delta Modeling is a form of tranformation

May be extended for variability in time Explicit notion of evolution delta modules

delta DKeyboard {modifies class

MovementController {modifies void

handleEvent(Event e) {

handleKeyboardEvent(e); }

}}

public class MovementController {void handleEvent(Event

e) {//

Intentionally empty}

}

public class MovementController {void handleEvent(Event

e) {

handleKeyboardEvent(e);}

}

Source Artifact Target Artifact

Delta Module(s)

+public class MovementController {

void handleEvent(Event e) {

//Intentionally empty

}}

Page 13: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 13

Evolution Delta Modules are Different

03.03.2014

1. Intent

2. Predictability

3. Expressiveness

Creating Variantsvs.

Meeting New Requirements

A Priori Knownvs.

Unplanned

Intentionally Limited Expressive Powervs.

Great Expressive Power

Page 14: Deriving Variants with Variability in Space and Time

14

public class Movement {void handleEvent(Event e)

{ //Lengthy code here... }

}

Example: Using Evolution Delta Modules

Deriving Variants with Variability in Space and Time - Christoph Seidl03.03.2014

public class MovementController {void handleEvent(Event e) {

handleKeyboardEvent(e);}

private void handleKeyboardEvent(Event e) {

//Lengthy code here...}

}

public class Movement {void handleEvent(Event e) {

//Lengthy code here... }

}

public class MovementController {void handleEvent(Event e) {

//Lengthy code here... }

}

public class MovementController {void handleEvent(Event e) { //Lengthy code here... }

private void handleKeyboardEvent(Event e) {

}}

public class MovementController {void handleEvent(Event e) {

}

private void handleKeyboardEvent(Event e) {

//Lengthy code here...}

}

Evolution Delta Operations

Configuration Delta Operations

Modifying Identifiers

Refactorings

???

1. Rename class2. Extract method

a) Create new methodb) Move code to new methodc) Call new method

Page 15: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 15

Variability Mechanism for Variability in Time

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

3

Extensionfor Variability in Time

2

Extensionfor Variability in Time

HyperFeature Models

Version-Aware Constraint Language

EvolutionDelta Modules

EvolutionDelta Modules

Page 16: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 16

Variant Derivation for Variability in Time?

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

3

Extensionfor Variability in Time

HyperFeature Models

Version-Aware Constraint Language

EvolutionDelta Modules 3

Extensionfor Variability in Time

Page 17: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 17

Mapping to Delta Modules

03.03.2014

Features are mapped to configuration delta modules Versions are mapped to evolution delta modules

……

TurtleBot

1.01.1

2.12.0

……

cδa

eδdeδa

eδb

eδc

Page 18: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 18

Ordering Delta Modules

03.03.2014

Common case Dependencies of delta modules specified explicitly Topological sorting to determine application order

With mapping of features/versions to delta modules Relation of features to other features (structure of HFM) Relation of versions to features (version containment in HFM) Relation of versions (development lines, branching etc.)

Strict ordering of delta modules allows assumptions on previously applied delta modules

Specify default ordering of delta modules associated to HFMs

Page 19: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 19

Implicit Order of Delta Modules

03.03.2014

1. Configuration delta modules2. Evolution delta modules in order of development lines3. Continue in depth first order of HFM

……

TurtleBot

1.01.1

2.12.0

……

cδa

eδdeδa

eδb

eδc

1

2

3a

3b

4

5 6 7 8

Page 20: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 20

Example Delta Module Order

03.03.2014

Ultrasound

1.00.90.8

Infrared

2.22.01.0

Bump

1.0

Autonomous

2.01.11.0

Gamepad

2.01.0

[1..1]

Movement

1.0 2.01.21.1

Engine

Create 1.21.0

Kobuki 1.01.1

TurtleBot

1.01.1

2.12.0

[1..3]

Detection

1.11.0

Webservice

1.11.0

1.0

Keyboard

Page 21: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl

Example Delta Module Order

2103.03.2014

1.0

Create 1.21.0

Kobuki 1.01.1

1.0 2.01.21.1

1.01.1

2.12.0

Keyboard

MovementEngine

TurtleBot Delta Module Order1. cδ TurtleBot2. eδ [email protected]. eδ [email protected]. eδ [email protected]. cδ Engine6. eδ [email protected]. eδ [email protected]. eδ Engine@Kobuki 1.09. cδ Movement10. eδ [email protected]. cδ Keyboard12. eδ [email protected]

Page 22: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 22

Use expressions from version-aware constraint language Subsume simple mappings Potential dependencies have to be expressed explicitly Topological sorting using this information

Logical expressions of features and versions mapped to delta modules

Complex Mapping to Delta Modules

03.03.2014

cδaTurtleBot

eδbTurtleBot @ 1.1

cδx(Keyboard Ú Gamepad) Ù Autonomous

eδyAutonomous @ 1.1 Ù Movement @ 1.1

Page 23: Deriving Variants with Variability in Space and Time

Managing Variability in Space and Time in Software Families - Christoph Seidl 23

Applying Delta Modules

12.03.2014

eδd eδc

cδa

cδb

eδa

eδb

Software Variant A

cδc eδe

Software Variant B

Software Variant A

1.01.11.21.02.02.2

1.01.1

Page 24: Deriving Variants with Variability in Space and Time

Managing Variability in Space and Time in Software Families - Christoph Seidl 24

Applying Delta Modules

12.03.2014

eδd eδc

cδa

cδb

eδa

eδb

Software Variant A

cδc eδe

Software Variant B

Software Variant A

1.01.11.21.02.02.2

1.01.1

Contains version information!

Page 25: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 25

Variant Derivation for Variability in Time

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

3

Extensionfor Variability in Time

HyperFeature Models

Version-Aware Constraint Language

EvolutionDelta Modules

Feature and Version to Delta Module Mapping

Implicit Delta Module Evaluation Order

Feature and Version toDelta Module Mapping

Implicit Delta Module Evaluation Order

Page 26: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 26

Varia

bilit

yin

Spa

ceVa

riabi

lity

in T

ime

Conclusion

03.03.2014

TransformationDeltaModeling

FeatureModels

Variability MechanismVariability Model Variant DerivationProcess

HyperFeature Models

Version-Aware Constraint Language

EvolutionDelta Modules

Feature and Version to Delta Module Mapping

Implicit Delta Module Evaluation Order

Page 27: Deriving Variants with Variability in Space and Time

Questions, Comments, Feedback?Thank you for your attention!

Page 28: Deriving Variants with Variability in Space and Time

Deriving Variants with Variability in Space and Time - Christoph Seidl 28

Questions to the Audience

03.03.2014

Configuration and evolution delta language have a lot in common, but … … is evolution language a superset of configuration language? … do they just overlap and there are operations that are

exclusively used for configuration?

How to identify when an operation is configuration and when it is evolution?

What changes are allowed to a feature before the identity of the feature is altered?