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.
Similar content being viewed by others
References
AADL meta-model. https://github.com/osate/osate2/blob/master/core/org.osate.aadl2/model/aadl2.ecore. Accessed Apr 2018
BPMN meta-model. https://github.com/ObeoNetwork/BPMN-Designer/blob/master/plugins/org.obeonetwork.dsl.bpmn2/model/BPMN20.ecore. Accessed Apr 2018
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
EMF Compare. https://www.eclipse.org/emf/compare/. Accessed Apr 2018
The CDO Model Repository (CDO). http://www.eclipse.org/cdo/. Accessed Apr 2018
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
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
Xpand. https://www.eclipse.org/modeling/m2t/?project=xpand. Accessed Apr 2018
Eclipse Modeling Framework (EMF). https://eclipse.org/modeling/emf. Accessed Apr 2018
Scaling mercurial at Facebook. https://engineering.fb.com/core-data/scaling-mercurial-at-facebook/. Accessed Apr 2018
Linux kernel repository. https://github.com/torvalds/linux. Accessed Apr 2018
Mercurial. https://www.mercurial-scm.org/. Accessed Apr 2018
Xpointer Current Status. https://www.w3.org/standards/techs/xpointer#stds. Accessed Apr 2018
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)
Altmanninger, K., Seidl, M., Wimmer, M.: A survey on model versioning approaches. Int. J. Web Inf. Syst. 5(3), 271–304 (2009)
Apache Foundation. Subversion. https://subversion.apache.org/ (2018). Accessed April 2018
Apache Foundation. Subversion. https://svn.apache.org/repos/asf/subversion/trunk/notes/subversion-design.html (2018). Accessed April 2018
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)
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)
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)
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)
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)
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)
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)
Benelallam, A., Gómez, A., Tisi, M., Cabot, J.: Distributing relational model transformation on mapreduce. J. Syst. Softw. 142, 1–20 (2018)
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)
Brun, C., Pierantonio, A.: Model differences in the eclipse modeling framework. UPGRADE Eur. J. Inform. Prof. 9(2), 29–34 (2008)
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)
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)
Daniel, G., Sunyé, G., Cabot, J.: Umltographdb: mapping conceptual schemas to graph databases. In: International Conference on Conceptual Modeling, pp. 430–444. Springer (2016)
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)
Eclipse Foundation. Eclipse Papyrus for real time (Papyrus-RT). https://www.eclipse.org/papyrus-rt (2016). Retrieved 10 March 2016
Eclipse Foundation. EMFStore. https://www.eclipse.org/emfstore/index.html (2018). Accessed April 2018
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)
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)
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
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
Garmendia, A., Guerra, E., Kolovos, D.S., de Lara, J.: EMF splitter: a structured approach to emf modularity. XM@ MoDELS 1239, 22–31 (2014)
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
GitHub: GitHub Help. https://help.github.com/articles/working-with-large-files/ (2018). Accessed April 2018
GNU: GNU Make. https://www.gnu.org/software/make/ (2018). Accessed April, (2018)
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)
Jahed, K., Bagherzadeh, M., Dingel, J.: Paper evaluation repository. https://github.com/moji1/MM_Paper_Evaluation (2018). Retrieved 5 June 2018
Jahed, K., Bagherzadeh, M., Dingel, J.: Modular papyrus-RT. https://github.com/kjahed/papyrusrt-modular.git (2018). Retrieved 1 Oct 2018
Jahed, K., Bagherzadeh, M., Nair, K., Dingel, J.: Model modularity suite. https://github.com/moji1/Modular_Model_Suite.git (2018). Retrieved 5 June 2018
Jimnez-Pastor, A., Garmendia, A., de Lara, J.: Scalable model exploration for model-driven engineering. J. Syst. Softw. 132(C), 204–225 (2017)
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
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)
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)
Keple, J.: ModelCVS. http://www.modelcvs.org/ (2018). Accessed April 2018
Kepler, J.: AMOR. http://www.modelversioning.org/ (2018). Accessed April 2018
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)
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)
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)
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)
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)
Lin, Y., Gray, J., Jouault, F.: Dsmdiff: a differentiation tool for domain-specific models. Eur. J. Inf. Syst. 16(4), 349–361 (2007)
Mens, T.: A state-of-the-art survey on software merging. IEEE Trans. Softw. Eng. 28(5), 449–462 (2002)
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)
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)
Ohst, D., Welle, M., Kelter, U.: Differences between versions of UML diagrams. ACM SIGSOFT Softw. Eng. Notes 28, 227–236 (2003)
Pohjonen, R., Tolvanen, J.P., Consulting, M.: Automated production of family members: lessons learned. Proc. PLEES 2, 49–57 (2002)
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)
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)
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
Selic, B.: The pragmatics of model-driven development. IEEE Softw. 20(5), 19–25 (2003)
Steel, J., Drogemuller, R., Toth, B.: Model interoperability in building information modelling. Softw. Syst. Model. 11(1), 99–109 (2012)
Stephan, M., Cordy, J.R.: A survey of model comparison approaches and applications. In: Modelsward, pp. 265–277 (2013)
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
Torvalds, L.: Git. https://git-scm.com/ (2018). Accessed April 2018
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)
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
World Wide Web Consortium (W3C) XML linking language (XLink) version 1.1. https://www.w3.org/TR/xlink11/ (2018). Accessed April 2018
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)
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
Corresponding author
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
About this article
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-020-00804-7