SlideShare a Scribd company logo
1 of 48
Download to read offline
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 1
Version Control for Models
From Research to Industry and Back Again
Philip Langer
planger@eclipsesource.com
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 2
● 2009 - 2012: PhD Student and junior researcher
○ Version Control for Models, model transformation, MBE
○ First presentation at a conference was at MoDELS 2009:
Composite model operations in the context of version control
● 2012 - 2014: Post Doc and senior researcher
○ Version Control for Models, model transformation, MBE
○ Model simulation, execution, debugging, model-based testing
My Background
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 3
● 2014 - now: EclipseSource in Vienna
○ Open source technology and service provider
○ Support customers in applying OS Eclipse technologies
■ Sponsored open-source development
■ Integration and customization
■ Developer support, consulting, and training
○ Eclipse committer (projects in the ecosystem of EMF)
○ Main focus
■ Building Eclipse-based modeling tools
■ Industrial-quality version control support for models
■ Architecture board of the Papyrus IC
My Background
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 4
● Tooling that enables...
○ working on shared models
○ changing models separately in isolated branches
○ obtaining differences among model versions
○ sharing changes with others
○ merging changes with changes others have made
Version Control for Models
mastermaster
featureX
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 5
● Tooling that enables to efficiently use git for models
● Isn’t git on its own enough?
Version Control for Models
Taken from https://github.com/KnowitLabs/Project-Workflow-and-Conventions
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 6
● Tooling that enables to efficiently use git for models
Version Control for Models
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 7
● Tooling that enables to efficiently use git for models
Version Control for Models
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 8
● Tooling that enables to efficiently use git for models
Version Control for Models
origin
rightleft
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 9
● Tooling that enables to efficiently use git for models
Version Control for Models
origin
rightleft
What are the
differences?
What are the
differences?
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 10
● Tooling that enables to efficiently use git for models
Version Control for Models
origin
rightleft
Are there conflicts?
~
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 11
● Tooling that enables to efficiently use git for models
Version Control for Models
origin
rightleft
Apply differences (merge)
+
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 12
● Tooling that enables to efficiently use git
● On model-level
● For Papyrus models
→ Seamless integration of
Version Control for Models
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 13
● Tooling that enables to efficiently use git
● On model-level
● For Papyrus models
→ Seamless integration of
Version Control for Models
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 14
●
○ A generic model differencing and merging framework
○ Compare and merge the on the model level
○ Open source project in the Eclipse ecosystem
○ Generic algorithms
■ Make use of the metamodel to obtain knowledge on logical structure
■ EMF’s Reflection API to access and compare values generically
■ Support every modeling language that is specified in EMF
✔ Model matching
✔ Model comparison
✔ Model conflict detection
✔ Merging of model differences
Model Differencing with EMF Compare
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 15
Model Differencing with EMF Compare
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 16
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
EMF Compare’s Comparison Process
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 17
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
EMF Compare’s Comparison Process
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 18
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
EMF Compare’s Comparison Process
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 19
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
EMF Compare’s Comparison Process
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 20
Comparison Model
Match Model
● Matches of corresponding elements
● Scope of the comparison
Difference Model
● List of differences of each side
● Generic differences
○ Reference change
○ Attribute change
○ …
Relationships among differences
● Equivalences
● Dependencies
● Implications
● Conflicts
● Model comparison phases
○ Matching
Finding corresponding model elements
○ Diffing
Identifying differences among
corresponding model elements
○ Analysis of differences
Equivalences, dependencies, and
conflicts among differences
EMF Compare’s Comparison Process
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 21
EMF Compare’s Comparison Process
Comparison Model
Match Model
● Matches of corresponding elements
● Scope of the comparison
Difference Model
● List of differences of each side
● Generic differences
○ Reference change
○ Attribute change
○ …
Relationships among differences
● Equivalences
● Dependencies
● Implications
● Conflicts
Merge viewer
Merge engine
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 22
Selected Challenges
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 23
● Crucially important but challenging
○ Users get really angry if the merge breaks the model!
○ Combination of potential input is huge (changes, model elements, …)
○ Dozens of corner cases and nasty combinations
● Fuzz testing
○ Run software under test with pseudo random input
○ Monitor software under test during execution
○ Check for crashes and failures
Reliability
Software
Input-independent
postcondition
Fuzz Generator
Test coverage
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 24
● Goal
○ Find combination of model changes applied to an EMF model
○ Cause erroneous matching, diffing, and/or merging
● Fuzz Testing Framework for EMF tools
○ Part of EMFStore
○ Repeatedly run JUnit tests with fuzzed input
○ Pseudo-randomly generate/mutate EMF models
● Basic Idea
○ Generate an EMF model conforming to a metamodel: m1
○ Copy and mutate this model: m2
○ Compare and merge in both directions: m1→2
and m2→1
○ Compare m1
with m2→1
and m2
with m1→2
○ Assert that there are no differences
■ Between m1
and m2→1
■ Between m2
and m1→2
Reliability
m1
Fuzz Generator
m2
Compare & Merge
(r → l, l → r)
m1
m2== ==m2→1
m1→2
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 25
● EMF Compare and EGit (integration of git in Eclipse)
○ EMF Compare extends EGit
■ Handling of involved model resources
■ Comparisons among branches, references, tags
■ Merge, rebase, and cherry-pick
○ Git has a file-by-file way of working
○ Intercepting the merge of single model files is not enough
Model Versioning with EMF Compare and EGit
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 26
Model Versioning with EMF Compare and EGit
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 27
Model Versioning with EMF Compare and EGit
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 28
● EMF Compare and EGit (integration of git in Eclipse)
○ EGit had to be extended to support so-called logical model support
■ “Logical model” is a set of logically interrelated files
■ EMF Compare provides those logical models for EMF
○ EMF Compare handles connected model resources as a whole
■ Update of cross-file references
■ Propagation of model element deletions
→ Support for model fragmentation operations
→ Support for file operations in EMF Compare
Model Versioning with EMF Compare and EGit
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 29
Generic model comparison is on the EMF model level.
Gap between Generic Model Comparison and Papyrus
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 30
But this is not enough!
Gap between Generic Model Comparison and Papyrus
Papyrus
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 31
But this is not enough!
Papyrus
Gap between Generic Model Comparison and Papyrus
Hides complexity
of the modeling
language
Offers composite
actions and types
Provides
dedicated views
Especially with
UML-based
DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 32
But this is not enough!
Gap between Generic Model Comparison and Papyrus
Papyrus
?
Gap between Modeling Editor and Model Versioning Tools
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 33
Gap between Generic Model Comparison and Papyrus
Papyrus EMF Compare
How a user applies a change How EMF Compare sees the change
...
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 34
Gap between Generic Model Comparison and Papyrus
Papyrus
“Papyrus Compare” Generic Model Comparison
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 35
Gap between Generic Model Comparison and Papyrus
Papyrus EMF + Papyrus Compare
How a user applies a change How Papyrus Compare shows the change
...
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 36
“Papyrus Compare”
● Seamless Papyrus integration
✔ Support for UML Profiles
✔ Support for UML Profile migration
✔ Grouping of several composite editing actions
✔ Specific conflict handling for those actions
✔ Direct integration of model decorations
✔ Integration of Papyrus diagram styling
✔ Specific handling of meta-information (di)
✔ ...
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 37
● Papyrus is a DSM platform itself
○ Custom model decoration and diagram styling
○ Custom composite model element patterns
○ Custom composite model editing actions
○ Custom conflict and merge rules
○ ...
Gap between Generic Model Comparison and Papyrus DSML
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 38
Gap between Model Versioning Tools and Modeling Editors
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 39
Future Challenges
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 40
● DSML customizations are redundantly and manually implemented
○ Incremental post-processing of comparison model
○ Customization of UI components
○ But this customization replicates the customization of Papyrus*
● Goal
○ Perform DSML customization once → see the effect everywhere
● Shared DSML Customization Model
○ Defines element patterns (“element types”)
○ Defines composite operations
○ Customization model is consumed by Papyrus, EMF Compare, ...
● Support for “customization of customizations” is crucial
Single-sourcing the Customizations for DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 41
● Better support for diagrams and tables
○ Different domains have different requirements, backgrounds, preferences
○ Diagram-oriented users, table-oriented, model-tree-oriented users
● Diagram-oriented users want to see all changes on the diagram
○ Not only diagram changes, also model changes
○ Synchronized diagram support
■ New model element → new shape
■ Change dependencies need to be adapted
○ Integration with auto-layouting support
■ Auto-layout after merge
■ Conflicts on diagrams?
Better Concrete Syntax Comparison for DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 42
● Different user roles use different views and syntaxes
○ System architect vs. electrical engineer
○ High-level vs. detailed views
○ Diagram-oriented users vs. textual-oriented users
○ But they still work on shared models
User-oriented Multi-view/Multi-syntax Comparison for DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 43
User-oriented Multi-view/Multi-syntax Comparison for DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 44
User-oriented Multi-view/Multi-syntax Comparison for DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 45
● EUREKA project: “Hybrid Modeling”
○ Better integrating textual and graphical modeling
○ Papyrus for Real-Time as a case study
User-oriented Multi-view/Multi-syntax Comparison for DSMLs
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 46
● Resilience to problems in the model
○ Modeling tools are too restrictive and assume a well-formed model
○ We can’t really recover if there is something wrong (broken model, unresolved
parts)
○ Compare merge markers for text
○ More resilient modeling tools with quick-fix support
● Model review
○ Gerrit (or github) code review for models
○ Support reviewing, commenting, and annotating changes
○ Model/diagram changes, obviously
Further Topics
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 47
● Open consortium with a common goal
○ Developing a universal, industry-ready, open-source MBE solution
○ Based on Eclipse Papyrus and many other open-source components
● Strong collaboration
○ Tool users
○ Tool providers
○ Research and academia
● Independent of the domain
○ Systems modeling
○ Architecture modeling
○ Enterprise modeling, …
● Talk to us, if you are interested to collaborate
https://wiki.polarsys.org/Papyrus_IC
Papyrus Industrial Consortium
© 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 48
Thank you very much!
● Open source collaboration
● Follow us on collaborative-modeling.org
● Contact us
○ Papyrus IC Research & Academia Committee
○ planger@eclipsesource.com
Related Sessions
Tomorrow
OSS4MDE Workshop
Wednesday Evening
Weclome Reception

More Related Content

Recently uploaded

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.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
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.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Recently uploaded (20)

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 ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
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...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Version control for models -- From research to industry and back again (Models and Evolution 2016 keynote)

  • 1. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 1 Version Control for Models From Research to Industry and Back Again Philip Langer planger@eclipsesource.com
  • 2. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 2 ● 2009 - 2012: PhD Student and junior researcher ○ Version Control for Models, model transformation, MBE ○ First presentation at a conference was at MoDELS 2009: Composite model operations in the context of version control ● 2012 - 2014: Post Doc and senior researcher ○ Version Control for Models, model transformation, MBE ○ Model simulation, execution, debugging, model-based testing My Background
  • 3. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 3 ● 2014 - now: EclipseSource in Vienna ○ Open source technology and service provider ○ Support customers in applying OS Eclipse technologies ■ Sponsored open-source development ■ Integration and customization ■ Developer support, consulting, and training ○ Eclipse committer (projects in the ecosystem of EMF) ○ Main focus ■ Building Eclipse-based modeling tools ■ Industrial-quality version control support for models ■ Architecture board of the Papyrus IC My Background
  • 4. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 4 ● Tooling that enables... ○ working on shared models ○ changing models separately in isolated branches ○ obtaining differences among model versions ○ sharing changes with others ○ merging changes with changes others have made Version Control for Models mastermaster featureX
  • 5. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 5 ● Tooling that enables to efficiently use git for models ● Isn’t git on its own enough? Version Control for Models Taken from https://github.com/KnowitLabs/Project-Workflow-and-Conventions
  • 6. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 6 ● Tooling that enables to efficiently use git for models Version Control for Models
  • 7. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 7 ● Tooling that enables to efficiently use git for models Version Control for Models
  • 8. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 8 ● Tooling that enables to efficiently use git for models Version Control for Models origin rightleft
  • 9. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 9 ● Tooling that enables to efficiently use git for models Version Control for Models origin rightleft What are the differences? What are the differences?
  • 10. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 10 ● Tooling that enables to efficiently use git for models Version Control for Models origin rightleft Are there conflicts? ~
  • 11. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 11 ● Tooling that enables to efficiently use git for models Version Control for Models origin rightleft Apply differences (merge) +
  • 12. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 12 ● Tooling that enables to efficiently use git ● On model-level ● For Papyrus models → Seamless integration of Version Control for Models
  • 13. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 13 ● Tooling that enables to efficiently use git ● On model-level ● For Papyrus models → Seamless integration of Version Control for Models
  • 14. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 14 ● ○ A generic model differencing and merging framework ○ Compare and merge the on the model level ○ Open source project in the Eclipse ecosystem ○ Generic algorithms ■ Make use of the metamodel to obtain knowledge on logical structure ■ EMF’s Reflection API to access and compare values generically ■ Support every modeling language that is specified in EMF ✔ Model matching ✔ Model comparison ✔ Model conflict detection ✔ Merging of model differences Model Differencing with EMF Compare
  • 15. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 15 Model Differencing with EMF Compare
  • 16. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 16 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences EMF Compare’s Comparison Process
  • 17. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 17 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences EMF Compare’s Comparison Process
  • 18. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 18 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences EMF Compare’s Comparison Process
  • 19. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 19 ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences EMF Compare’s Comparison Process
  • 20. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 20 Comparison Model Match Model ● Matches of corresponding elements ● Scope of the comparison Difference Model ● List of differences of each side ● Generic differences ○ Reference change ○ Attribute change ○ … Relationships among differences ● Equivalences ● Dependencies ● Implications ● Conflicts ● Model comparison phases ○ Matching Finding corresponding model elements ○ Diffing Identifying differences among corresponding model elements ○ Analysis of differences Equivalences, dependencies, and conflicts among differences EMF Compare’s Comparison Process
  • 21. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 21 EMF Compare’s Comparison Process Comparison Model Match Model ● Matches of corresponding elements ● Scope of the comparison Difference Model ● List of differences of each side ● Generic differences ○ Reference change ○ Attribute change ○ … Relationships among differences ● Equivalences ● Dependencies ● Implications ● Conflicts Merge viewer Merge engine
  • 22. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 22 Selected Challenges
  • 23. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 23 ● Crucially important but challenging ○ Users get really angry if the merge breaks the model! ○ Combination of potential input is huge (changes, model elements, …) ○ Dozens of corner cases and nasty combinations ● Fuzz testing ○ Run software under test with pseudo random input ○ Monitor software under test during execution ○ Check for crashes and failures Reliability Software Input-independent postcondition Fuzz Generator Test coverage
  • 24. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 24 ● Goal ○ Find combination of model changes applied to an EMF model ○ Cause erroneous matching, diffing, and/or merging ● Fuzz Testing Framework for EMF tools ○ Part of EMFStore ○ Repeatedly run JUnit tests with fuzzed input ○ Pseudo-randomly generate/mutate EMF models ● Basic Idea ○ Generate an EMF model conforming to a metamodel: m1 ○ Copy and mutate this model: m2 ○ Compare and merge in both directions: m1→2 and m2→1 ○ Compare m1 with m2→1 and m2 with m1→2 ○ Assert that there are no differences ■ Between m1 and m2→1 ■ Between m2 and m1→2 Reliability m1 Fuzz Generator m2 Compare & Merge (r → l, l → r) m1 m2== ==m2→1 m1→2
  • 25. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 25 ● EMF Compare and EGit (integration of git in Eclipse) ○ EMF Compare extends EGit ■ Handling of involved model resources ■ Comparisons among branches, references, tags ■ Merge, rebase, and cherry-pick ○ Git has a file-by-file way of working ○ Intercepting the merge of single model files is not enough Model Versioning with EMF Compare and EGit
  • 26. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 26 Model Versioning with EMF Compare and EGit
  • 27. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 27 Model Versioning with EMF Compare and EGit
  • 28. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 28 ● EMF Compare and EGit (integration of git in Eclipse) ○ EGit had to be extended to support so-called logical model support ■ “Logical model” is a set of logically interrelated files ■ EMF Compare provides those logical models for EMF ○ EMF Compare handles connected model resources as a whole ■ Update of cross-file references ■ Propagation of model element deletions → Support for model fragmentation operations → Support for file operations in EMF Compare Model Versioning with EMF Compare and EGit
  • 29. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 29 Generic model comparison is on the EMF model level. Gap between Generic Model Comparison and Papyrus
  • 30. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 30 But this is not enough! Gap between Generic Model Comparison and Papyrus Papyrus
  • 31. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 31 But this is not enough! Papyrus Gap between Generic Model Comparison and Papyrus Hides complexity of the modeling language Offers composite actions and types Provides dedicated views Especially with UML-based DSMLs
  • 32. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 32 But this is not enough! Gap between Generic Model Comparison and Papyrus Papyrus ? Gap between Modeling Editor and Model Versioning Tools
  • 33. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 33 Gap between Generic Model Comparison and Papyrus Papyrus EMF Compare How a user applies a change How EMF Compare sees the change ...
  • 34. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 34 Gap between Generic Model Comparison and Papyrus Papyrus “Papyrus Compare” Generic Model Comparison
  • 35. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 35 Gap between Generic Model Comparison and Papyrus Papyrus EMF + Papyrus Compare How a user applies a change How Papyrus Compare shows the change ...
  • 36. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 36 “Papyrus Compare” ● Seamless Papyrus integration ✔ Support for UML Profiles ✔ Support for UML Profile migration ✔ Grouping of several composite editing actions ✔ Specific conflict handling for those actions ✔ Direct integration of model decorations ✔ Integration of Papyrus diagram styling ✔ Specific handling of meta-information (di) ✔ ...
  • 37. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 37 ● Papyrus is a DSM platform itself ○ Custom model decoration and diagram styling ○ Custom composite model element patterns ○ Custom composite model editing actions ○ Custom conflict and merge rules ○ ... Gap between Generic Model Comparison and Papyrus DSML
  • 38. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 38 Gap between Model Versioning Tools and Modeling Editors
  • 39. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 39 Future Challenges
  • 40. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 40 ● DSML customizations are redundantly and manually implemented ○ Incremental post-processing of comparison model ○ Customization of UI components ○ But this customization replicates the customization of Papyrus* ● Goal ○ Perform DSML customization once → see the effect everywhere ● Shared DSML Customization Model ○ Defines element patterns (“element types”) ○ Defines composite operations ○ Customization model is consumed by Papyrus, EMF Compare, ... ● Support for “customization of customizations” is crucial Single-sourcing the Customizations for DSMLs
  • 41. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 41 ● Better support for diagrams and tables ○ Different domains have different requirements, backgrounds, preferences ○ Diagram-oriented users, table-oriented, model-tree-oriented users ● Diagram-oriented users want to see all changes on the diagram ○ Not only diagram changes, also model changes ○ Synchronized diagram support ■ New model element → new shape ■ Change dependencies need to be adapted ○ Integration with auto-layouting support ■ Auto-layout after merge ■ Conflicts on diagrams? Better Concrete Syntax Comparison for DSMLs
  • 42. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 42 ● Different user roles use different views and syntaxes ○ System architect vs. electrical engineer ○ High-level vs. detailed views ○ Diagram-oriented users vs. textual-oriented users ○ But they still work on shared models User-oriented Multi-view/Multi-syntax Comparison for DSMLs
  • 43. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 43 User-oriented Multi-view/Multi-syntax Comparison for DSMLs
  • 44. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 44 User-oriented Multi-view/Multi-syntax Comparison for DSMLs
  • 45. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 45 ● EUREKA project: “Hybrid Modeling” ○ Better integrating textual and graphical modeling ○ Papyrus for Real-Time as a case study User-oriented Multi-view/Multi-syntax Comparison for DSMLs
  • 46. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 46 ● Resilience to problems in the model ○ Modeling tools are too restrictive and assume a well-formed model ○ We can’t really recover if there is something wrong (broken model, unresolved parts) ○ Compare merge markers for text ○ More resilient modeling tools with quick-fix support ● Model review ○ Gerrit (or github) code review for models ○ Support reviewing, commenting, and annotating changes ○ Model/diagram changes, obviously Further Topics
  • 47. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 47 ● Open consortium with a common goal ○ Developing a universal, industry-ready, open-source MBE solution ○ Based on Eclipse Papyrus and many other open-source components ● Strong collaboration ○ Tool users ○ Tool providers ○ Research and academia ● Independent of the domain ○ Systems modeling ○ Architecture modeling ○ Enterprise modeling, … ● Talk to us, if you are interested to collaborate https://wiki.polarsys.org/Papyrus_IC Papyrus Industrial Consortium
  • 48. © 2016 EclipseSource | http://eclipsesource.com/vienna | Philip Langer | Models and Evolution 2016 | Version Control for Models 48 Thank you very much! ● Open source collaboration ● Follow us on collaborative-modeling.org ● Contact us ○ Papyrus IC Research & Academia Committee ○ planger@eclipsesource.com Related Sessions Tomorrow OSS4MDE Workshop Wednesday Evening Weclome Reception