1. SUPPORTING INCREMENTAL
CHANGES IN LARGE MODELS
Jannik Laval, Simon Denier, Stéphane Ducasse
RMod Team - INRIA
Andy Kellens
Software Languages Lab - VUB
6. COPY
Model 1
Pack1
parentPackage
classC
classA
classB
parentClass
parentClass
mA1() mA2() mB1() mB2()
to from to from
anInvocation anInvocation
Model 2
Pack1'
parentPackage
classA'
classB'
parentClass
parentClass
mA1'() mA2'() mB1'() mB2'()
to from to from
anInvocation' anInvocation'
7. COPY
• Pros
• each version is complete
• easy to use and to transform
• Cons
• high creation time
• high memory usage
8. DELTA
Model 1
Pack1
parentPackage
classC
classA Model 2
classB
parentClass - removeLinkBetween: classB and: mB1()
parentClass - createLinkBetween: classA and: mB1()
- removeClass: classC
mA1() mA2() mB1() mB2()
to from to from
anInvocation anInvocation
9. DELTA
• Pros
• each version is represented by its changes
• fast to create a version
• Cons
• slow to access a version
10. Model 1
LOOKUP
Pack1
parentPackage
classC
classA
classB
parentClass
parentClass
mA1() mA2() mB1() mB2()
to from to from
anInvocation anInvocation
Model 2 LookUp
Pack1'
removedClass
C
classA'
classB'
parentClass
mB1'()
11. LOOKUP
• Pros
• only changed entities are copied
• Cons
• time for lookUp
• what about removed elements ?
12. LOOKUP Model 1
Pack1
parentPackage
classC
classA
classB
parentClass
parentClass
mA1() mA2() mB1() mB2()
to from to from
•a problem: anInvocation anInvocation
Model 2 LookUp
• mB2() parentClass ? Pack1'
removedClass
C
classA'
classB'
parentClass
mB1'()
14. ORION APPROACH Model 1
Pack1
parentPackage
classC
classA
classB
parentClass
parentClass
• pointers approach mA1() mA2() mB1()
to
mB2()
to from from
anInvocation anInvocation
• access to updated elements
Model 2
Pack1'
• by an ID
classA'
• mB2() parentClass ?
classB'
mB1()'
15. ORION APPROACH
• Pros
• fastcreation and low memory usage: only
changed elements
• fast access: with the ID or pointers
• Cons
•a model depends on its predecessors
17. ITS FUTURE
• Useit to make manual and automatic
prediction changes
• Comparing different changes
• Coupling with analysis tools (Famix)
18. THANKS
SUPPORTING INCREMENTAL CHANGES IN
LARGE MODELS
Jannik Laval, Simon Denier, Stéphane Ducasse
RMod Team - INRIA
Andy Kellens
Software Languages Lab - VUB