Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Patching the gap in collaborating on models

101 views

Published on

EclipseCon France 2017 talk on Model Patches, a new component of the EMF DiffMerge project.

Details: https://www.eclipsecon.org/france2017/session/patching-gap-collaborating-models

Published in: Software
  • Be the first to comment

  • Be the first to like this

Patching the gap in collaborating on models

  1. 1. Patching the gap in collaborating on models ECLIPSECON FRANCE, 22/06/2017
  2. 2. 2 Who are we? Ábel Hegedüs Olivier Constant Matthieu Helleboid this guy could not come :’( (Corporate Engineering)
  3. 3. 3 In a nutshell... ▌ Model Patch = patches for models   A new component of the EMF Diff/Merge project  https://wiki.eclipse.org/EMF_DiffMerge/Model_Patch
  4. 4. Why?
  5. 5. 5 Thales ▌ Increasing complexity  MBSE mandatory 
  6. 6. 6 Model-Based System Engineering @Thales with Capella « Core viewpoints » Upstream Engineering Workbench Upstream Engineering Workbench Operational Analysis viewpoint Operational Analysis viewpoint Coupled viewpoints Safety viewpoint Safety viewpoint Perfo. viewpoint Perfo. viewpoint Downstream Engineering Workbench Downstream Engineering Workbench Code Generation Decoupled viewpoints Safety Engineering Safety Engineering Cost viewpoint Cost viewpoint Complete system description System description Co-engineering System Analysis viewpoint System Analysis viewpoint Logical Architecture viewpoint Logical Architecture viewpoint Physical Architecture viewpoint Physical Architecture viewpoint EPBS viewpointEPBS viewpoint Transition bridge Transition bridge (e.g., UML, DSLs, etc.) Perfo. Engineering Perfo. Engineering Bridge Bridge
  7. 7. 7 Consequence: Needs for model synchronization « Core viewpoints » Upstream Engineering Workbench Upstream Engineering Workbench Operational Analysis viewpoint Operational Analysis viewpoint Coupled viewpoints Safety viewpoint Safety viewpoint Perfo. viewpoint Perfo. viewpoint Downstream Engineering Workbench Downstream Engineering Workbench Code Generation Decoupled viewpoints Safety Engineering Safety Engineering Cost viewpoint Cost viewpoint Complete system description System description Co-engineering System Analysis viewpoint System Analysis viewpoint Logical Architecture viewpoint Logical Architecture viewpoint Physical Architecture viewpoint Physical Architecture viewpoint EPBS viewpointEPBS viewpoint Transition bridge Transition bridge (e.g., UML, DSLs, etc.) Perfo. Engineering Perfo. Engineering Bridge Bridge Model merging & synchronization
  8. 8. 8 + Multi-level MBSE « Core viewpoints » Upstream Engineering Workbench Upstream Engineering Workbench Operational Analysis viewpoint Operational Analysis viewpoint Coupled viewpoints Safety viewpoi nt Safety viewpoi nt Perfo. viewpoi nt Perfo. viewpoi nt Downstream Engineering Workbench Downstream Engineering Workbench Code Generation Decoupled viewpoints Safety Engineering Safety Engineering Cost viewpoi nt Cost viewpoi nt Complete system description System description Co-engineering System Analysis viewpoint System Analysis viewpoint Logical Architecture viewpoint Logical Architecture viewpoint Physical Architecture viewpoint Physical Architecture viewpoint EPBS viewpointEPBS viewpoint Transition bridge Transition bridge (e.g., UML, DSLs, etc.) Perfo. Engineering Perfo. Engineering Bridge Bridge « Core viewpoints » Upstream Engineering Workbench Upstream Engineering Workbench Operational Analysis viewpoint Operational Analysis viewpoint Coupled viewpoints Safety viewpoi nt Safety viewpoi nt Perfo. viewpoi nt Perfo. viewpoi nt Downstream Engineering Workbench Downstream Engineering Workbench Code Generation Decoupled viewpoints Safety Engineering Safety Engineering Cost viewpoi nt Cost viewpoi nt Complete system description System description Co-engineering System Analysis viewpoint System Analysis viewpoint Logical Architecture viewpoint Logical Architecture viewpoint Physical Architecture viewpoint Physical Architecture viewpoint EPBS viewpointEPBS viewpoint Transition bridge Transition bridge (e.g., UML, DSLs, etc.) Perfo. Engineering Perfo. Engineering Bridge Bridge « Core viewpoints » Upstream Engineering Workbench Upstream Engineering Workbench Operational Analysis viewpoint Operational Analysis viewpoint Coupled viewpoints Safety viewpoi nt Safety viewpoi nt Perfo. viewpoi nt Perfo. viewpoi nt Downstream Engineering Workbench Downstream Engineering Workbench Code Generation Decoupled viewpoints Safety Engineering Safety Engineering Cost viewpoi nt Cost viewpoi nt Complete system description System description Co-engineering System Analysis viewpoint System Analysis viewpoint Logical Architecture viewpoint Logical Architecture viewpoint Physical Architecture viewpoint Physical Architecture viewpoint EPBS viewpointEPBS viewpoint Transition bridge Transition bridge (e.g., UML, DSLs, etc.) Perfo. Engineering Perfo. Engineering Bridge Bridge
  9. 9. 9 Collaboration on models @Thales Versioning ≠ Multi-user support VCS (ClearCase, SVN, Git) Shared model Team for Capella V1.0 V2.0
  10. 10. 10 Collaboration on models @Thales Consequence: Coarse-grained branches VCS (ClearCase, SVN, Git) V1.0 V1.1 V1.2V2.0 ... but reporting changes by merge is still needed
  11. 11. 11 Collaboration on models @Thales +Reuse: Happens outside version control & formal workflows
  12. 12. 12 Model Patches in the picture: Why? ▌ Model synchro is everywhere  Engineering process: multi-viewpoint, multi-environment, multi-level  Classical version control  Opportunistic reuse ▌ Need for more flexibility for the end-users  Do not require the source and target models to be available at the same time  Decouple the diff computation time from the diff application (merge) time  Reuse the same update decisions in different contexts
  13. 13. 13 Model Patches in the picture: Why? = + = ▌ Hence Model Patches ▌ Some usage scenarios are clearly identified ... but most remain to be discovered  A technological enabler  relevance in OSS
  14. 14. 14 Model Patches in the landscape ▌ Related work  EMF Notifications & Change model  CDO deltas  EMF Compare  EMF Diff/Merge ▌ Past abandoned attempts  Mpatch / Epatch ▌ Now clear industrial needs
  15. 15. What?(AT LAST, THE FUN STUFF)
  16. 16. 16 Demo Live Demo
  17. 17. 17 Model modified in repository
  18. 18. 18 Workflow: Patch recording from difference Model Modified Model EMF Diff/Merge Diff Patch Recorder Patch target compare read persist
  19. 19. 19 Compare with previous revision and generate patch
  20. 20. 20 Model patch viewer
  21. 21. 21 Apply patch
  22. 22. 22 Workflow: Patch apply and compare Patch Model Patch Applier Resolved Model EMF Diff/Merge Diff reference target comparecopyapply
  23. 23. 23 Compare after merge
  24. 24. 24 Reverse changes
  25. 25. 25 Model patch representation ModelPatch Entry (change type: ADD, REMOVE) ElementEntry FeatureEntry ReferenceEntry AttributeEntry (value) Identifiable (identifier) type context feature target <<ordered>>
  26. 26. 26 Filter changes
  27. 27. 27 EMF persistence
  28. 28. 28 Merge patches as models
  29. 29. 29
  30. 30. Questions ? Still alive? Examples: https://github.com/IncQueryLabs/ecf2017 @IncQueryLabs http://www.incquerylabs.com/ http://www.thalesgroup.com/

×