SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
SUPPORTING INCREMENTAL
CHANGES IN LARGE MODELS
   Jannik Laval, Simon Denier, Stéphane Ducasse
                 RMod Team - INRIA

                  Andy Kellens
          Software Languages Lab - VUB
ROADMAP
• Problem

• Different   naive approaches

  • copy

  • delta

  • lookup

• Our   proposal
PROBLEM

• How     to predict impact of changes ?

• How  to predict and compare different
 futures ?

• In   large models.
EXAMPLE
• move   mB1() in classA.

• remove   classC.

          Pack1             Pack1'


                   classA             classA'
                  mA1()              mA1'()
                  mA2()              mA2'()
                                     mB1'()
                   classB
                  mB1()               classB'
                  mB2()              mB2'()


                   classC
DIFFERENT NAIVE
            APPROACHES

• Copy

• Delta

• LookUp
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'
COPY
• Pros

 • each   version is complete

 • easy   to use and to transform

• Cons

 • high   creation time

 • high   memory usage
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
DELTA

• Pros

 • each    version is represented by its changes

 • fast   to create a version

• Cons

 • slow    to access a version
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'()
LOOKUP

• Pros

 • only   changed entities are copied

• Cons

 • time   for lookUp

 • what   about removed elements ?
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'()
PERFORMANCES
            cost of   cost of   memory
Approach
           creation   access     cost
  copy     ++++         1       ++++
  delta       +       ++++        +
 lookUp       +       ++++        +
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()'
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
PERFORMANCES

Approach    cost of   cost of   memory
           creation   access     cost
  copy      ++++        1       ++++
  delta       +       ++++        +
 lookUp       +       ++++        +
 Orion        +         +         +
ITS FUTURE

• Useit to make manual and automatic
 prediction changes

• Comparing    different changes

• Coupling   with analysis tools (Famix)
THANKS

SUPPORTING INCREMENTAL CHANGES IN
          LARGE MODELS

    Jannik Laval, Simon Denier, Stéphane Ducasse
                  RMod Team - INRIA

                   Andy Kellens
           Software Languages Lab - VUB

Contenu connexe

Plus de ESUG

Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoESUG
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...ESUG
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsESUG
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6ESUG
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationESUG
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingESUG
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesESUG
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportESUG
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsESUG
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector TuningESUG
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseESUG
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FutureESUG
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the DebuggerESUG
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing ScoreESUG
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptESUG
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocESUG
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsESUG
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalkESUG
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social MediaESUG
 
Roassal3 update
Roassal3 updateRoassal3 update
Roassal3 updateESUG
 

Plus de ESUG (20)

Sequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in PharoSequence: Pipeline modelling in Pharo
Sequence: Pipeline modelling in Pharo
 
Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...Migration process from monolithic to micro frontend architecture in mobile ap...
Migration process from monolithic to micro frontend architecture in mobile ap...
 
Analyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early resultsAnalyzing Dart Language with Pharo: Report and early results
Analyzing Dart Language with Pharo: Report and early results
 
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
Transpiling Pharo Classes to JS ECMAScript 5 versus ECMAScript 6
 
A Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test GenerationA Unit Test Metamodel for Test Generation
A Unit Test Metamodel for Test Generation
 
Creating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic ProgrammingCreating Unit Tests Using Genetic Programming
Creating Unit Tests Using Genetic Programming
 
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution ModesThreaded-Execution and CPS Provide Smooth Switching Between Execution Modes
Threaded-Execution and CPS Provide Smooth Switching Between Execution Modes
 
Exploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience ReportExploring GitHub Actions through EGAD: An Experience Report
Exploring GitHub Actions through EGAD: An Experience Report
 
Pharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIsPharo: a reflective language A first systematic analysis of reflective APIs
Pharo: a reflective language A first systematic analysis of reflective APIs
 
Garbage Collector Tuning
Garbage Collector TuningGarbage Collector Tuning
Garbage Collector Tuning
 
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame CaseImproving Performance Through Object Lifetime Profiling: the DataFrame Case
Improving Performance Through Object Lifetime Profiling: the DataFrame Case
 
Pharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and FuturePharo DataFrame: Past, Present, and Future
Pharo DataFrame: Past, Present, and Future
 
thisContext in the Debugger
thisContext in the DebuggerthisContext in the Debugger
thisContext in the Debugger
 
Websockets for Fencing Score
Websockets for Fencing ScoreWebsockets for Fencing Score
Websockets for Fencing Score
 
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScriptShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
ShowUs: PharoJS.org Develop in Pharo, Run on JavaScript
 
Advanced Object- Oriented Design Mooc
Advanced Object- Oriented Design MoocAdvanced Object- Oriented Design Mooc
Advanced Object- Oriented Design Mooc
 
A New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and TransformationsA New Architecture Reconciling Refactorings and Transformations
A New Architecture Reconciling Refactorings and Transformations
 
BioSmalltalk
BioSmalltalkBioSmalltalk
BioSmalltalk
 
gt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Mediagt4atproto, A Programmable Environment for Social Media
gt4atproto, A Programmable Environment for Social Media
 
Roassal3 update
Roassal3 updateRoassal3 update
Roassal3 update
 

Dernier

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 

Dernier (20)

Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 

Supporting Incremental Changes in Large Models

  • 1. SUPPORTING INCREMENTAL CHANGES IN LARGE MODELS Jannik Laval, Simon Denier, Stéphane Ducasse RMod Team - INRIA Andy Kellens Software Languages Lab - VUB
  • 2. ROADMAP • Problem • Different naive approaches • copy • delta • lookup • Our proposal
  • 3. PROBLEM • How to predict impact of changes ? • How to predict and compare different futures ? • In large models.
  • 4. EXAMPLE • move mB1() in classA. • remove classC. Pack1 Pack1' classA classA' mA1() mA1'() mA2() mA2'() mB1'() classB mB1() classB' mB2() mB2'() classC
  • 5. DIFFERENT NAIVE APPROACHES • Copy • Delta • LookUp
  • 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'()
  • 13. PERFORMANCES cost of cost of memory Approach creation access cost copy ++++ 1 ++++ delta + ++++ + lookUp + ++++ +
  • 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
  • 16. PERFORMANCES Approach cost of cost of memory creation access cost copy ++++ 1 ++++ delta + ++++ + lookUp + ++++ + Orion + + +
  • 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