SlideShare a Scribd company logo
1 of 29
Download to read offline
Universidad de los Andes
Departamento de Ingeniería de Sistemas y Computación
Effective detection of model changes
David Méndez Acuña
Rubby Casallas Gutierrez
SÉPTIMO CONGRESO COLOMBIANO DE COMPUTACIÓN
1
• Context
• Problem
• Related work
• Our approach
• Conclusions and future work
2
Agenda
Context
Model-driven software development is an approach
that proposes to use models as first-class entities for
creating software products.
3
Problem
Software evolution in the context of MDSD
The problem of software evolution remains relevant in the
context of model-driven software development
A particular case of software evolution is the
master/slave co-evolution [1].
4
[[master]] [[slave]]
[[master]] [[slave]]
consistency
consistency
5
Problem
Software evolution in the context of MDSD
Grammars
[[slave]]
Metamodel
[[master]]
Transformations
[[slave]]
Models
[[slave]]
6
Problem
Software evolution in the context of MDSD
Grammars
[[slave]]
Transformations
[[slave]]
Models
[[slave]]Metamodel
[[master]]
7
Migration process
Changes propagation
Impact analysis
Changes detection
8
Migration process
Changes propagation
Impact analysis
Changes detection
Current approaches for model
changes detection
9
Comparison-based approaches
List of changes [2]
List of changes
• Add class/property
• Delete class/property
• Retype property
• Modify property multiplicity
• Generalize property by type
• Generalize property by
multiplicity
• Restrict property by type
• Restrict property by
multiplicity
• Rename class/property
• Add inheritance
• Delete inheritance
• Move property
• Pull property
• Push property
• Extract superclass
• Flatten hierarchy
• Extract class
• Inline class
11
Comparison-based approaches
Compare two versions of the same metamodel and discover
the differences
12
Metamodel
[[master]]
Metamodel
[[master]]
Changes
model
Comparison-based approaches
Compare two versions of the same metamodel and discover
the differences
13
Metamodel
[[master]]
Metamodel
[[master]]
Changes
model
EMFCompare
(syntactical) [3]
List of changes
• Add class/property
• Delete class/property
• Retype property
• Modify property multiplicity
• Generalize property by type
• Generalize property by
multiplicity
• Restrict property by type
• Restrict property by
multiplicity
• Rename class/property
• Add inheritance
• Delete inheritance
• Move property
• Pull property
• Push property
• Extract superclass
• Flatten hierarchy
• Extract class
• Inline class
14
Comparison-based approaches
Compare two versions of the same metamodel and discover
the differences
15
Metamodel
[[master]]
Metamodel
[[master]]
Changes
model
EMFCompare
(syntactical) [3]
Heuristics [4]
List of changes
• Add class/property
• Delete class/property
• Retype property
• Modify property multiplicity
• Generalize property by type
• Generalize property by
multiplicity
• Restrict property by type
• Restrict property by
multiplicity
• Rename class/property
• Add inheritance
• Delete inheritance
• Move property
• Pull property
• Push property
• Extract superclass
• Flatten hierarchy
• Extract class
• Inline class
16
19
How to detect all the changes by
using a comparison-based approach?
It is possible to infer all the changes
from the syntactical changes that
EMFCompare supports?
20
Our approach
Objectives and overview
Detect all the changes of the Wachsmuth list from the syntactical
changes detected by EMFCompare
Metamodel
[[master]]
Metamodel
[[master]]
Changes
model
(entire list)
EMFCompare
(syntactical)
Changes
taxonomy
+
Inference
rules
21
Changes taxonomy
Change
Syntactical
Semantical
constrained
Semantical
composite
Atomic
Composite
22
Changes taxonomy
Detection
Change
Syntactical
Semantical
constrained
Semantical
composite
Atomic
Composite
Can be detected by
syntactical analysis
(EMFCompare)
23
Syntactical changes
24
Change
Syntactical
Semantical
constrained
Semantical
composite
Atomic
Composite
A syntactical change
that satisfies a structural
constraint
Changes taxonomy
Detection
A satisfies C
A is semantical
constrained
25
Semantical constrained changes
RETYPE PROPERTY
[[syntactical]]
The new type is
super type of the old
one
satisfies
GENERALIZE PROPERTY BY TYPE
[[syntactical]]
26
Change
Syntactical
Semantical
constrained
Semantical
composite
Atomic
Composite
A set of syntactical
changes that satisfy some
structural constraints
Changes taxonomy
Detection
Set A satisfies C
A is semantical
composite
27
Semantical composite changes
MOVE PROPERTY
[[syntactical]]
A and B refer to different
properties.
A and B are moved from
the same initial class to
the same final class.
The deleted class is the
initial class of the moved
properties
satisfy
INLINE CLASS
[[syntactical]]
MOVE PROPERTY
[[syntactical]]
DELETE CLASS
[[syntactical]]
A:
B:
C:
Changes taxonomy
• Add class/property
• Delete class/property
• Retype property
• Modify property multiplicity
• Generalize property by type
• Generalize property by
multiplicity
• Restrict property by type
• Restrict property by
multiplicity
• Rename class/property
• Add inheritance
• Delete inheritance
• Move property
• Pull property
• Push property
• Extract superclass
• Flatten hierarchy
• Extract class
• Inline class
28
Syntactical
changes
Constrained
changes
Composite
changes
Acknowledgements
29
Anne Etien
Université de Lille I
Lille, France
Germán Méndez
ECOPETROL S.A
Bogotá, Colombia
Louis Rose
University of York
York, UK
• It is possible to infer semantics of changes from analysis
of the syntactic differences between two versions of the
same metamodel.
• Some stronger validation is required.
• We aim at presenting this tool to the eclipse community
expecting to be accepted as an eclipse project.
30
Conclusions and future work
References
[1] L. Rose, R. Paige, D. Kolovos, and F. Polack. An analysis of approaches to model migration. In Proceedings of
the Models and Evolution Workshop, 12th ACM/IEEE International Conference on Model Driven Engineering,
Languages and Systems, MoDSE-MCCM. ACM, October 2009.
[2] G. Wachsmuth. Metamodel adaptation and model co-adaptation. In E. Ernst, editor, Proceedings of the 21st
European Conference on Object-Oriented Programming (ECOOP’07), volume 4609 of Lecture Notes in
Computer Science, pages 600–624. Springer-Verlag, July 2007.
[3] EMFCompare. Eclipse Community. Accesed: 10 April 2012. http://www.eclipse.org/emf/compare/
[4] K. Garcés, F. Jouault, P. Cointe, and J. Bézivin. Managing model adaptation by precise detection of
metamodel changes. In Proceedings of the 5th European Conference on Model Driven Architecture –
Foundations and Applications, ECMDA-FA ’09, Berlin, Heidelberg, 2009. Springer-Verlag.
[5] M. Herrmannsdoerfer, S. Benz, and E. Juergens. Cope – automating coupled evolution of metamodels and
models. In S. Drossopoulou, editor, ECOOP 2009 Object-Oriented Programming, volume 5653 of Lecture Notes
in Computer Science, pages 52–76. 2009
31
32
Questions
df.mendez73@uniandes.edu.co
David Méndez-Acuña

More Related Content

Similar to Effective Detection of Model Changes

UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxanguraju1
 
A Framework for Model-Driven Evolution in Families of Software Architectures
A Framework for Model-Driven Evolution in Families of Software ArchitecturesA Framework for Model-Driven Evolution in Families of Software Architectures
A Framework for Model-Driven Evolution in Families of Software ArchitecturesPooyan Jamshidi
 
Systems variability modeling a textual model mixing class and feature concepts
Systems variability modeling a textual model mixing class and feature conceptsSystems variability modeling a textual model mixing class and feature concepts
Systems variability modeling a textual model mixing class and feature conceptsijcsit
 
Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...Amanuel Alemayehu
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Kuwait10
 
RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...
RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...
RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...Amanuel Alemayehu
 
Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Gwendal Daniel
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.pptCSEC5
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patternssukumarraju6
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerGobinath Subramaniam
 
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...CSCJournals
 
Migration strategies for object oriented system to component based system
Migration strategies for object oriented system to component based systemMigration strategies for object oriented system to component based system
Migration strategies for object oriented system to component based systemijfcstjournal
 

Similar to Effective Detection of Model Changes (20)

UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptx
 
A Framework for Model-Driven Evolution in Families of Software Architectures
A Framework for Model-Driven Evolution in Families of Software ArchitecturesA Framework for Model-Driven Evolution in Families of Software Architectures
A Framework for Model-Driven Evolution in Families of Software Architectures
 
Systems variability modeling a textual model mixing class and feature concepts
Systems variability modeling a textual model mixing class and feature conceptsSystems variability modeling a textual model mixing class and feature concepts
Systems variability modeling a textual model mixing class and feature concepts
 
Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...Collaborative editing of emf ecore meta models and models conflict detection,...
Collaborative editing of emf ecore meta models and models conflict detection,...
 
Chem draW
Chem draWChem draW
Chem draW
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Ec2013 tutorial-mb variability-final
Ec2013 tutorial-mb variability-finalEc2013 tutorial-mb variability-final
Ec2013 tutorial-mb variability-final
 
RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...
RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...
RuCORD: Rule-based Composite Operation Recovering and Detection to Support Co...
 
Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017
 
Design patterns
Design patternsDesign patterns
Design patterns
 
12266422.ppt
12266422.ppt12266422.ppt
12266422.ppt
 
Michael Hucka.ppt
Michael Hucka.pptMichael Hucka.ppt
Michael Hucka.ppt
 
CS8592-OOAD Lecture Notes Unit-5
CS8592-OOAD Lecture Notes Unit-5 CS8592-OOAD Lecture Notes Unit-5
CS8592-OOAD Lecture Notes Unit-5
 
010821+presentation+oti.ppt
010821+presentation+oti.ppt010821+presentation+oti.ppt
010821+presentation+oti.ppt
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patterns
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
CS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and AnswerCS6502 OOAD - Question Bank and Answer
CS6502 OOAD - Question Bank and Answer
 
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
Using Model-Driven Engineering for Decision Support Systems Modelling, Implem...
 
Migration strategies for object oriented system to component based system
Migration strategies for object oriented system to component based systemMigration strategies for object oriented system to component based system
Migration strategies for object oriented system to component based system
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 

Recently uploaded

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 

Recently uploaded (20)

Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 

Effective Detection of Model Changes

  • 1. Universidad de los Andes Departamento de Ingeniería de Sistemas y Computación Effective detection of model changes David Méndez Acuña Rubby Casallas Gutierrez SÉPTIMO CONGRESO COLOMBIANO DE COMPUTACIÓN 1
  • 2. • Context • Problem • Related work • Our approach • Conclusions and future work 2 Agenda
  • 3. Context Model-driven software development is an approach that proposes to use models as first-class entities for creating software products. 3
  • 4. Problem Software evolution in the context of MDSD The problem of software evolution remains relevant in the context of model-driven software development A particular case of software evolution is the master/slave co-evolution [1]. 4 [[master]] [[slave]] [[master]] [[slave]] consistency consistency
  • 5. 5 Problem Software evolution in the context of MDSD Grammars [[slave]] Metamodel [[master]] Transformations [[slave]] Models [[slave]]
  • 6. 6 Problem Software evolution in the context of MDSD Grammars [[slave]] Transformations [[slave]] Models [[slave]]Metamodel [[master]]
  • 9. Current approaches for model changes detection 9 Comparison-based approaches List of changes [2]
  • 10. List of changes • Add class/property • Delete class/property • Retype property • Modify property multiplicity • Generalize property by type • Generalize property by multiplicity • Restrict property by type • Restrict property by multiplicity • Rename class/property • Add inheritance • Delete inheritance • Move property • Pull property • Push property • Extract superclass • Flatten hierarchy • Extract class • Inline class 11
  • 11. Comparison-based approaches Compare two versions of the same metamodel and discover the differences 12 Metamodel [[master]] Metamodel [[master]] Changes model
  • 12. Comparison-based approaches Compare two versions of the same metamodel and discover the differences 13 Metamodel [[master]] Metamodel [[master]] Changes model EMFCompare (syntactical) [3]
  • 13. List of changes • Add class/property • Delete class/property • Retype property • Modify property multiplicity • Generalize property by type • Generalize property by multiplicity • Restrict property by type • Restrict property by multiplicity • Rename class/property • Add inheritance • Delete inheritance • Move property • Pull property • Push property • Extract superclass • Flatten hierarchy • Extract class • Inline class 14
  • 14. Comparison-based approaches Compare two versions of the same metamodel and discover the differences 15 Metamodel [[master]] Metamodel [[master]] Changes model EMFCompare (syntactical) [3] Heuristics [4]
  • 15. List of changes • Add class/property • Delete class/property • Retype property • Modify property multiplicity • Generalize property by type • Generalize property by multiplicity • Restrict property by type • Restrict property by multiplicity • Rename class/property • Add inheritance • Delete inheritance • Move property • Pull property • Push property • Extract superclass • Flatten hierarchy • Extract class • Inline class 16
  • 16. 19 How to detect all the changes by using a comparison-based approach? It is possible to infer all the changes from the syntactical changes that EMFCompare supports?
  • 17. 20 Our approach Objectives and overview Detect all the changes of the Wachsmuth list from the syntactical changes detected by EMFCompare Metamodel [[master]] Metamodel [[master]] Changes model (entire list) EMFCompare (syntactical) Changes taxonomy + Inference rules
  • 21. 24 Change Syntactical Semantical constrained Semantical composite Atomic Composite A syntactical change that satisfies a structural constraint Changes taxonomy Detection A satisfies C A is semantical constrained
  • 22. 25 Semantical constrained changes RETYPE PROPERTY [[syntactical]] The new type is super type of the old one satisfies GENERALIZE PROPERTY BY TYPE [[syntactical]]
  • 23. 26 Change Syntactical Semantical constrained Semantical composite Atomic Composite A set of syntactical changes that satisfy some structural constraints Changes taxonomy Detection Set A satisfies C A is semantical composite
  • 24. 27 Semantical composite changes MOVE PROPERTY [[syntactical]] A and B refer to different properties. A and B are moved from the same initial class to the same final class. The deleted class is the initial class of the moved properties satisfy INLINE CLASS [[syntactical]] MOVE PROPERTY [[syntactical]] DELETE CLASS [[syntactical]] A: B: C:
  • 25. Changes taxonomy • Add class/property • Delete class/property • Retype property • Modify property multiplicity • Generalize property by type • Generalize property by multiplicity • Restrict property by type • Restrict property by multiplicity • Rename class/property • Add inheritance • Delete inheritance • Move property • Pull property • Push property • Extract superclass • Flatten hierarchy • Extract class • Inline class 28 Syntactical changes Constrained changes Composite changes
  • 26. Acknowledgements 29 Anne Etien Université de Lille I Lille, France Germán Méndez ECOPETROL S.A Bogotá, Colombia Louis Rose University of York York, UK
  • 27. • It is possible to infer semantics of changes from analysis of the syntactic differences between two versions of the same metamodel. • Some stronger validation is required. • We aim at presenting this tool to the eclipse community expecting to be accepted as an eclipse project. 30 Conclusions and future work
  • 28. References [1] L. Rose, R. Paige, D. Kolovos, and F. Polack. An analysis of approaches to model migration. In Proceedings of the Models and Evolution Workshop, 12th ACM/IEEE International Conference on Model Driven Engineering, Languages and Systems, MoDSE-MCCM. ACM, October 2009. [2] G. Wachsmuth. Metamodel adaptation and model co-adaptation. In E. Ernst, editor, Proceedings of the 21st European Conference on Object-Oriented Programming (ECOOP’07), volume 4609 of Lecture Notes in Computer Science, pages 600–624. Springer-Verlag, July 2007. [3] EMFCompare. Eclipse Community. Accesed: 10 April 2012. http://www.eclipse.org/emf/compare/ [4] K. Garcés, F. Jouault, P. Cointe, and J. Bézivin. Managing model adaptation by precise detection of metamodel changes. In Proceedings of the 5th European Conference on Model Driven Architecture – Foundations and Applications, ECMDA-FA ’09, Berlin, Heidelberg, 2009. Springer-Verlag. [5] M. Herrmannsdoerfer, S. Benz, and E. Juergens. Cope – automating coupled evolution of metamodels and models. In S. Drossopoulou, editor, ECOOP 2009 Object-Oriented Programming, volume 5653 of Lecture Notes in Computer Science, pages 52–76. 2009 31