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

changeboxes
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

Encapsulating and Exploiting Change with

Changeboxes

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

slide-2
SLIDE 2
slide-3
SLIDE 3

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

slide-4
SLIDE 4

Change happens.

slide-5
SLIDE 5
slide-6
SLIDE 6
slide-7
SLIDE 7

“Depend in the direction of stability.”

slide-8
SLIDE 8

Version i Version i+1

Remove Change Add

A

do something

B

foo ...

A

do something else anotherDo ...

B

foo ...

C

bar ...

slide-9
SLIDE 9

“Commit often.”

slide-10
SLIDE 10

Update

slide-11
SLIDE 11

Update Change

slide-12
SLIDE 12

Update Change Commit

slide-13
SLIDE 13

Update

?

Commit

slide-14
SLIDE 14
slide-15
SLIDE 15
slide-16
SLIDE 16

We put the change in a box

slide-17
SLIDE 17

1

slide-18
SLIDE 18

1 2 Change Specification

Changeboxes encapsulate changes.

slide-19
SLIDE 19

1 2 3 Change Specification 1 * spec ChangeBox

Changeboxes are immutable.

slide-20
SLIDE 20

1 2 3 4 Change Specification 1 * spec ChangeBox

slide-21
SLIDE 21

1 2 3 5 4 Change Specification 1 * * spec ancestor ChangeBox

Changeboxes are applied on other Changeboxes.

slide-22
SLIDE 22

1 2 3 5 4 Change Specification 1 * * spec ancestor Merge Strategy 1 merger ChangeBox

Changeboxes are applied on other Changeboxes.

slide-23
SLIDE 23

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.

slide-24
SLIDE 24

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

slide-25
SLIDE 25

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.

slide-26
SLIDE 26

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.

slide-27
SLIDE 27

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 ?

slide-28
SLIDE 28

Classes are looked up in a similar way.

slide-29
SLIDE 29

Merge is supported via a MergeStrategy.

slide-30
SLIDE 30

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

slide-31
SLIDE 31

Encapsulate and exploit change in Changeboxes