Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Mining Model Variability – Inside Model Redundancy Sandro Schulze, TU Braunschweig Co-Work with David Wille, Sönke Holthusen, Ina Schaefer (TU Braunschweig)
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 2 The Big Picture Reliability, efficient evolution, knowledge Maintainability, bug propagation, (missing) back propagation
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 3 Models are software…too Models evolve by clone-and-own
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 4 Redundancy introduces Variability
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 5 Questions…to be answered Where do you come from? Which model do you originate from? Why are you here? What is redundancy really used for…and why? Does your mother know, you are here? Does anybody know about relations caused by redundancy? For now, we don’t ask for permission of being here… ;-)
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 6 Unleashing Redundancy -How to add semantics to redundancy? -How to “structure” that mess? Provides Data Provides Information How to get there?
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 7 Towards A Family of Models Difficult to maintain Propagating changes which models? Replication usually not documented CommonalitiesDifferences
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 8 The ModelMania Approach
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 9 Mining Model Variability
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 10 Step 1: Initialization Import set of models Select basis model (i.e., model with max. number of elements) Select second model (for initial comparison) Determine starting components
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 11 Step 2: Creating Components Pairs a b c d e f gh M1 (M1.a, M2.a) (M1.a, M2.b) (M1.b, M2.a) (M1.b, M2.b) (M1.c, M2.c) (M1.c, M2.d) (M1.d, M2.c) (M1.d, M2.d) (M1.e, M2.i) (M1.e, M2.j) (M1.f, M2.i) (M1.f, M2.j) ……………. a bd i j gh M2 c
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 12 Step 3: Determining Component Variability Subjects model components to be compared Interfaces components connected with subjects via IN and OUT ports
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 13 Step 3: Determining Component Variability function name (string similarity) Component similarityInterface similarity Overall similarity Interface similarity
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 14 Step 3: Determining Component Variability Component dependencies Step 2 and 3 repeated for all models (using same base model) Based on dependencies, models are merged family model
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 15 Example M1M2 Alternative
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 16 Example M1M2 Alternative
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 17 Putting the Pieces Together Family Model Common view on related models: Commonalities and differences Guiding model creation
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 18 Limitations Hierarchical components Stateflow in components
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 19 Limitations Constraints for optional compontens User interaction (e.g., in case of conflicts)
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 20 Summary
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 21 Questions…partly answered Where do you come from? I’m (not) related to these guys (model components). Why are you here? Hmmm…not sure, we have to figure out in future Does your mother know, you are here? Now I could tell her… What about permissions? Well, better not to ask….
Sandro Schulze | Mining Model Variability | PLE Workshop | Slide 23 Beyond Model Diff & Model Clone Detection Differences and/or similarities detected by lots of existing tools Beyond that…. …we add semantics …put model elements in a family context