VICCI Visual and Interactive Cyber-Physical Systems Control and Integration Deriving Variants with Variability in Space and Time Using Hyper Feature Models.

Slides:



Advertisements
Similar presentations
1 The C Language An International Standard CIS2450 Professional Aspect of Software Engineering.
Advertisements

VICCI Visual and Interactive Cyber-Physical Systems Control and Integration Capturing Variability in Space and Time with Hyper Feature Models Christoph.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
Abstraction Lecture-4. ADT example: London Underground Map.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
Versioning Extensions for Linux CS736 Spring 1999 J. Adam Butts Paramjit Oberoi.
Active Databases as Information Systems
Families of Software Systems Notkin: 3 of 3 lectures on change.
Requirements Structure 2.0 Clark Elliott Instructor With debt to Chris Thomopolous and Ali Merchant Original Authors.
PDDL: A Language with a Purpose? Lee McCluskey Department of Computing and Mathematical Sciences, The University of Huddersfield.
Project Life Cycle Jon Ivins DMU. Introduction n Projects consist of many separate components n Constraints include: time, costs, staff, equipment n Assets.
Systems Analysis and Design in a Changing World, 6th Edition
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
NON-FUNCTIONAL PROPERTIES IN SOFTWARE PRODUCT LINES: A FRAMEWORK FOR DEVELOPING QUALITY-CENTRIC SOFTWARE PRODUCTS May Mahdi Noorian
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Principles of Object Technology Module 1: Principles of Modeling.
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
12.
1 CSC241: Object Oriented Programming Lecture No 27.
Faculty of Informatics and Information Technologies Slovak University of Technology Peter Kajsa and Ľubomír Majtás Design.
Implementation Considerations Yonglei Tao. Components of Coding Standards 2  File header  file location, version number, author, project, update history.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Architecture-Based Runtime Software Evolution Peyman Oreizy, Nenad Medvidovic & Richard N. Taylor.
Understand Application Lifecycle Management
Open sharing and maintenance of scientific code Jordan S Read; Luke A Winslow
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Formalizing the Asynchronous Evolution of Architecture Patterns Workshop on Self-Organizing Software Architectures (SOAR’09) September 14 th 2009 – Cambrige.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
Ad Hoc Constraints Objectives of the Lecture : To consider Ad Hoc Constraints in principle; To consider Ad Hoc Constraints in SQL; To consider other aspects.
17-Oct-15 Refactoring. 2 Refactoring is: restructuring (rearranging) code......in a series of small, semantics-preserving transformations (i.e. the code.
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
Generative Programming. Automated Assembly Lines.
(c) University of Washington01-1 CSC 143 Java Programming as Modeling Reading: Ch. 1-6.
Controlling Execution Programming Right from the Start with Visual Basic.NET 1/e 8.
Hybrid Transformation Modeling Integrating a Declarative with an Imperative Model Transformation Language Pieter Van Gorp
UML-1 8. Capturing Requirements and Use Case Model.
Submodule construction in logics 1 Gregor v. Bochmann, University of Ottawa Using First-Order Logic to Reason about Submodule Construction Gregor v. Bochmann.
ESERL Feature Interaction Management in Parlay/OSA Using Composition Constraints and Configuration Rules Alessandro (Alex) De Marco, Ferhat Khendek Dept.
1 Design and Integration: Part 2. 2 Plus Delta Feedback Reading and lecture repeat Ambiguous questions on quizzes Attendance quizzes Boring white lecture.
Refactoring and Synchronization with the StarTeam Plug-in for Eclipse  Jim Wogulis  Principal Architect, Borland Software Corporation.
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
Introduction to c++ programming - object oriented programming concepts - Structured Vs OOP. Classes and objects - class definition - Objects - class scope.
Design time and Run time Chris, Andrea, Martina, Henry, Antonio, Ole, Philippe, Hartmut, Anne, Jeff, Felix, Sebastian, Kurt.
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
T Project Review MalliPerhe Iteration 3 Implementation
Andrey Karaulov, Alexander Strabykin Institute for System Programming Russian Academy of Sciences SYRCoSE: Spring Young Researchers Colloquium on Software.
Refactoring. DCS – SWC 2 Refactoring ”A change made to the internal structure of software to make it easier to understand and cheaper to modify without.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Huang-Ming Huang, Shih-Ling Chen, Sajeeva Pallemulle.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
CSCE 240 – Intro to Software Engineering Lecture 3.
Learning to use a ‘For Loop’ and a ‘Variable’. Learning Objective To use a ‘For’ loop to build shapes within your program Use a variable to detect input.
SysML v2 Formalism: Requirements & Benefits
C++ coding standard suggestion… Separate reasoning from action, in every block. Hi, this talk is to suggest a rule (or guideline) to simplify C++ code.
Software Factories - Today and Tomorrow
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Bo Wang1, Yingfei Xiong2, Zhenjiang Hu3, Haiyan Zhao1,
CS 1120: Computer Science II Software Life Cycle
Computer Science Testing.
CS 1120: Computer Science II Software Life Cycle
Games Development 2 Entity / Architecture Review
UNIT-4 BLACKBOX AND WHITEBOX TESTING
Chapter 2: Building a System
Presentation transcript:

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

Software VariantSoftware Variant BSoftware Variant A150% Model  Variability Mechanisms (Excerpt) Background Deriving Variants with Variability in Space and Time - Christoph Seidl  Variability in Space  Configuration  Variant of system  Variability in Time  Evolution  Version of system Desired Variant Subtractive Variability Delta Modeling Software Variant

Running Example: TurtleBot Driver Deriving Variants with Variability in Space and Time - Christoph Seidl UltrasoundInfraredBump [1..3] DetectionWebservice AutonomousGamepadKeyboard [1..1] MovementEngine TurtleBot Cross-Tree Constraints 1.Autonomous  Detection 2.Keyboard  Gamepad  Webservice

Development History of TurtleBot Driver Deriving Variants with Variability in Space and Time - Christoph Seidl 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! Iteration 1Iteration 2Iteration 3Iteration 4

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

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

Feature Models: No Variability in Time Deriving Variants with Variability in Space and Time - Christoph Seidl 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 CreateiClebo Kobuki v1.0v2.0 Evolution!

Version-Aware Constraints 1.Autonomous  Detection 2.Keyboard  Gamepad  Webservice 3.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 DetectionWebserviceMovementEngine Deriving Variants with Variability in Space and Time - Christoph Seidl UltrasoundInfraredBump [1..3] AutonomousGamepadKeyboard [1..1] TurtleBot Relative Version Restrictions (Open Intervals) Version Range Restrictions (Closed Intervals)

Configurations of Hyper Feature Models Deriving Variants with Variability in Space and Time - Christoph Seidl [1..1] Create Kobuki [1..3] UltrasoundInfraredBumpAutonomousGamepadKeyboard Movement Engine TurtleBot DetectionWebservice Version-Aware Constraints 1.Autonomous  Detection 2.Keyboard  Gamepad  Webservice 3.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] 1.0

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

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

Delta Modeling: No Variability in Time (Yet) 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 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 ArtifactTarget Artifact Delta Module(s) + public class MovementController { void handleEvent(Event e) { //Intentionally empty }

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

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

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

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

Mapping to Delta Modules Deriving Variants with Variability in Space and Time - Christoph Seidl  Features are mapped to configuration delta modules  Versions are mapped to evolution delta modules … … TurtleBot …… cδacδa eδdeδd eδaeδa eδbeδb eδceδc

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

Implicit Order of Delta Modules Deriving Variants with Variability in Space and Time - Christoph Seidl Configuration delta modules 2.Evolution delta modules in order of development lines 3.Continue in depth first order of HFM … … TurtleBot …… cδacδa eδdeδd eδaeδa eδbeδb eδceδc 1 2 3a 3b

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

Example Delta Module Order Deriving Variants with Variability in Space and Time - Christoph Seidl Create Kobuki Keyboard Movement Engine TurtleBot Delta Module Order 1.cδ TurtleBot 2.eδ 3.eδ 4.eδ 5.cδ Engine 6.eδ 7.eδ 8.eδ cδ Movement 10.eδ 11.cδ Keyboard 12.eδ

 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 Deriving Variants with Variability in Space and Time - Christoph Seidl cδacδa TurtleBot eδbeδb 1.1 cδxcδx (Keyboard  Gamepad)  Autonomous eδyeδy 1.1  1.1

Applying Delta Modules Managing Variability in Space and Time in Software Families - Christoph Seidl eδdeδdeδceδc cδacδa cδbcδb eδaeδa eδbeδb Software Variant A cδccδceδeeδe Software Variant B Software Variant A

Applying Delta Modules Managing Variability in Space and Time in Software Families - Christoph Seidl eδdeδdeδceδc cδacδa cδbcδb eδaeδa eδbeδb Software Variant A cδccδceδeeδe Software Variant B Software Variant A Contains version information!

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

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

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

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?

My Questions  How to exclude delta module clashes (e.g., specialized delta module for Keyboard && Gamepad but simple ones are evaluated as well)?  Hard criteria what separates an evolution delta language from a configuration delta language (seems to depend on the concrete case)?  How to make sure that this method is widely applicable?  Information on CVL  How to identify when an operation is configuration and when it is evolution.  Clues for evolution operations (explicitly not available for configuration)  Changing things that should be stable (Ids, sometimes names)  Changing things that do not affect (user-visible) functionality (refactorings)  …?  What happens when feature is updated (not essential functionality but not just bug fixing either)? When is something a "user visible" functionality?  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? Deriving Variants with Variability in Space and Time - Christoph Seidl29

References Deriving Variants with Variability in Space and Time - Christoph Seidl  [SSA14a] C. Seidl, I. Schaefer, and U. Aßmann. Capturing Variability in Space and Time with Hyper Feature Models. In Proceedings of the 8th International Workshop on Variability Modelling of Software-intensive Systems (VaMoS), VaMoS'14, 2014.