Encapsulating and Exploiting Change with
Changeboxes
Marcus Denker
Tudor Gîrba
Adrian Lienhard
Lukas Renggli
Oscar Nierstr...
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
RemoveChange 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 Change...
1 2 3 5
4
Element
Change
Specification
*1 1*
*
target spec
ancestor
Merge
Strategy
1
merger
ChangeBox
Changeboxes define the...
Element
Change
Specification
*1 1*
*
target spec
ancestor
Merge
Strategy
1
merger
ChangeBox
Class
Element
Method
Element
De...
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
Me...
A
B
x -> a MethodElement
MethodDict
x -> a MethodElement
y -> a MethodElement
z -> a MethodElement
w -> a MethodElement
Me...
Classes are looked up in a similar way.
Merge is supported via a MergeStrategy.
Changeboxes encapsulate changes.
Changeboxes are immutable.
Changeboxes are applied on other Changeboxes.
Changeboxes defin...
Encapsulate and exploit change in Changeboxes
Changeboxes
Changeboxes
Changeboxes
Changeboxes
Changeboxes
Upcoming SlideShare
Loading in...5
×

Changeboxes

204

Published on

Encapsulating and Exploiting Change with Changeboxes. SCG Bern. ESUG 2007, Lugano

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
204
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Changeboxes

  1. 1. Encapsulating and Exploiting Change with Changeboxes Marcus Denker Tudor Gîrba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr
  2. 2. Marcus Denker Tudor Gîrba Adrian Lienhard Lukas Renggli Oscar Nierstrasz Pascal Zumkehr
  3. 3. Change happens.
  4. 4. “Depend in the direction of stability.”
  5. 5. Version i Version i+1 RemoveChange Add A do something B foo ... A do something else anotherDo ... B foo ... C bar ...
  6. 6. “Commit often.”
  7. 7. Update
  8. 8. Update Change
  9. 9. Update Change Commit
  10. 10. Update ? Commit
  11. 11. We put the change in a box
  12. 12. 1
  13. 13. 1 2 Change Specification Changeboxes encapsulate changes.
  14. 14. 1 2 3 Change Specification 1* spec ChangeBox Changeboxes are immutable.
  15. 15. 1 2 3 4 Change Specification 1* spec ChangeBox
  16. 16. 1 2 3 5 4 Change Specification 1* * spec ancestor ChangeBox Changeboxes are applied on other Changeboxes.
  17. 17. 1 2 3 5 4 Change Specification 1* * spec ancestor Merge Strategy 1 merger ChangeBox Changeboxes are applied on other Changeboxes.
  18. 18. 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.
  19. 19. Element Change Specification *1 1* * target spec ancestor Merge Strategy 1 merger ChangeBox Class Element Method Element Definition Specification Rename Specification ...
  20. 20. 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.
  21. 21. 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.
  22. 22. 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. B new x ?
  23. 23. Classes are looked up in a similar way.
  24. 24. Merge is supported via a MergeStrategy.
  25. 25. Changeboxes encapsulate changes. Changeboxes are immutable. Changeboxes are applied on other Changeboxes. Changeboxes define a scope for dynamic execution.
  26. 26. Encapsulate and exploit change in Changeboxes
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×