SlideShare a Scribd company logo
1 of 19
Download to read offline
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 1
Tailor-made model comparison:
How to customize EMF Compare
for your modeling language
Philip Langer <planger@eclipsesource.com>
Laurent Delaigue <laurent.delaigue@obeo.fr>
Maximilian Koegel <mkoegel@eclipsesource.com>
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 2
● Comparing and merging EMF-based models
○ Obtaining differences among model versions
■ Two-way differencing
■ Three-way differencing
○ Merging concurrently modified model versions
○ Merge viewers
■ Showing differences
■ Merging differences
■ Resolving conflicts
○ Integration with Eclipse team providers, such as EGit
○ Ships with dedicated support for Papyrus UML and GMF
EMF Compare + EGit =
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 3
The way how you model...
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 4
… should be as close as possible to how you compare/merge them
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 5
● Raise the unit of comparison from text line to model elements
● Compare and merge the logical structure of the models
● EMF Compare’s core is built with generic algorithms
○ Make use of the metamodel to obtain knowledge on logical structure
○ Reflective API to access and compare values generically
○ Support every modeling language that is specified in EMF
How does EMF Compare work?
Model
(model.uml)
Metamodel
(UML.ecore)
EMF’s
reflective
API
EObject
EReference
EAttribute
...
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 6
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
How does EMF Compare work?
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 7
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
How does EMF Compare work?
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 8
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
How does EMF Compare work?
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 9
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
How does EMF Compare work?
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 10
● Gap between what EMF Compare processes and what users see
○ EMF Compare only “knows” the abstract model and the metamodel
○ Users only know how to use the modeling editor
When and why is customization needed?
Model
(model.uml)
Metamodel
(UML.ecore)
EMF’s
reflective
API
EObject
EReference
EAttribute
...
Papyrus
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 11
● Gap between what EMF Compare processes and what users see
○ EMF Compare only “knows” the abstract model and the metamodel
○ Users only know how to use the modeling editor
When and why is customization needed?
Model
(model.uml)
Metamodel
(UML.ecore)
EMF’s
reflective
API
EObject
EReference
EAttribute
...
Hides complexity
of the modeling
language
Provides domain-
specific view of
the model
Offers composite
actions and
types
I have never
seen the
metamodel!
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 12
● Gap between what EMF Compare processes and what users see
○ EMF Compare only “knows” the abstract model and the metamodel
○ Users only know how to use the modeling editor
When and why is customization needed?
Model
(model.uml)
Metamodel
(UML.ecore)
EMF’s
reflective
API
EObject
EReference
EAttribute
...
The relative customization distance
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 13
● EMF Compare is a highly-customizable framework
○ Enabling us to implement tailor-made model comparison tools
○ Take generic support of EMF Compare and make it domain-specific
● Customization and extension points: EMF Compare Core
Customizing EMF Compare
Matching Diffing Analysis of Diffs Merging
Match Engine
Match Strategy
Diff Engine
Feature Filter
Equivalence Engine
Requirements Engine
Conflict DetectorWeight Provider
Merger
Post-processor Post-processor Post-processor
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 14
Customizing the EMF Compare Merge Viewer
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 15
Customizing the EMF Compare Merge Viewer
Group providers specify the content of this tree over a comparison
Default providers can be customized
Additional group providers
can be added for more options
Filters
can be added and auto-activated
or just added as option for users
Elements have to adapt to a type
Double-clicking an element will
open the content merge viewer for
the respective type
Content merge viewers
One or more content merge
viewers can be provided for a
defined type
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 16
● Library example
○ Additional filter
○ Additional domain-specific grouping option
○ New difference type
● Other model viewer
○ Custom content merge viewer
Demos of Example Customizations
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 17
● It isn’t possible to build a one-size-fits all model comparison tool
○ Difference viewer should be as close as possible to how users work
○ Customized modeling editor → customized model comparison tool
● Build a highly extensible and well-performing basis
○ Make extending EMF Compare as easy as possible
○ Maximize the reuse of knowledge from the modeling editor
● Build a perfect ready-to-use model comparison tool
○ For Papyrus UML, UML-RT, and SysML on top of EMF Compare
→ http://www.collaborative-modeling.org
Future Perspectives
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 18
● More information
○ EMF Compare Developer Guide
○ EMF Compare Forum
○ Contact us
● Follow us on http://www.collaborative-modeling.org
Thank you very much!
© 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 19
● Follow us on http://www.collaborative-modeling.org
Thank you very much!

More Related Content

Similar to Tailor made model comparison: How to customize EMF Compare for your modeling language - EclipseCon Europe 2015

Team Work With Models Web
Team Work With Models WebTeam Work With Models Web
Team Work With Models WebCédric Brun
 
Writing extensible applications
Writing extensible applicationsWriting extensible applications
Writing extensible applicationsAndrew Yatsenko
 
Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?Maximilian Kögel
 
Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Lars Vogel
 
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingEclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingObeo
 
Openflexo presentation at SIMF Workshop @Models2013
Openflexo presentation at SIMF Workshop @Models2013Openflexo presentation at SIMF Workshop @Models2013
Openflexo presentation at SIMF Workshop @Models2013Openflexo
 
Are you still manually coding UIs? - EclipseCon Europe 2013
Are you still manually coding UIs? - EclipseCon Europe 2013Are you still manually coding UIs? - EclipseCon Europe 2013
Are you still manually coding UIs? - EclipseCon Europe 2013Maximilian Kögel
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologiesPT.JUG
 
Shake that-fud-vrs5
Shake that-fud-vrs5Shake that-fud-vrs5
Shake that-fud-vrs5wimjongman
 
Object Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshopObject Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshopMohammad Shawahneh
 
Ellip Studio - Training session
Ellip Studio - Training sessionEllip Studio - Training session
Ellip Studio - Training sessionterradue
 
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...Hugo Bruneliere
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingMarc Dutoo
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxanguraju1
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkSuresh Krishna Madhuvarsu
 
EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013Maximilian Kögel
 
Angular vs. polymer a face off for the throne of frontend development
Angular vs. polymer  a face off for the throne of frontend developmentAngular vs. polymer  a face off for the throne of frontend development
Angular vs. polymer a face off for the throne of frontend developmentMoon Technolabs Pvt. Ltd.
 
notesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Toolsnotesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling ToolsTonny Madsen
 
Say hello world with angular 5
Say hello world with angular 5Say hello world with angular 5
Say hello world with angular 5Abhishek Mallick
 

Similar to Tailor made model comparison: How to customize EMF Compare for your modeling language - EclipseCon Europe 2015 (20)

Team Work With Models Web
Team Work With Models WebTeam Work With Models Web
Team Work With Models Web
 
Writing extensible applications
Writing extensible applicationsWriting extensible applications
Writing extensible applications
 
Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?Democamp Munich 2013: Are you still manually coding UIs?
Democamp Munich 2013: Are you still manually coding UIs?
 
Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models Eclipse 4.0 - Dynamic Models
Eclipse 4.0 - Dynamic Models
 
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative ModelingEclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
EclipseCon EU 2015 : EMF compare + EGit = Seamless Collaborative Modeling
 
Openflexo presentation at SIMF Workshop @Models2013
Openflexo presentation at SIMF Workshop @Models2013Openflexo presentation at SIMF Workshop @Models2013
Openflexo presentation at SIMF Workshop @Models2013
 
Are you still manually coding UIs? - EclipseCon Europe 2013
Are you still manually coding UIs? - EclipseCon Europe 2013Are you still manually coding UIs? - EclipseCon Europe 2013
Are you still manually coding UIs? - EclipseCon Europe 2013
 
Overview of Eclipse technologies
Overview of Eclipse technologiesOverview of Eclipse technologies
Overview of Eclipse technologies
 
Shake that-fud-vrs5
Shake that-fud-vrs5Shake that-fud-vrs5
Shake that-fud-vrs5
 
Object Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshopObject Oriented, Design patterns and data modelling worshop
Object Oriented, Design patterns and data modelling worshop
 
CS8592-OOAD Question Bank
CS8592-OOAD  Question BankCS8592-OOAD  Question Bank
CS8592-OOAD Question Bank
 
Ellip Studio - Training session
Ellip Studio - Training sessionEllip Studio - Training session
Ellip Studio - Training session
 
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
Scalable Model Views over Heterogeneous Modeling Technologies and Resources -...
 
Eclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented ModelingEclipse Summit 2009 - Aspect Oriented Modeling
Eclipse Summit 2009 - Aspect Oriented Modeling
 
UNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptxUNIT IV DESIGN PATTERNS.pptx
UNIT IV DESIGN PATTERNS.pptx
 
Model Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse LinkModel Driven Development With Emf And Eclipse Link
Model Driven Development With Emf And Eclipse Link
 
EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013EMFStore Model Repository @ Modeling Symposium ECE 2013
EMFStore Model Repository @ Modeling Symposium ECE 2013
 
Angular vs. polymer a face off for the throne of frontend development
Angular vs. polymer  a face off for the throne of frontend developmentAngular vs. polymer  a face off for the throne of frontend development
Angular vs. polymer a face off for the throne of frontend development
 
notesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Toolsnotesnet.dk - Eclipse Modelling Tools
notesnet.dk - Eclipse Modelling Tools
 
Say hello world with angular 5
Say hello world with angular 5Say hello world with angular 5
Say hello world with angular 5
 

Recently uploaded

Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...chiefasafspells
 

Recently uploaded (20)

Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
Abortion Pill Prices Boksburg [(+27832195400*)] 🏥 Women's Abortion Clinic in ...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 

Tailor made model comparison: How to customize EMF Compare for your modeling language - EclipseCon Europe 2015

  • 1. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 1 Tailor-made model comparison: How to customize EMF Compare for your modeling language Philip Langer <planger@eclipsesource.com> Laurent Delaigue <laurent.delaigue@obeo.fr> Maximilian Koegel <mkoegel@eclipsesource.com>
  • 2. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 2 ● Comparing and merging EMF-based models ○ Obtaining differences among model versions ■ Two-way differencing ■ Three-way differencing ○ Merging concurrently modified model versions ○ Merge viewers ■ Showing differences ■ Merging differences ■ Resolving conflicts ○ Integration with Eclipse team providers, such as EGit ○ Ships with dedicated support for Papyrus UML and GMF EMF Compare + EGit =
  • 3. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 3 The way how you model...
  • 4. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 4 … should be as close as possible to how you compare/merge them
  • 5. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 5 ● Raise the unit of comparison from text line to model elements ● Compare and merge the logical structure of the models ● EMF Compare’s core is built with generic algorithms ○ Make use of the metamodel to obtain knowledge on logical structure ○ Reflective API to access and compare values generically ○ Support every modeling language that is specified in EMF How does EMF Compare work? Model (model.uml) Metamodel (UML.ecore) EMF’s reflective API EObject EReference EAttribute ...
  • 6. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 6 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences How does EMF Compare work?
  • 7. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 7 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences How does EMF Compare work?
  • 8. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 8 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences How does EMF Compare work?
  • 9. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 9 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences How does EMF Compare work?
  • 10. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 10 ● Gap between what EMF Compare processes and what users see ○ EMF Compare only “knows” the abstract model and the metamodel ○ Users only know how to use the modeling editor When and why is customization needed? Model (model.uml) Metamodel (UML.ecore) EMF’s reflective API EObject EReference EAttribute ... Papyrus
  • 11. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 11 ● Gap between what EMF Compare processes and what users see ○ EMF Compare only “knows” the abstract model and the metamodel ○ Users only know how to use the modeling editor When and why is customization needed? Model (model.uml) Metamodel (UML.ecore) EMF’s reflective API EObject EReference EAttribute ... Hides complexity of the modeling language Provides domain- specific view of the model Offers composite actions and types I have never seen the metamodel!
  • 12. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 12 ● Gap between what EMF Compare processes and what users see ○ EMF Compare only “knows” the abstract model and the metamodel ○ Users only know how to use the modeling editor When and why is customization needed? Model (model.uml) Metamodel (UML.ecore) EMF’s reflective API EObject EReference EAttribute ... The relative customization distance
  • 13. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 13 ● EMF Compare is a highly-customizable framework ○ Enabling us to implement tailor-made model comparison tools ○ Take generic support of EMF Compare and make it domain-specific ● Customization and extension points: EMF Compare Core Customizing EMF Compare Matching Diffing Analysis of Diffs Merging Match Engine Match Strategy Diff Engine Feature Filter Equivalence Engine Requirements Engine Conflict DetectorWeight Provider Merger Post-processor Post-processor Post-processor
  • 14. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 14 Customizing the EMF Compare Merge Viewer
  • 15. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 15 Customizing the EMF Compare Merge Viewer Group providers specify the content of this tree over a comparison Default providers can be customized Additional group providers can be added for more options Filters can be added and auto-activated or just added as option for users Elements have to adapt to a type Double-clicking an element will open the content merge viewer for the respective type Content merge viewers One or more content merge viewers can be provided for a defined type
  • 16. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 16 ● Library example ○ Additional filter ○ Additional domain-specific grouping option ○ New difference type ● Other model viewer ○ Custom content merge viewer Demos of Example Customizations
  • 17. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 17 ● It isn’t possible to build a one-size-fits all model comparison tool ○ Difference viewer should be as close as possible to how users work ○ Customized modeling editor → customized model comparison tool ● Build a highly extensible and well-performing basis ○ Make extending EMF Compare as easy as possible ○ Maximize the reuse of knowledge from the modeling editor ● Build a perfect ready-to-use model comparison tool ○ For Papyrus UML, UML-RT, and SysML on top of EMF Compare → http://www.collaborative-modeling.org Future Perspectives
  • 18. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 18 ● More information ○ EMF Compare Developer Guide ○ EMF Compare Forum ○ Contact us ● Follow us on http://www.collaborative-modeling.org Thank you very much!
  • 19. © 2015 EclipseSource | http://eclipsesource.com/vienna | Philip Langer et al. | Tailor-made Model Comparison 19 ● Follow us on http://www.collaborative-modeling.org Thank you very much!