changeboxes
play

Changeboxes Marcus Denker Tudor Grba Adrian Lienhard Lukas - PowerPoint PPT Presentation

Encapsulating and Exploiting Change with Changeboxes Marcus Denker Tudor Grba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr Marcus Denker Tudor Grba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr


  1. Encapsulating and Exploiting Change with Changeboxes Marcus Denker Tudor Gîrba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr

  2. Marcus Denker Tudor Gîrba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr

  3. Change happens.

  4. “Depend in the direction of stability.”

  5. A B A B C do foo do foo bar something ... something ... ... else anotherDo ... Add Change Remove Version i Version i+1

  6. “Commit often.”

  7. Update

  8. Update Change

  9. Update Change Commit

  10. ? Update Commit

  11. We put the change in a box

  12. 1

  13. Changeboxes encapsulate changes. 1 2 Change Specification

  14. Changeboxes are immutable. 3 1 2 1 Change * ChangeBox Specification spec

  15. 4 3 1 2 1 Change * ChangeBox Specification spec

  16. Changeboxes are applied on other Changeboxes. 4 3 5 1 2 1 Change * ChangeBox Specification spec * ancestor

  17. Changeboxes are applied on other Changeboxes. 4 3 5 1 2 1 1 Change Merge * ChangeBox merger Specification spec Strategy * ancestor

  18. Changeboxes define the scope for dynamic execution. 4 3 5 1 2 1 1 1 Change Merge * * Element ChangeBox merger Specification spec Strategy target * ancestor

  19. 1 1 1 Change Merge * * Element ChangeBox Specification merger Strategy target spec * ancestor Class Method Definition Rename ... Element Element Specification Specification

  20. Method lookup is similar to Classboxes. B w ^4 B x B y B z A x B x B z ^1 ^2 ^3 ^10 A B

  21. Method lookup is similar to Classboxes. B w ^4 B x B y B z A x B x B z ^1 ^2 ^3 ^10 MethodDict A x -> a MethodElement MethodDict B x -> a MethodElement y -> a MethodElement z -> a MethodElement w -> a MethodElement

  22. Method lookup is similar to Classboxes. B w ^4 B x B y B z A x B x B z ^1 ^2 ^3 ^10 MethodDict A x -> a MethodElement B new x ? MethodDict B x -> a MethodElement y -> a MethodElement z -> a MethodElement w -> a MethodElement

  23. Classes are looked up in a similar way.

  24. Merge is supported via a MergeStrategy.

  25. Changeboxes encapsulate changes. Changeboxes are immutable. Changeboxes are applied on other Changeboxes. Changeboxes define a scope for dynamic execution.

  26. Encapsulate and exploit change in Changeboxes

Recommend


More recommend