Skip to main content
Log in

DSMCompare: domain-specific model differencing for graphical domain-specific languages

  • Regular Paper
  • Published:
Software and Systems Modeling Aims and scope Submit manuscript

Abstract

During the development of a software project, different developers collaborate on creating and changing models. These models evolve and need to be versioned. Over the past several years, progress has been made in offering dedicated support for model versioning that improves on what is being supported by text-based version control systems. However, there is still need to understand model differences in terms of the semantics of the modeling language, and to visualize the changes using its concrete syntax. To address these issues, we propose a comprehensive approach—called DSMCompare—that considers both the abstract and the concrete syntax of a domain-specific language (DSL) when expressing model differences, and which supports defining domain-specific semantics for specific difference patterns. The approach is based on the automatic extension of the DSL to enable the representation of changes and on the automatic adaptation of its graphical concrete syntax to visualize the differences. In addition, we allow for the definition of semantic differencing rules to capture recurrent domain-specific difference patterns. Since these rules can be conflicting with each other, we introduce algorithms for conflict resolution and rule scheduling. To demonstrate the applicability and effectiveness of our approach, we report on evaluations based on synthetic models and on version histories of models developed by third parties.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16

Similar content being viewed by others

Notes

  1. https://www.arduino.cc/

  2. In this paper, we use “domain-specific model semantics” to refer to the meaning that a human assigns to a model when looking at it, not to the execution semantics of the model.

  3. This is a transformation that takes as input a model and produces a different output model. This contrasts with inplace transformations, which are applied directly on the input model.

  4. https://github.com/beanshell/beanshell

  5. https://github.com/geodes-sms/DSMCompare/

  6. https://www.metamodelrefactoring.org and https://refactoring.com respectively

  7. Since each rule creates a single semantic difference object, this number is the same as the number of matches.

  8. https://www.arduino.cc/

  9. https://github.com/mbats/arduino/

  10. https://git.eclipse.org/c/uml2/org.eclipse.uml2.git/tree/plugins/org.eclipse.uml2.uml/model

  11. https://www.eclipse.org/modeling/gmp/

References

  1. Kelly, S., Tolvanen, J.-P.: Domain-specific modeling - enabling full code generation. Wiley, NY (2008)

    Book  Google Scholar 

  2. Schmidt, D.C.: Guest editor’s introduction: Model-driven engineering. Computer 39(2), 25–31 (2006)

    Article  Google Scholar 

  3. Paige, R.F., Matragkas, N.D., Rose, L.M.: Evolving models in model-driven engineering: State-of-the-art and future challenges. J. Syst. Softw. 111, 272–280 (2016)

    Article  Google Scholar 

  4. Brosch, P., Kappel, G., Langer, P., Seidl, M., Wieland, K., Wimmer, M.: An introduction to model versioning. In SFM, volume 7320 of LNCS, pages 336–398. Springer, (2012)

  5. OMG. XMI metadata interchange v. 2.5.1. https://www.omg.org/spec/XMI/About-XMI/, last accessed (2021)

  6. Altmanninger, K., Kappel, G., Kusel, A., Retschitzegger, W., Seidl, M., Schwinger, W., Wimmer, M.: AMOR – towards adaptable model versioning. In Workshop on Model Co-Evolution and Consistency Management, (2008)

  7. CDO Model repository. https://www.eclipse.org/cdo/, last accessed January 2021

  8. Kappel, G., Kapsammer, E., Kramler, G., Reiter, T., Retschitzegger, W., Schwinger, W.: Towards a semantic infrastructure supporting model-based tool integration. In International Workshop on Global Integrated Model Management, pages 43–46. ACM (2006)

  9. Koegel, M., Helming, J.: EMFStore: a model repository for EMF models. In International Conference on Software Engineering, volume 2, pages 307–308. ACM (2010)

  10. EMF Compare. https://www.eclipse.org/emf/compare/, last accessed (2021)

  11. Brosch, P., Seidl, M., Wieland, K., Wimmer, M.: We can work it out: Collaborative conflict resolution in model versioning. In European Conference on Computer-Supported Cooperative Work, pages 207–214. Springer (2009)

  12. Schwägerl, F., Uhrig, S., Westfechtel, B.: A graph-based algorithm for three-way merging of ordered collections in EMF models. Sci. Comput. Program. 113, 51–81 (2015)

    Article  Google Scholar 

  13. Sirius. https://www.eclipse.org/sirius/, last accessed (2021)

  14. Zadahmad, M., Syriani, E., Alam, O., Guerra, E., de Lara, J.: Domain-specific model differencing in visual concrete syntax. In Software Language Engineering, pages 100–112. ACM (2019)

  15. Kehrer, T., Kelter, U., Taentzer, G.: A rule-based approach to the semantic lifting of model differences in the context of model versioning. In Automated Software Engineering, pages 163–172. IEEE Computer Society (2011)

  16. Cicchetti, A., Ruscio, D.D., Pierantonio, A.: A metamodel independent approach to difference representation. J. Object Technol. 6(9), 165–185 (2007)

    Article  Google Scholar 

  17. Syriani, E., Vangheluwe, H.: A modular timed graph transformation language for simulation-based design. Softw. Syst. Model. 12(2), 387–414 (2013)

    Article  Google Scholar 

  18. GMF. https://www.eclipse.org/gmf-tooling/, 2019. (last accessed in 2019)

  19. Kelly, S., Lyytinen, K., Rossi, M.: MetaEdit+ A fully configurable multi-user and multi-tool CASE and CAME environment. In Conference on Advanced Information Systems Engineering, volume 1080 of LNCS, pages 1–21. Springer (1996)

  20. Syriani, E., Vangheluwe, H., Mannadiar, R., Hansen, C., Van Mierlo, S., Ergin, H.: AToMPM: A web-based modeling environment. In MODELS’13 Invited Talks, Demonstration Session, Poster Session, and ACM Student Research Competition, volume 1115, pages 21–25. CEUR-WS.org (2013)

  21. OMG. The Object Constraint Language (OCL) v. 2.4. Specification. http://www.omg.org/spec/OCL/, 2014. (last accessed in January 2021)

  22. Lin, Y., Gray, J., Jouault, F.: DSMDiff: a differentiation tool for domain-specific models. Eur. J. Inf. Syst. 16(4), 349–361 (2007)

    Article  Google Scholar 

  23. Brun, C., Pierantonio, A.: Model differences in the eclipse modelling framework. UPGRADE, Eur. J. Informatics Prof. 9(2), 29–34 (2008)

    Google Scholar 

  24. Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Fundamentals of algebraic graph transformation. Monographs in Theoretical Computer Science. An EATCS Series. Springer (2006)

  25. Kühne, T., Mezei, G., Syriani, E., Vangheluwe, H., Wimmer, M.: Explicit transformation modeling. In MODELS 2009 Workshops, volume 6002 of LNCS, pages 240–255. Springer (2009)

  26. Arendt, T., Biermann, E., Jurack, S., Krause, C., Taentzer, G.: Henshin: Advanced concepts and tools for in-place EMF model transformations. In Model Driven Engineering Languages and Systems, volume 6394 of LNCS, pages 121–135. Springer, (2010)

  27. Strüber, D., Born, K., Gill, K. D., Groner, R., Kehrer, T., Ohrndorf, M., Tichy, M.: Henshin: A usability-focused framework for emf model transformation development. In International Conference on Graph Transformation, volume 10373 of LNCS, pages 196–208. Springer (2017)

  28. Biermann, E., Ermel, C., Taentzer, G.: Formal foundation of consistent emf model transformations by algebraic graph transformation. Softw. Syst. Model. 11(2), 227–250 (2012)

    Article  Google Scholar 

  29. de Lara, J., Bardohl, R., Ehrig, H., Ehrig, K., Prange, U., Taentzer, G.: Attributed graph transformation with node type inheritance. Theoret. Comput. Sci. 376(3), 139–163 (2007)

    Article  MathSciNet  Google Scholar 

  30. Lambers, L., Ehrig, H., Orejas, F.: Conflict detection for graph transformation with negative application conditions. In International Conference on Graph Transformation, volume 4178 of LNCS, pages 61–76. Springer (2006)

  31. Lambers, L., Strüber, D., Taentzer, G., Born, K., Huebert, J.: Multi-granular conflict and dependency analysis in software engineering based on graph transformation. In International Conference on Software Engineering, pages 716–727. ACM (2018)

  32. Al-Herz, A., Pothen, A.: A 2/3-approximation algorithm for vertex-weighted matching. Discrete Applied Mathematics, (2019)

  33. Tarjan, R.: Depth-first search and linear graph algorithms. SIAM J. Comput. 1(2), 146–160 (1972)

    Article  MathSciNet  Google Scholar 

  34. Herrmannsdoerfer, M., Ratiu, D., Wachsmuth, G.: Language evolution in practice: The history of GMF. In Software Language Engineering, volume 5969 of LNCS, pages 3–22. Springer (2009)

  35. Tanhaei, M., Habibi, J., Mirian-Hosseinabadi, S.-H.: Automating feature model refactoring: A model transformation approach. Inf. Softw. Technol. 80, 138–157 (2016)

    Article  Google Scholar 

  36. Stephan, M., Cordy, J. R.: A survey of model comparison approaches and applications. In Model-Driven Engineering and Software Development, 265–277. SciTePress (2013)

  37. Kolovos, D., Di Ruscio, D., Pierantonio, A., Paige R.: Different models for model matching: An analysis of approaches to support model differencing. In Workshop on Comparison and Versioning of Software Models, pages 1–6. IEEE (2009)

  38. Langer, P., Wimmer, M., Gray, J., Kappel, G., Vallecillo, A.: Language-specific model versioning based on signifiers. Journal of Object Technology 11(3), 4–1 (2012)

    Article  Google Scholar 

  39. Xing, Z., Stroulia, E.: UMLDiff: an algorithm for object-oriented design differencing. In Automated software engineering, pages 54–65 (2005)

  40. Maoz, S., Ringert, J. O., Rumpe, B.: A manifesto for semantic model differencing. In MODELS 2010 Workshops, volume 6627 of LNCS, pages 194–203. Springer (2011)

  41. Maoz, S., Ringert, J.O.: A framework for relating syntactic and semantic model differences. Softw. Syst. Model. 17(3), 753–777 (2018)

    Article  Google Scholar 

  42. Holthusen, S., Wille, D., Legat, C., Beddig, S., Schaefer, I., Vogel-Heuser, B.: Family model mining for function block diagrams in automation software. In International Software Product Line Conference: Companion Volume for Workshops, Demonstrations and Tools, volume 2, pages 36–43. ACM (2014)

  43. Reuling, D., Lochau, M., Kelter, U.: From imprecise n-way model matching to precise n-way model merging. J. Object Technol. 18(2), 8:1-20 (2019)

    Article  Google Scholar 

  44. García, J., Diaz, O., Azanza, M.: Model transformation co-evolution: A semi-automatic approach. In Software Language Engineering, volume 7745 of LNCS, pages 144–163. Springer (2013)

  45. Vermolen, S. D., Wachsmuth, G., Visser, E.: Reconstructing complex metamodel evolution. In Software Language Enginerring, volume 6940 of LNCS, pages 201–221. Springer (2012)

  46. Gleicher, M.: Considerations for visualizing comparison. Trans. Vis. Comput. Gr. 24(1), 413–423 (2018)

    Article  Google Scholar 

  47. Brosch, P., Seidl, M., Wimmer, M., Kappel, G.: Conflict visualization for evolving UML models. J. Object Technol. 11(3), 2:1-30 (2012)

    Article  Google Scholar 

  48. Schipper, A., Fuhrmann, H., von Hanxleden, R.: Visual comparison of graphical models. In International Conference on Engineering of Complex Computer Systems, pages 335–340. IEEE (2009)

  49. Mehra, A., Grundy, J. C., Hosking J. G.: A generic approach to supporting diagram differencing and merging for collaborative design. In Automated Software Engineering, pages 204–213. ACM (2005)

  50. Ohst, D., Welle, M., Kelter, U.: Differences between versions of UML diagrams. In Proceedings of the 9th European software engineering conference held jointly with 11th international symposium on Foundations of software engineering, pages 227–236. ACM (2003)

  51. van den Brand, M., Protić, Z., Verhoeff, T.: Generic tool for visualization of model differences. In International Workshop on Model Comparison in Practice, pages 66–75. ACM (2010)

  52. Wenzel, S.: Scalable visualization of model differences. In Workshop on Comparison and versioning of software models, pages 41–46. ACM (2008)

  53. Altmanninger, K., Seidl, M., Wimmer, M.: A survey on model versioning approaches. Int. J. Web Inf. Syst. 5(3), 271–304 (2009)

    Article  Google Scholar 

  54. Brosch, P., Seidl, M., Kappel, G.: A recommender for conflict resolution support in optimistic model versioning. In SPLASH/OOPSLA Companion, pages 43–50. ACM (2010)

  55. Espinazo-Pagán, J., García-Molina, J.: A homogeneous repository for collaborative mde. In International Workshop on Model Comparison in Practice, pages 56–65. ACM (2010)

  56. Espinazo-Pagán, J., Cuadrado, J. S., Molina, J. G.: Morsa: A scalable approach for persisting and accessing large models. In Model Driven Engineering Languages and Systems, volume 6981 of LNCS, pages 77–92. Springer (2011)

  57. LabView. https://www.ni.com/en-us/support/documentation/supplemental/21/managing-labview-vi-and-application-revision-history.html, last accessed May 2021

  58. MetaEdit+. https://www.metacase.com/news/smart_model_versioning.html, last accessed May 2021

  59. MPS. Version control. https://www.jetbrains.com/help/mps/version-control-integration.html, last accessed May 2021

  60. MPS. Differences viewer for files. https://www.jetbrains.com/help/mps/differences-viewer.html, last accessed May 2021

  61. Simulink. https://www.mathworks.com/help/simulink/ug/about-simulink-model-comparison.html, last accessed (2021)

  62. SystemWeaver. https://support.systemweaver.se/support/solutions/articles/31000156469-versioning-in-systemweaver, last accessed May 2021

  63. Akdur, D., Garousi, V., Demirörs, O.: A survey on modeling and model-driven engineering practices in the embedded software industry. J. Syst. Architect. 91, 62–82 (2018)

    Article  Google Scholar 

  64. Mohagheghi, P., Gilani, W., Stefanescu, A., Fernandez, M.A., Nordmoen, B., Fritzsche, M.: Where does model-driven engineering help? experiences from three industrial cases. Softw. Syst. Model. 12(3), 619–639 (2013)

    Article  Google Scholar 

  65. Störrle, H.: Towards clone detection in uml domain models. In European Conference on Software Architecture: Companion Volume, pages 285–293. ACM (2010)

  66. Störrle, H.: Cost-effective evolution of research prototypes into end-user tools. Sci. Comput. Program. 134, 47–60 (2017)

    Article  Google Scholar 

  67. Babur, Ö., Cleophas, L., van den Brand, M.: Metamodel clone detection with SAMOS. J. Comput. Lang. 51, 57–74 (2019)

    Article  Google Scholar 

  68. Basciani, F., Rocco, J., Di Ruscio, D., Salle, A., Iovino, L., Pierantonio, A.: MDEForge: an extensible web-based modeling platform. In International Workshop on Model-Driven Engineering on and for the Cloud, volume 1242, pages 66–75. CEUR-WS.org (2014)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Eugene Syriani.

Additional information

Communicated by Juha-Pekka Tolvanen.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Zadahmad, M., Syriani, E., Alam, O. et al. DSMCompare: domain-specific model differencing for graphical domain-specific languages. Softw Syst Model 21, 2067–2096 (2022). https://doi.org/10.1007/s10270-021-00971-1

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-021-00971-1

Keywords

Navigation