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
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
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
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
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
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
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!
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)
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
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
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
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
}}
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
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...}
}
eδ
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
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
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
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
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
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
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
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]
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
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
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!
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
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
Questions, Comments, Feedback?Thank you for your attention!
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?