Changeboxes Marcus Denker Tudor Grba Adrian Lienhard Lukas - - PowerPoint PPT Presentation
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
Marcus Denker Tudor Gîrba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr
Change happens.
“Depend in the direction of stability.”
Version i Version i+1
Remove Change Add
A
do something
B
foo ...
A
do something else anotherDo ...
B
foo ...
C
bar ...
“Commit often.”
Update
Update Change
Update Change Commit
Update
?
Commit
We put the change in a box
1
1 2 Change Specification
Changeboxes encapsulate changes.
1 2 3 Change Specification 1 * spec ChangeBox
Changeboxes are immutable.
1 2 3 4 Change Specification 1 * spec ChangeBox
1 2 3 5 4 Change Specification 1 * * spec ancestor ChangeBox
Changeboxes are applied on other Changeboxes.
1 2 3 5 4 Change Specification 1 * * spec ancestor Merge Strategy 1 merger ChangeBox
Changeboxes are applied on other Changeboxes.
1 2 3 5 4 Element Change Specification * 1 1 * * target spec ancestor Merge Strategy 1 merger ChangeBox
Changeboxes define the scope for dynamic execution.
Element Change Specification * 1 1 * * target spec ancestor Merge Strategy 1 merger ChangeBox Class Element Method Element Definition Specification Rename Specification ...
A B B x ^1 B y ^2 B z ^3 B w ^4 A x ^10 B x B z
Method lookup is similar to Classboxes.
A B
x -> a MethodElement
MethodDict
x -> a MethodElement y -> a MethodElement z -> a MethodElement w -> a MethodElement
MethodDict B x ^1 B y ^2 B z ^3 B w ^4 A x ^10 B x B z
Method lookup is similar to Classboxes.
A B
x -> a MethodElement
MethodDict
x -> a MethodElement y -> a MethodElement z -> a MethodElement w -> a MethodElement
MethodDict B x ^1 B y ^2 B z ^3 B w ^4 A x ^10 B x B z