1 / 28

Deriving Variants with Variability in Space and Time

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.

vangie
Télécharger la présentation

Deriving Variants with Variability in Space and Time

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Deriving Variants with Variability in Space and Time Using Hyper Feature Models and Delta Modeling Christoph Seidl Ina Schaefer Uwe Aßmann

  2. Background • Variability in Space • Configuration • Variant of system • Variability in Time • Evolution • Version of system Subtractive Variability Desired Variant Delta Modeling Software Variant 150% Model Software Variant Software Variant B Software Variant A Variability Mechanisms (Excerpt) Deriving Variants with Variability in Space and Time - Christoph Seidl

  3. Running Example: TurtleBot Driver TurtleBot Engine Movement Webservice Detection [1..1] [1..3] Keyboard Gamepad Autonomous Bump Infrared Ultrasound Cross-Tree Constraints • Autonomous ® Detection • Keyboard Ú Gamepad ® Webservice Deriving Variants with Variability in Space and Time - Christoph Seidl

  4. Development History of TurtleBot Driver TurtleBot Iteration 4 Iteration 1 Iteration 2 Iteration 3 Update! Engine Movement Webservice Detection Update! Update! Update! Update! [1..1] [1..n] Keyboard Gamepad Autonomous Bump Infrared Ultrasound Update! Update! Update! Update! 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! Deriving Variants with Variability in Space and Time - Christoph Seidl

  5. Requirements for Deriving "Older" Variants 3 Variant Derivation Process that can handle Variability in Time 1 Variability Model that can handle Variability in Time 2 Variability Mechanism that can handle Variability in Time Deriving Variants with Variability in Space and Time - Christoph Seidl

  6. Solution Overview Variability Model Variability Mechanism Variant Derivation Process Variability in Space Transformation Feature Models Delta Modeling 1 Extension for Variability in Time 1 Extension for Variability in Time 2 Extension for Variability in Time 3 Extension for Variability in Time Deriving Variants with Variability in Space and Time - Christoph Seidl

  7. Feature Models: No Variability in Time TurtleBot v1.0 v2.0 iRobot Create iClebo Kobuki Evolution! Evolution! Engine Movement Webservice Detection [1..1] [1..3] Keyboard Gamepad Autonomous Bump Infrared Ultrasound • 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) Deriving Variants with Variability in Space and Time - Christoph Seidl

  8. Hyper Feature Models (HFMs) for Versions TurtleBot 1.1 TurtleBot 2.0 2.1 Engine Movement Webservice Detection [1..1] [1..3] Keyboard Gamepad Autonomous Bump Infrared Ultrasound Version Range Restrictions (Closed Intervals) Relative Version Restrictions (Open Intervals) 1.0 0.8 0.9 1.0 Deriving Variants with Variability in Space and Time - Christoph Seidl TurtleBot [³ 2.0] ® Engine [³ Kobuki 1.0] TurtleBot [1.0 – 1.1] ® Engine [£ Create 1.2] TurtleBot [³ 2.0] ® ? Webservice [³ 1.1] Version-Aware Constraints Autonomous ® Detection Keyboard Ú Gamepad ® Webservice Infrared [³ 2.0] Ú Ultrasound ® Detection [³ 1.1]

  9. Configurations of Hyper Feature Models TurtleBot 1.1 Engine@Kobuki 1.0 2.0 2.1 Engine Movement Webservice Detection 1.2 2.0 [1..1] [1..3] Keyboard Gamepad Autonomous Bump Infrared Ultrasound 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.8 1.1 1.1 2.0 1.1 2.0 0.9 1.1 1.1 2.2 1.0 2.0 Create 1.2 Kobuki 1.0 Deriving Variants with Variability in Space and Time - Christoph Seidl Version-Aware Constraints Autonomous ® Detection Keyboard Ú Gamepad ® Webservice Infrared [³ 2.0] Ú Ultrasound ® Detection [³1.1] TurtleBot [³ 2.0] ® Engine [³ Kobuki 1.0] TurtleBot [1.0 – 1.1] ® Engine [£ Create 1.2] TurtleBot [³ 2.0] ® ? Webservice [³ 1.1]

  10. Variability Model for Variability in Time Variability Model Variability Mechanism Variant Derivation Process Transformation Feature Models Delta Modeling 1 Extension for Variability in Time Hyper Feature Models Hyper Feature Models 2 Extension for Variability in Time 3 Extension for Variability in Time Version-Aware Constraint Language Version-Aware Constraint Language Deriving Variants with Variability in Space and Time - Christoph Seidl

  11. Variability Mechanism for Variability in Time? Variability Model Variability Mechanism Variant Derivation Process Transformation Feature Models Delta Modeling Hyper Feature Models 2 Extension for Variability in Time 2 Extension for Variability in Time 3 Extension for Variability in Time Version-Aware Constraint Language Deriving Variants with Variability in Space and Time - Christoph Seidl

  12. Delta Modeling: No Variability in Time (Yet) + Source Artifact Target Artifact public class MovementController { voidhandleEvent(Event e) { //Intentionally empty } } public class MovementController { void handleEvent(Event e) { handleKeyboardEvent(e); } } public class MovementController { void handleEvent(Event e) { //Intentionally empty } } Delta Module(s) deltaDKeyboard { modifiesclassMovementController { modifiesvoidhandleEvent(Event e) { handleKeyboardEvent(e); } } } Deriving Variants with Variability in Space and Time - Christoph Seidl • 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

  13. Evolution Delta Modules are Different 1. Intent Creating Variants vs. Meeting New Requirements 2. Predictability A Priori Known vs. Unplanned 3. Expressiveness Intentionally Limited Expressive Power vs. Great Expressive Power Deriving Variants with Variability in Space and Time - Christoph Seidl

  14. Example: Using Evolution Delta Modules public class Movement { void handleEvent(Event e) { //Lengthy code here... } } public class MovementController { void handleEvent(Event e) { handleKeyboardEvent(e); } privatevoidhandleKeyboardEvent(Event e) { //Lengthy code here... } } • Rename class • Extract method • Create new method • Move code to new method • Call new method eδ 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... } privatevoid handleKeyboardEvent(Event e) { } } public class MovementController { void handleEvent(Event e) { } privatevoid handleKeyboardEvent(Event e) { //Lengthy code here... } } Evolution Delta Operations Configuration Delta Operations Modifying Identifiers Refactorings ??? Deriving Variants with Variability in Space and Time - Christoph Seidl

  15. Variability Mechanism for Variability in Time Variability Model Variability Mechanism Variant Derivation Process Transformation Feature Models Delta Modeling Hyper Feature Models 2 Extension for Variability in Time Evolution Delta Modules Evolution Delta Modules 3 Extension for Variability in Time Version-Aware Constraint Language Deriving Variants with Variability in Space and Time - Christoph Seidl

  16. Variant Derivation for Variability in Time? Variability Model Variability Mechanism Variant Derivation Process Transformation Feature Models Delta Modeling Hyper Feature Models Evolution Delta Modules 3 Extension for Variability in Time 3 Extension for Variability in Time Version-Aware Constraint Language Deriving Variants with Variability in Space and Time - Christoph Seidl

  17. Mapping to Delta Modules cδa 1.1 TurtleBot 2.0 2.1 eδb eδd eδa eδc … … … … 1.0 Features are mapped to configuration delta modules Versions are mapped to evolution delta modules Deriving Variants with Variability in Space and Time - Christoph Seidl

  18. Ordering Delta Modules Deriving Variants with Variability in Space and Time - Christoph Seidl • 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

  19. Implicit Order of Delta Modules cδa 1 1.1 TurtleBot 2.0 2.1 eδb 3a eδd eδa 4 2 eδc 3b 5 6 7 8 … … … … 1.0 Deriving Variants with Variability in Space and Time - Christoph Seidl Configuration delta modules Evolution delta modules in order of development lines Continue in depth first order of HFM

  20. Example Delta Module Order TurtleBot 1.1 2.0 2.1 Engine Movement 1.2 2.0 [1..3] Bump Gamepad Infrared Detection Webservice Autonomous Ultrasound [1..1] Keyboard 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.8 1.0 1.0 1.0 2.0 1.1 1.1 2.0 1.1 1.1 1.1 0.9 1.0 2.0 2.2 Kobuki 1.0 Create 1.2 Deriving Variants with Variability in Space and Time - Christoph Seidl

  21. Example Delta Module Order TurtleBot 1.1 2.0 2.1 Engine Movement 1.2 2.0 Keyboard 1.0 1.0 1.0 1.0 1.1 1.1 Kobuki 1.0 Create 1.2 Deriving Variants with Variability in Space and Time - Christoph Seidl Delta Module Order cδ TurtleBot eδ TurtleBot@1.0 eδ TurtleBot@2.0 eδ TurtleBot@2.1 cδ Engine eδ Engine@1.0 eδ Engine@1.1 eδ Engine@Kobuki 1.0 cδ Movement eδ Movement@1.0 cδ Keyboard eδ Keyboard@1.0

  22. Complex Mapping to Delta Modules • Logical expressions of features and versions mapped to delta modules (Keyboard Ú Gamepad) Ù Autonomous cδx Autonomous @ 1.1 ÙMovement @ 1.1 eδy • Use expressions from version-aware constraint language • Subsume simple mappings • Potential dependencies have to be expressed explicitly • Topological sorting using this information TurtleBot cδa TurtleBot @ 1.1 eδb Deriving Variants with Variability in Space and Time - Christoph Seidl

  23. Applying Delta Modules cδa eδa Software Variant A Software Variant A eδd eδc cδb eδb Software Variant B 1.0 1.1 1.0 1.1 1.2 cδc eδe 1.0 2.0 2.2 Managing Variability in Space and Time in Software Families - Christoph Seidl

  24. Applying Delta Modules cδa eδa Software Variant A Software Variant A Contains version information! eδd eδc cδb eδb Software Variant B 1.1 1.0 1.0 1.1 1.2 cδc eδe 1.0 2.0 2.2 Managing Variability in Space and Time in Software Families - Christoph Seidl

  25. Variant Derivation for Variability in Time Variability Model Variability Mechanism Variant Derivation Process Transformation Feature Models Delta Modeling Hyper Feature Models Evolution Delta Modules 3 Extension for Variability in Time Feature and Version to Delta Module Mapping Feature and Version to Delta Module Mapping Version-Aware Constraint Language Implicit Delta Module Evaluation Order Implicit Delta Module Evaluation Order Deriving Variants with Variability in Space and Time - Christoph Seidl

  26. Conclusion Variability Model Variability Mechanism Variant Derivation Process Variability in Space Transformation Feature Models Delta Modeling Variability in Time Hyper Feature Models Evolution Delta Modules Feature and Version to Delta Module Mapping Version-Aware Constraint Language Implicit Delta Module Evaluation Order Deriving Variants with Variability in Space and Time - Christoph Seidl

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

  28. Questions to the Audience Deriving Variants with Variability in Space and Time - Christoph Seidl • 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?

More Related