in the tension of software redundancy and variability
play

In the Tension of Software Redundancy and Variability Sandro - PowerPoint PPT Presentation

Platzhalter fr 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, Snke Holthusen, Ina Schaefer (TU


  1. 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)

  2. 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

  3. 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

  4. An Example of Software Evolution http://www.levenez.com/unix/ � Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 4

  5. 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

  6. 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

  7. 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

  8. Redundancy introduces Variability 10000 features 250+ distributions Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 8 http://www.distrowatch.com �

  9. 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

  10. Forking & Evolution changes System B System A changes Which parts evolve together/independent across systems? Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 11

  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

  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

  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

  14. Models are software….too Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 15

  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

  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

  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

  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

  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

  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

  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

  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

  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

  24. Putting the Pieces Together Family Model Redundancy M Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 25

  25. Summary Sandro Schulze | Redundancy vs. Variability | COW #29 | Slide 26

  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

  27. 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