Abstract
Model transformations are essential elements of model-driven engineering (MDE) solutions, as they enable the automatic manipulation of models. MDE promotes the creation of domain-specific metamodels, but without proper reuse mechanisms, model transformations need to be developed from scratch for each new metamodel. In this paper, our goal is to understand whether transformation reuse across metamodels is needed by the community, evaluate its current state, identify practical needs and propose promising lines for further research. For this purpose, we first report on a survey to understand the reuse approaches used currently in practice and the needs of the community. Then, we propose a classification of reuse techniques based on a feature model and compare a sample of specific approaches—model types, concepts, a-posteriori typing, multilevel modeling, typing requirement models, facet-oriented modeling, mapping operators, constraint-based model types, and design patterns for model transformations—based on this feature model and a common example. We discuss strengths and weaknesses of each approach, provide a reading grid used to compare their features, compare with community needs, identify gaps in current transformation reuse approaches in relation to these needs and propose future research directions.
Similar content being viewed by others
Notes
It must be noted that constraint-based model types were proposed before typing requirements models (2014 vs 2017), which take inspiration from that work.
References
Alvarez, C., Casallas, R.: MTC flow: a tool to design, develop and deploy model transformation chains. In: ACadeMics Tooling with Eclipse Workshop. ACM (2013). http://www.mtcflow.com/
Atkinson, C., Kühne, T.: Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simul. 12(4), 290–321 (2002)
Atkinson, C., Gerbig, R., Tunjic, C.V.: Enhancing classic transformation languages to support multi-level modeling. Softw. Syst. Model. 14(2), 645–666 (2015)
Babur, Ö., Cleophas, L., van den Brand, M., Tekinerdogan, B., Aksit, M.: Models, more models, and then a lot more. In: Software Technologies: Applications and Foundations, LNCS, vol. 10748, pp. 129–135. Springer (2017)
Basciani, F., Ruscio, D.D., Iovino, L., Pierantonio, A.: Automated chaining of model transformations with incompatible metamodels. In: Model Driven Engineering Languages and Systems, LNCS, vol. 8767, pp. 602–618. Springer (2014)
Bendraou, R., Desfray, P., Gervais, M.P., Muller, A.: MDA tool components: a proposal for packaging know-how in model driven development. Softw. Syst. Model. 7(3), 329–343 (2008)
Boronat, A.: Structural model subtyping with OCL constraints. In: Software Language Engineering, pp. 194–205. ACM (2017)
Bruel, J.M., Combemale, B., Guerra, E., Jézéquel, J., Kienzle, J., de Lara, J., Mussbacher, G., Syriani, E., Vangheluwe, H.: Model transformation reuse across metamodels—a classification and comparison of approaches. In: Theory and Practice of Model Transformations, LNCS, vol. 10888, pp. 92–109. Springer (2018)
Criado, J., Martínez, S., Iribarne, L., Cabot, J.: Enabling the reuse of stored model transformations through annotations. In: Theory and Practice of Model Transformations, LNCS, vol. 9152, p. 15. Springer (2015)
Czarnecki, K., Helsen, S.: Feature-based survey of model transformation approaches. IBM Syst. J. 45(3), 621–645 (2006)
de Lara, J., Guerra, E.: From types to type requirements: genericity for model-driven engineering. Softw. Syst. Model. 12(3), 453–474 (2013)
de Lara, J., Guerra, E.: Towards the flexible reuse of model transformations: a formal approach based on graph transformation. J. Log. Algebraic Methods Program. 83(5–6), 427–458 (2014)
de Lara, J., Guerra, E.: A posteriori typing for model-driven engineering: concepts, analysis, and applications. ACM Trans. Softw. Eng. Methodol. 25(4), 31:1–31:60 (2017)
de Lara, J., Guerra, E.: Refactoring multi-level models. ACM Trans. Softw. Eng. Methodol. 27(4), 17:1–17:56 (2018)
de Lara, J., Guerra, E., Sánchez Cuadrado, J.: When and how to use multilevel modelling. ACM Trans. Softw. Eng. Methodol. 24(2), 12:1–12:46 (2014)
de Lara, J., Guerra, E., Sánchez Cuadrado, J.: Model-driven engineering with domain-specific meta-modelling languages. Softw. Syst. Model. 14(1), 429–459 (2015)
de Lara, J., Guerra, E., di Ruscio, D., di Rocco, J., Sánchez Cuadrado, J., Iovino, L., Pierantonio, A.: Automated reuse of model transformations through typing requirements models. ACM Trans. Softw. Eng. Methodol. 28(4), 21:1–21:62 (2019)
de Lara, J., di Rocco, J., di Ruscio, D., Guerra, E., Iovino, L., Pierantonio, A., Sánchez Cuadrado, J.: Reusing model transformations through typing requirements models. In: Fundamental Approaches to Software Engineering, LNCS, vol. 10202, pp. 264–282. Springer (2017)
de Lara, J., Guerra, E., Chechik, M., Salay, R.: Model transformation product lines. In: Model Driven Engineering Languages and Systems, pp. 67–77. ACM (2018)
de Lara, J., Guerra, E., Kienzle, J., Hattab, Y.: Facet-oriented modelling: Open objects for model-driven engineering. In: Software Language Engineering, pp. 146–158. ACM (2018)
Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.M.: Melange: a meta-language for modular and reusable development of DSLs. In: Software Language Engineering, pp. 25–36. ACM (2015)
Degueule, T., Combemale, B., Blouin, A., Barais, O., Jézéquel, J.M.: Safe model polymorphism for flexible modeling. Comput. Lang. Syst. Struct. 49, 30 (2016)
Diskin, Z., Maibaum, T., Czarnecki, K.: Intermodeling, queries, and kleisli categories. In: Fundamental Approaches to Software Engineering, LNCS, vol. 7212, pp. 163–177. Springer (2012)
Ergin, H., Syriani, E., Gray, J.: Design pattern oriented development of model transformations. Comput. Lang. Syst. Struct. 46, 106–139 (2016)
Etien, A., Muller, A., Legrand, T., Paige, R.F.: Localized model transformations for building large-scale transformations. Softw. Syst. Model. 14(3), 1189–1213 (2015)
Fleck, M., Troya, J., Kessentini, M., Wimmer, M., Alkhazi, B.: Model transformation modularization as a many-objective optimization problem. IEEE Trans. Softw. Eng. 43(11), 1009–1032 (2017)
Gregor, D.P., Järvi, J., Siek, J.G., Stroustrup, B., Reis, G.D., Lumsdaine, A.: Concepts: linguistic support for generic programming in C++. In: Object-Oriented Programming, Systems, Languages, and Applications, pp. 291–310. ACM (2006)
Group, O.M.: Query/View/Transformation Specification, 1.3 edn. (2016). https://www.omg.org/spec/QVT/About-QVT/
Guerra, E., de Lara, J., Chechik, M., Salay, R.: Analysing meta-model product lines. In: Software Language Engineering, pp. 159–172. ACM (2018)
Guy, C., Combemale, B., Derrien, S., Steel, J., Jézéquel, J.M.: On model subtyping. In: European Conference on Modelling Foundations and Applications, LNCS, vol. 7349, pp. 400–415. Springer (2012)
Jézéquel, J.M., Barais, O., Fleurey, F.: Model driven language engineering with Kermeta. In: Generative and Transformational Techniques in Software Engineering III, LNCS, vol. 6491, pp. 201–221. Springer (2011)
Jézéquel, J., Combemale, B., Barais, O., Monperrus, M., Fouquet, F.: Mashup of metalanguages and its implementation in the kermeta language workbench. Softw. Syst. Model. 14(2), 905–920 (2015)
Jouault, F., Allilaire, F., Bézivin, J., Kurtev, I.: ATL: a model transformation tool. Sci. Comput. Program. 72(1–2), 31–39 (2008)
Juergens, E., Deissenboeck, F., Hummel, B., Wagner, S.: Do code clones matter? In: International Conference on Software Engineering, pp. 485–495. IEEE Computer Society (2009)
Kahani, N., Bagherzadeh, M., Cordy, R., Dingel, J., Varro, D.: Survey and classification of model transformation tools. Softw. Syst. Model. 18, 2361–2397 (2018)
Kalliamvakou, E., Palyart, M., Murphy, G.C., Damian, D.E.: A field study of modellers at work. In: International Workshop on Modeling in Software Engineering, pp. 25–29. IEEE Computer Society (2015)
Kang, K., Cohen, S., Hess, J., Novak, W., Peterson, A.: Feature-oriented domain analysis (FODA) feasibility study. Tech. Rep. CMU/SEI-90-TR-021, Software Engineering Institute, Carnegie Mellon University, Pittsburgh, PA (1990)
Kleppe, A.: MCC: A model transformation environment. In: European Conference on Modelling Foundations and Applications, LNCS, vol. 4066, pp. 173–187. Springer (2006)
Kolovos, D.S., Paige, R.F., Polack, F.A.C.: The Epsilon transformation language. In: Theory and Practice of Model Transformations, LNCS, vol. 5063, pp. 46–60. Springer (2008)
Krueger, C.W.: Software reuse. ACM Comput. Surv. 24(2), 131–183 (1992)
Kusel, A., Schönböck, J., Wimmer, M., Kappel, G., Retschitzegger, W., Schwinger, W.: Reuse in model-to-model transformation languages: are we there yet? Softw. Syst. Model. 14(2), 537–572 (2015)
Lano, K., Rahimi, S.K.: Model-transformation design patterns. IEEE Trans. Softw. Eng. 40(12), 1224–1259 (2014)
Lano, K., Rahimi, S.K., Poernomo, I., Terrell, J., Zschaler, S.: Correct-by-construction synthesis of model transformations using transformation patterns. Softw. Syst. Model. 13(2), 873–907 (2014)
Lano, K., Rahimi, S.K., Tehrani, S.Y., Sharbaf, M.: A survey of model transformation design patterns in practice. J. Syst. Softw. 140, 48–73 (2018)
Lau, K., Wang, Z.: Software component models. IEEE Trans. Softw. Eng. 33(10), 709–724 (2007)
Legros, E., Amelunxen, C., Klar, F., Schürr, A.: Generic and reflective graph transformations for checking and enforcement of modeling guidelines. J. Vis. Lang. Comput. 20(4), 252–268 (2009)
Liebel, G., Marko, N., Tichy, M., Leitner, A., Hansson, J.: Model-based engineering in the embedded systems domain: an industrial survey on the state-of-practice. Softw. Syst. Model. 17(1), 91–113 (2018)
Lúcio, L., Amrani, M., Dingel, J., Lambers, L., Salay, R., Selim, G.M., Syriani, E., Wimmer, M.: Model transformation intents and their properties. Softw. Syst. Model. 15(3), 685–705 (2014)
Macías, F., Rutle, A., Stolz, V., Rodríguez-Echeverría, R., Wolter, U.: An approach to flexible multilevel modelling. Enterp. Model. Inf. Syst. Archit. 13, 10:1–10:35 (2018)
Mengerink, J., Serebrenik, A., Schiffelers, R.R.H., van den Brand, M.G.J.: Automated analyses of model-driven artifacts: obtaining insights into industrial application of MDE. In: International Workshop on Software Measurement, IWSM-Mensura, pp. 116–121. ACM (2017)
Mengerink, J.: The DSL/model co-evolution problem in industrial MDE ecosystems. Ph.D. thesis, Department of Mathematics and Computer Science (2018). Proefschrift
Morin, B., Klein, J., Kienzle, J., Jézéquel, J.M.: Flexible model element introduction policies for aspect-oriented modeling. In: Model Driven Engineering Languages and Systems, LNCS, vol. 6395, pp. 63–77. Springer (2010)
Paige, R.F., Kolovos, D.S., Rose, L.M., Drivalos, N., Polack, F.A.C.: The design of a conceptual framework and technical infrastructure for model management language engineering. In: International Conference on Engineering of Complex Computer Systems, pp. 162–171. IEEE Computer Society (2009)
Perrouin, G., Amrani, M., Acher, M., Combemale, B., Legay, A., Schobbens, P.Y.: Featured model types: towards systematic reuse in modelling language engineering. In: Workshop on Modeling in Software Engineering, pp. 1–7. IEEE (2016)
Rivera, J.E., Ruiz-Gonzalez, D., Lopez-Romero, F., Bautista, J., Vallecillo, A.: Orchestrating ATL model transformations. In: MtATL 2009, 34–46 (2009)
Saks, K.: JSR 318: Enterprise java beans, version 3.1. http://download.oracle.com/otndocs/jcp/ejb-3.1-mrel-evalu-oth-JSpec/ (2009)
Salay, R., Zschaler, S., Chechik, M.: Correct reuse of transformations is hard to guarantee. In: Theory and Practice of Model Transformations, LNCS, vol. 9765, pp. 107–122. Springer (2016)
Sánchez Cuadrado, J., García Molina, J.: Approaches for model transformation reuse: factorization and composition. In: Theory and Practice of Model Transformations, LNCS, vol. 5063, pp. 168–182. Springer (2008)
Sánchez Cuadrado, J., Guerra, E., de Lara, J.: Reverse engineering of model transformations for reusability. In: Theory and Practice of Model Transformations, LNCS, vol. 8568, pp. 186–201. Springer (2014)
Sánchez Cuadrado, J., García Molina, J.: Modularization of model transformations through a phasing mechanism. Softw. Syst. Model. 8(3), 325–345 (2009)
Sánchez Cuadrado, J., Guerra, E., de Lara, J.: A component model for model transformations. IEEE Trans. Softw. Eng. 40(11), 1042–1060 (2014)
Sendall, S., Kozaczynski, W.: Model transformation: the heart and soul of model-driven software development. IEEE Softw. 20(5), 42–45 (2003)
Steel, J., Jézéquel, J.M.: On model typing. Softw. Syst. Model. 6(4), 401–414 (2007)
Steimann, F.: On the representation of roles in object-oriented and conceptual modelling. Data Knowl. Eng. 35(1), 83–106 (2000)
Strüber, D., Rubin, J., Arendt, T., Chechik, M., Taentzer, G., Plöger, J.: Variability-based model transformation: formal foundation and application. Fundam. Approaches Softw. Eng. 30(1), 133–162 (2018)
Survey raw material. http://bit.ly/bellairs18. Accessed 11 Nov 2018
Sutîi, A.M., van den Brand, M., Verhoeff, T.: Exploration of modularity and reusability of domain-specific languages: an expression DSL in metamod. Comput. Lang. Syst. Struct. 51, 48–70 (2018)
Van Gorp, P.: Applying traceability and cloning techniques to compose input-destructive model transformations into an input-preserving chain. In: Workshop on Composition and Evolution of Model Transformations. King’s College (2011)
van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala component model for consumer electronics software. Computer 33(3), 78–85 (2000)
Vanhooff, B., Ayed, D., Baelen, S.V., Joosen, W., Berbers, Y.: UniTI: a unified transformation infrastructure. In: Model Driven Engineering Languages and Systems, LNCS, vol. 4735, pp. 31–45. Springer (2007)
Varró, D., Pataricza, A.: Generic and meta-transformations for model transformation engineering. In: The Unified Modeling Language. Modeling Languages and Applications, LNCS, vol. 3273, pp. 290–304. Springer (2004)
Wagelaar, D., Straeten, R.V.D., Deridder, D.: Module superimposition: a composition technique for rule-based model transformation languages. Softw. Syst. Model. 9(3), 285–309 (2010)
Whittle, J., Hutchinson, J.E., Rouncefield, M.: The state of practice in model-driven engineering. IEEE Softw. 31(3), 79–85 (2014)
Wimmer, M., Kappel, G., Kusel, A., Retschitzegger, W., Schönböck, J., Schwinger, W.: Surviving the heterogeneity jungle with composite mapping operators. In: Theory and Practice of Model Transformations, LNCS, vol. 6142, pp. 260–275. Springer (2010)
Wimmer, M., Kappel, G., Kusel, A., Retschitzegger, W., Schönböck, J., Schwinger, W., Kolovos, D.S., Paige, R.F., Lauder, M., Schürr, A., Wagelaar, D.: Surveying rule inheritance in model-to-model transformation languages. J. Object Technol. 11(2), 3-1 (2012)
Wuliang, S., Combemale, B., Derrien, S., France, R.: Using model types to support contract-aware model substitutability. In: European Conference on Modelling Foundations and Applications, LNCS, vol. 7949, pp. 118–133. Springer (2013)
Zschaler, S.: Towards constraint-based model types: A generalised formal foundation for model genericity. In: Workshop on View-Based, Aspect-Oriented and Orthographic Software Modelling, pp. 11–18. ACM (2014)
Acknowledgements
We are grateful to all participants in the survey for their support, and to all participants in the 1st workshop on Unifying Software Reuse at Bellairs for their feedback on the feature model. This work has been partially funded by the Spanish Ministry of Science (RTI2018-095255-B-I00) and the Madrid Region (S2018/TCS-4314).
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by Dr. Jesús Sánchez Cuadrado and Arend Rensink.
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
Bruel, JM., Combemale, B., Guerra, E. et al. Comparing and classifying model transformation reuse approaches across metamodels. Softw Syst Model 19, 441–465 (2020). https://doi.org/10.1007/s10270-019-00762-9
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10270-019-00762-9