Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen In the Tension of Software Redundancy and Variability Sandro Schulze (COW Veteran), TU Braunschweig, COW #29 Thanks to: David Wille, Sönke Holthusen, Ina Schaefer (TU Braunschweig), Olaf Lessenich, Sven Apel (University of Passau)
What is this talk about? “ … some disciplines aim at introducing redundancy, others at exploiting it, and others still at avoiding it.” (from the COW #29 web page) Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 2
Questions … to be answered Why does redundancy exists? Any good reasons? On purpose? Where does it come from? Beyond plain copy&paste? What does it tell us (under the hood)? What is redundancy really used for … and why? Does your mother know, you are here? Does anybody know about all that redundancy? Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 3
An Example of Software Evolution http://www.levenez.com/unix/ � Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 4
Clone-and-Own Versions evolve…. …and become variants t 0 t 1 t 2 t 3 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 5
Patterns of Redundancy WCRE 2006 Hardware Variation ESE Journal 2008 Platform Variation API/Library Protocols Algorithmic Idioms Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 6
Patterns of Redundancy Replicate and Specialize Workarounds Reliability, efficient evolution, knowledge Maintainability, bug propagation, (missing) back propagation Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 7
Redundancy introduces Variability 10000 features 250+ distributions Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 8 http://www.distrowatch.com �
Unleashing Redundancy Provides Provides How to get Data Information there? - How to add semantics to redundancy? - From where to obtain domain knowledge? Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 9
Forking & Evolution changes System B System A changes Which parts evolve together/independent across systems? Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 11
Analyzing Inter-System Clone Evolution t 0 t 1 : t 2 : time t 3 : t 4 : t 5 : t ∞ Legend: clone fragment system 1 system 2 clone class clone connection Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 12
Analyzing Inter-System Clone Evolution simplicity vs. precision Gives you a fast overview Gives you regions of interest NO information about features NO information for merging the code base of systems Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 13
Semi-Structured Merge Apel et al., ASE 2012 Structured Diff on abstract syntax trees (AST) How difficult is it How much does to merge? this cost? Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 14
Models are software….too Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 15
Model-Based Development Process Variant 1 Z-1 Z-1 1 1 1 1 In3 In3 Delay Delay Gain Gain 1 1 Out1 Out1 1 1 Product Product 1 1 s s 2 2 s s Integrator Integrator In4 In4 Integrator1 Integrator1 Variant 2 1 Z-1 1 s In1 Integrator Limited Delay 1 Out1 Product 1 2 s In2 Integrator Transport Delay Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 16
The Model Zoo clone-and-own c l o n e - a n d - o w n n w o - n d n a - w e n o o l c - d n a - e n o l c Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 17
Towards A Family of Models - Difficult to maintain - Propagating changes à à which models? M - Replication usually not documented Commonalities Differences Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 18
Mining Model Variability C C C Import Analysis Intermediate Family Model C C Representation (annotated 150% model) EMFCompare Export C C C Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 19
Beyond Model Diff & Model Clone Detection Differences and/or I1 C1 C2 O1 similarities detected by lots of existing tools I1 C3 C4 O1 I1 C1 C4 O1 Beyond that … . I1 C1 C2 O1 … we add semantics I1 I1 C3 C4 O1 O1 … put model elements in a family context I1 C1 C4 O1 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 20
Context & Interfaces Z-1 1 1 In3 Delay Gain 1 Out1 1 Product 1 s 2 s Integrator In4 Integrator1 Context à model components, connected to component of interest Interfaces à IN and OUT ports of component of interest Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 21
Alternatives Variant 1 Variant 1 Merge 1+2 Different, mandatory ➜ C1 ⊕ components C2 C2 C1 Variant 1 Variant 2 Merge 1+2 Variable sub- system and ➜ V1 V2 ⊕ mandatory V1 V2 MV/VS C1 C2 MV/VS C1 component C2 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 22
Optional Components Optional and Variant 2 Variant 1 Merge 1+2 mandatory ➜ ⊕ component ? C1 C1 Merge 1+2 Variant 1 Variant 2 An optional ➜ alternative ;-) ⊕ ? ? C1 C2 C1 C2 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 23
Interface Variability Wille et al., MAPLE 2013 Compare trees for … Components Connectors i3 j2 i4 i0 j0 i1 j3 j1 i5 i6 i2 j4 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 24
Putting the Pieces Together Family Model Redundancy M Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 25
Summary Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 26
Questions … partly answered Why does redundancy exists? Where does it come from? What does it tell us (under the hood)? It’s much (all?) about variability!!! Does your mother know, you are here? At least, she does not know the whole truth!!! But there’s more … … compositional testing and verification … propagating patches/changes … modular reasoning Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 28
Clone-and-Own Redundancy introduces Variability 10000 Versions evolve…. features …and become variants 250+ t 0 t 1 t 2 t 3 distributions Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 6 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 9 http://www.distrowatch.com ! Analyzing Inter-System Clone Evolution Towards A Family of Models - Difficult to maintain t 0 t 1 : - Propagating changes ! which models? M t 2 : - Replication usually not documented time t 3 : Commonalities Differences t 4 : t 5 : t ∞ Legend: clone fragment system 1 system 2 clone class clone connection Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 29 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 13 Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 19
Recommend
More recommend