Skip to main content
Log in

On the benefits of file-level modularity for EMF models

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

Abstract

Model-driven development (MDD) tools based on the Eclipse Modeling Framework (EMF) typically store all elements in a model in a single file which arguably is one of the main reasons why these tools do not scale well and cannot take advantage of existing code versioning systems and other related facilities such as Git and Make. In this work, we describe an approach for storing models in multiple files. We argue that EMF-based MDD tools can benefit significantly from this file-level modularity not only by improving the performance and scalability of basic model operations, but also by simplifying many model management activities through the use of existing code versioning systems and build automation tools. We introduce a domain-specific language that allows defining, at the metamodel level: (1) the mapping between models’ elements and the file structure for model storage and (2) the dependencies between model elements that affect the code generation and compilation (if the integration with code-based tools is required). Our suite then generates an API and scripts to provide support for file-level modularity and facilitate using code-based versioning and build tools. We have used our DSL in the context of Papyrus-RT, an MDD tool for real-time and embedded software, and show how file-level modularity can (1) substantially improve performance and scalability of load and save operations, (2) enable collaborative model development, and (3) facilitate MDD-specific activities such as model comparison and incremental code generation. Our implementation and the models used for evaluation are publicly available.

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.

Institutional subscriptions

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

Similar content being viewed by others

References

  1. AADL meta-model. https://github.com/osate/osate2/blob/master/core/org.osate.aadl2/model/aadl2.ecore. Accessed Apr 2018

  2. BPMN meta-model. https://github.com/ObeoNetwork/BPMN-Designer/blob/master/plugins/org.obeonetwork.dsl.bpmn2/model/BPMN20.ecore. Accessed Apr 2018

  3. EAST-ADL meta-model. https://github.com/ObeoNetwork/EAST-ADL-Designer/blob/master/plugins/org.obeonetwork.dsl.eastadl/model/east_adl.ecore. Accessed Apr 2018

  4. EMF Compare. https://www.eclipse.org/emf/compare/. Accessed Apr 2018

  5. The CDO Model Repository (CDO). http://www.eclipse.org/cdo/. Accessed Apr 2018

  6. Sysml meta-model. https://git.eclipse.org/c/papyrus/org.eclipse.papyrus-sysml.git/tree/core/org.eclipse.papyrus.sysml14/resources/profile/sysml.ecore. Accessed Apr 2018

  7. UML meta-model. https://git.eclipse.org/c/uml2/org.eclipse.uml2.git/tree/plugins/org.eclipse.uml2.uml/model/UML.ecore?id=95a47511090741046b3e492d2f185632c36134ff. Accessed Apr 2018

  8. Xpand. https://www.eclipse.org/modeling/m2t/?project=xpand. Accessed Apr 2018

  9. Eclipse Modeling Framework (EMF). https://eclipse.org/modeling/emf. Accessed Apr 2018

  10. Scaling mercurial at Facebook. https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/. Accessed Apr 2018

  11. Linux kernel repository. https://github.com/torvalds/linux. Accessed Apr 2018

  12. Mercurial. https://www.mercurial-scm.org/. Accessed Apr 2018

  13. Xpointer Current Status. https://www.w3.org/standards/techs/xpointer#stds. Accessed Apr 2018

  14. Alanen, M., Porres, I.: Difference and union of models. In: Stevens, P., Whittle, J., Booch, G. (eds.) UML 2003—The Unified Modeling Language. Modeling Languages and Applications, pp. 2–17. Springer, Berlin (2003)

    Chapter  Google Scholar 

  15. 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 

  16. Apache Foundation. Subversion. https://subversion.apache.org/ (2018). Accessed April 2018

  17. Apache Foundation. Subversion. https://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html (2018). Accessed April 2018

  18. Aracil, J.M.P., Ruiz, D.S.: Towards distributed ecore models. In: 2016 4th International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 209–216. IEEE (2016)

  19. Badreddin, O., Lethbridge, T.C., Forward, A.: A novel approach to versioning and merging model and code uniformly. In: 2014 2nd International Conference on Model-Driven Engineering and Software Development (MODELSWARD), pp. 254–263 (2014)

  20. Barmpis, K., Kolovos, D.S.: Towards scalable querying of large-scale models. In: Cabot, J., Rubin, J. (eds.) Modelling Foundations and Applications, pp. 35–50. Springer, Cham. ISBN 978-3-319-09195-2 (2014)

  21. Barmpis, K., Kolovos, D.: Hawk: towards a scalable model indexing architecture. In: Proceedings of the Workshop on Scalability in Model Driven Engineering, p. 6. ACM (2013)

  22. Bendix, L., Emanuelsson, P.: Diff and merge support for model based development. In: Proceedings of the 2008 International Workshop on Comparison and Versioning of Software Models, CVSM ’08, pp. 31–34. ISBN 978-1-60558-045-6 (2008)

  23. Benelallam, A., Gómez, A., Sunyé, G., Tisi, M., Launay, D.: Neo4EMF, a scalable persistence layer for emf models. In: Cabot, J., Rubin, J. (eds.) Modelling Foundations and Applications, pp. 230–241. Springer, Cham (2014)

    Chapter  Google Scholar 

  24. Benelallam, A., Gómez, A., Sunyé, G., Tisi, M., Launay, D.: Neo4EMF, a scalable persistence layer for emf models. In: European Conference on Modelling Foundations and Applications, pp. 230–241. Springer (2014)

  25. Benelallam, A., Gómez, A., Tisi, M., Cabot, J.: Distributing relational model transformation on mapreduce. J. Syst. Softw. 142, 1–20 (2018)

    Article  Google Scholar 

  26. Bergmann, G., Horváth, Á., Ráth, I., Varró, D., Balogh, A., Balogh, Z., Ökrös, A.: Incremental evaluation of model queries over emf models. In: International Conference on Model Driven Engineering Languages and Systems, pp. 76–90. Springer (2010)

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

    Google Scholar 

  28. Brunet, G., Chechik, M., Easterbrook, S., Nejati, S., Niu, N., Sabetzadeh, M.: A manifesto for model merging. In: Proceedings of the 2006 International Workshop on Global Integrated Model Management, GaMMa ’06, pp. 5–12. ISBN 1-59593-410-3 (2006)

  29. Clasen, C., Del Fabro, M.D., Tisi, M.: Transforming very large models in the cloud: a research roadmap. In: First International Workshop on Model-Driven Engineering on and for the Cloud. Springer (2012)

  30. Daniel, G., Sunyé, G., Cabot, J.: Umltographdb: mapping conceptual schemas to graph databases. In: International Conference on Conceptual Modeling, pp. 430–444. Springer (2016)

  31. Daniel, G., Sunyé, G., Cabot, J.: Mogwaï: a framework to handle complex queries on large models. In: 2016 IEEE Tenth International Conference on Research Challenges in Information Science (RCIS), pp. 1–12. IEEE (2016)

  32. Eclipse Foundation. Eclipse Papyrus for real time (Papyrus-RT). https://www.eclipse.org/papyrus-rt (2016). Retrieved 10 March 2016

  33. Eclipse Foundation. EMFStore. https://www.eclipse.org/emfstore/index.html (2018). Accessed April 2018

  34. Pagán, J.E., Cuadrado, J.S., Molina, J.G.: Morsa: a scalable approach for persisting and accessing large models. In: Whittle, J., Clark, T., Kühne, T. (eds.) Model Driven Engineering Languages and Systems. Springer, Berlin (2011)

    Google Scholar 

  35. Fahrenberg, U., Acher, M., Legay, A., Wąsowski, A.: Sound merging and differencing for class diagrams. In: Gnesi, S., Rensink, A. (eds.) Fundamental Approaches to Software Engineering, pp. 63–78. Springer, Berlin (2014)

    Chapter  Google Scholar 

  36. Fleck, M., Langer, P., Maggi, B., Schneckenburger, R.: Papyrus for information modeling. https://wiki.eclipse.org/Papyrus_for_Information_Modeling (2017). Accessed 1 July 2017

  37. Garcia-Dominguez, A., Barmpis, K., Kolovos, D.S., da Silva, M.A.A., Abherve, A., Bagnato, A.: Integration of a graph-based model indexer in commercial modelling tools. In: Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, MODELS ’16, pp. 340–350, New York, NY, USA. ACM (2016). ISBN 978-1-4503-4321-3. https://doi.org/10.1145/2976767.2976809

  38. Garmendia, A., Guerra, E., Kolovos, D.S., de Lara, J.: EMF splitter: a structured approach to emf modularity. XM@ MoDELS 1239, 22–31 (2014)

    Google Scholar 

  39. Garmendia, A., Guerra, E., de Lara, J., García-Domínnguez, A., Kolovos, D.: Scaling-up domain-specific modelling languages through modularity services. Inf. Softw. Technol. (2019). https://doi.org/10.1016/j.infsof.2019.05.010

    Article  Google Scholar 

  40. GitHub: GitHub Help. https://help.github.com/articles/working-with-large-files/ (2018). Accessed April 2018

  41. GNU: GNU Make. https://www.gnu.org/software/make/ (2018). Accessed April, (2018)

  42. Gómez, A., Tisi, M., Sunyé, G., Cabot, J.: Map-based transparent persistence for very large models. In: Egyed, A., Schaefer, I. (eds.) Fundamental Approaches to Software Engineering, pp. 19–34. Springer, Berlin (2015)

    Chapter  Google Scholar 

  43. Jahed, K., Bagherzadeh, M., Dingel, J.: Paper evaluation repository. https://github.com/moji1/MM_Paper_Evaluation (2018). Retrieved 5 June 2018

  44. Jahed, K., Bagherzadeh, M., Dingel, J.: Modular papyrus-RT. https://github.com/kjahed/papyrusrt-modular.git (2018). Retrieved 1 Oct 2018

  45. Jahed, K., Bagherzadeh, M., Nair, K., Dingel, J.: Model modularity suite. https://github.com/moji1/Modular_Model_Suite.git (2018). Retrieved 5 June 2018

  46. Jimnez-Pastor, A., Garmendia, A., de Lara, J.: Scalable model exploration for model-driven engineering. J. Syst. Softw. 132(C), 204–225 (2017)

    Article  Google Scholar 

  47. Kahani, N., Bagherzadeh, M., Cordy, J.R., Dingel, J., Varró, D.: Survey and classification of model transformation tools. Softw. Syst. Model. (2018). https://doi.org/10.1007/s10270-018-0665-6

    Article  Google Scholar 

  48. Kahani, N., Bagherzadeh, M., Cordy, J.R., Dingel, J., Varró, D.: Survey and classification of model transformation tools. Softw. Syst. Model. 18(4), 2361–2397 (2019)

    Article  Google Scholar 

  49. Kelsen, P., Ma, Q., Glodt, C.: Models within models: taming model complexity using the sub-model lattice. In: Giannakopoulou, D., Orejas, F. (eds.) Fundamental Approaches to Software Engineering, pp. 171–185. Springer, Berlin (2011)

    Chapter  Google Scholar 

  50. Keple, J.: ModelCVS. http://www.modelcvs.org/ (2018). Accessed April 2018

  51. Kepler, J.: AMOR. http://www.modelversioning.org/ (2018). Accessed April 2018

  52. Kolovos, D., Rose, L., Paige, R., Guerra, E., Cuadrado, J., De Lara, J., Ráth, I., Varró, D., Sunyé, G., Tisi, M.: Mondo: scalable modelling and model management on the cloud. In: STAF2015 Project Showcase (2015)

  53. Kolovos, D.S., Paige, R.F., Polack, F.A.C.: The Epsilon transformation language. In: International Conference on Theory and Practice of Model Transformations, pp. 46–60. Springer (2008)

  54. Kolovos, D.S., Paige, R.F., Polack, F.A.C.: The grand challenge of scalability for model driven engineering. In: International Conference on Model Driven Engineering Languages and Systems, pp. 48–53. Springer (2008)

  55. Kolovos, D.S., Di Ruscio, D., Pierantonio, A., Paige, R.F.: Different models for model matching: an analysis of approaches to support model differencing. In: ICSE Workshop on Comparison and Versioning of Software Models, 2009. CVSM’09, pp. 1—6. IEEE (2009)

  56. Kolovos, D.S., Rose, L.M., Matragkas, N., Paige, R.F., Guerra, E., Cuadrado, J.S., De Lara, J., Ráth, I., Varró, D., Tisi, M., et al.: A research roadmap towards achieving scalability in model driven engineering. In: Proceedings of the Workshop on Scalability in Model Driven Engineering, p. 2. ACM (2013)

  57. 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 

  58. Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28(5), 449–462 (2002)

    Article  Google Scholar 

  59. Nejati, S., Sabetzadeh, M., Chechik, M., Easterbrook, S., Zave, P.: Matching and merging of statecharts specifications. In: Proceedings of the 29th International Conference on Software Engineering, ICSE ’07, pp. 54–64. ISBN 0-7695-2828-7 (2007)

  60. Ogunyomi, B., Rose, L.M., Kolovos, D.S.: Incremental execution of model-to-text transformations using property access traces. Softw. Syst. Model. 18, 367–383 (2018)

    Article  Google Scholar 

  61. Ohst, D., Welle, M., Kelter, U.: Differences between versions of UML diagrams. ACM SIGSOFT Softw. Eng. Notes 28, 227–236 (2003)

    Article  Google Scholar 

  62. Pohjonen, R., Tolvanen, J.P., Consulting, M.: Automated production of family members: lessons learned. Proc. PLEES 2, 49–57 (2002)

    Google Scholar 

  63. Rubin, J., Chechik, M.: N-way model merging. In: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, ESEC/FSE 2013, pp. 301–311. ISBN 978-1-4503-2237-9 (2013)

  64. Scheidgen, M., Zubow, A., Fischer, J., Kolbe, T.H.: Automated and transparent model fragmentation for persisting large models. In: R.B. France, J. Kazmeier, R. Breu, C. Atkinson (eds.), Model Driven Engineering Languages and Systems, pp. 102–118. Springer, Berlin. ISBN 978-3-642-33666-9 (2012)

  65. Schmidt, M., Wenzel, S., Kehrer, T., Kelter, U.: History-based merging of models. In: Proceedings of the 2009 ICSE Workshop on Comparison and Versioning of Software Models, CVSM ’09, Washington, DC, USA, pp. 13–18. IEEE Computer Society. ISBN 978-1-4244-3714-6 (2009). https://doi.org/10.1109/CVSM.2009.5071716

  66. Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003)

    Article  Google Scholar 

  67. Steel, J., Drogemuller, R., Toth, B.: Model interoperability in building information modelling. Softw. Syst. Model. 11(1), 99–109 (2012)

    Article  Google Scholar 

  68. Stephan, M., Cordy, J.R.: A survey of model comparison approaches and applications. In: Modelsward, pp. 265–277 (2013)

  69. Struber, D., Rubin, J., Taentzer, G., Chechik, M.: Splitting models using information retrieval and model crawling techniques. In: Proceedings of the 17th International Conference on Fundamental Approaches to Software Engineering, New York, NY, USA, vol. 8411, pp. 47–62. Springer, New York. ISBN 978-3-642-54803-1 (2014). https://doi.org/10.1007/978-3-642-54804-8_4

  70. Torvalds, L.: Git. https://git-scm.com/ (2018). Accessed April 2018

  71. Treude, C., Berlik, S., Wenzel, S., Kelter, U.: Difference computation of large models. In: Proceedings of the 6th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp. 295–304 (2007)

  72. Wenzel, S.: Unique identification of elements in evolving software models. Softw. Syst. Model. 13(2), 679–711 (2014). https://doi.org/10.1007/s10270-012-0311-7

    Article  Google Scholar 

  73. World Wide Web Consortium (W3C) XML linking language (XLink) version 1.1. https://www.w3.org/TR/xlink11/ (2018). Accessed April 2018

  74. Xing, Z., Stroulia, E.: Umldiff: an algorithm for object-oriented design differencing. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, ASE ’05, pp. 54–65. ISBN 1-58113-993-4 (2005)

Download references

Acknowledgements

We acknowledge the support of the Natural Sciences and Engineering Research Council of Canada (NSERC), Ericsson, Zeligsoft Ltd, Malina Software Corp., and Cmind Inc. We thank our industrial partners, in particular, Simon Redding, Bran Selic, Francis Bordeleau, and Ernesto Posse for the close collaboration and their feedback, insights, and expertise.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mojtaba Bagherzadeh.

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

Jahed, K., Bagherzadeh, M. & Dingel, J. On the benefits of file-level modularity for EMF models. Softw Syst Model 20, 267–286 (2021). https://doi.org/10.1007/s10270-020-00804-7

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10270-020-00804-7

Keywords

Navigation