skip to main content
research-article

Refactoring Multi-Level Models

Published: 16 November 2018 Publication History

Abstract

Multi-level modelling promotes flexibility in modelling by enabling the use of several meta-levels instead of just two, as is the case in mainstream two-level modelling approaches. While this approach leads to simpler models for some scenarios, it introduces an additional degree of freedom as designers can decide the meta-level where an element should reside, having to ascertain the suitability of such decisions.
In this respect, model refactorings have been successfully applied in the context of two-level modelling to rearrange the elements of a model while preserving its meaning. Following this idea, we propose a catalogue of 17 novel refactorings specific to multi-level models. Their objective is to help designers in rearranging elements across and within meta-levels and exploring the consequences. In this article, we detail each refactoring in the catalogue, show a classification across different dimensions, and describe the support we provide in our MetaDepth tool. We present two experiments to assess two aspects of our refactorings. The first one validates the predicted semantic side effects of the refactorings on the basis of more than 210.000 refactoring applications. The second one measures the impact of refactorings on three quality attributes of multi-level models.

References

[1]
João Paulo A. Almeida, Ulrich Frank, and Thomas Kühne. 2017. Multi-level modelling (Dagstuhl seminar 17492). Dagstuhl Rep. 7, 12 (2017), 18--49. See also http://www.dagstuhl.de/en/program/calendar/semhp/?semnr=17492.
[2]
Davide Arcelli, Vittorio Cortellessa, and Daniele Di Pompeo. 2018. Performance-driven software model refactoring. Info. Softw. Technol. 95 (2018), 366--397.
[3]
Colin Atkinson, Ralph Gerbig, and Mathias Fritzsche. 2015. A multi-level approach to modeling language extension in the enterprise systems domain. Info. Syst. 54 (2015), 289--307.
[4]
Colin Atkinson, Ralph Gerbig, and Bastian Kennel. 2012. On-the-fly emendation of multi-level models. In Proceedings of the ECMFA (LNCS), Vol. 7349. Springer, Berlin, 194--209.
[5]
Colin Atkinson, Bastian Kennel, and Björn Goß. 2011. Supporting constructive and exploratory modes of modeling in multi-level ontologies. In Proceedings of the SWESE. 1--15.
[6]
Colin Atkinson and Thomas Kühne. 2002. Rearchitecting the UML infrastructure. ACM Trans. Model. Comput. Simul. 12, 4 (2002), 290--321.
[7]
Colin Atkinson and Thomas Kühne. 2008. Reducing accidental complexity in domain models. Softw. Syst. Model. 7, 3 (2008), 345--359.
[8]
Colin Atkinson and Thomas Kühne. 2017. On evaluating multi-level modeling. In Proceedings of the MODELS (CEUR Workshop), Vol. 2019. 274--277.
[9]
Jagdish Bansiya and Carl G. Davis. 2002. A hierarchical model for object-oriented design quality assessment. IEEE Trans. Softw. Eng. 28, 1 (2002), 4--17.
[10]
Gabriele Bavota, Andrea De Lucia, Andrian Marcus, and Rocco Oliveto. 2010. A two-step technique for extract class refactoring. In Proceedings of the ASE. ACM, New York, NY, 151--154.
[11]
Gabriele Bavota, Andrea De Lucia, and Rocco Oliveto. 2011. Identifying extract class refactoring opportunities using structural and semantic cohesion measures. J. Syst. Softw. 84, 3 (2011), 397--414.
[12]
Jean Bézivin and Olivier Gerbé. 2001. Towards a precise definition of the OMG/MDA framework. In Proceedings of the ASE. IEEE Computer Society, Washington, DC, 273--280.
[13]
Marco Brambilla, Jordi Cabot, and Manuel Wimmer. 2012. Model-Driven Software Engineering in Practice. Morgan & Claypool.
[14]
Stefan Bunk, Fabian Pittke, and Jan Mendling. 2017. Aligning Process Model Terminology with Hypernym Relations. Springer International Publishing, Cham, 105--123.
[15]
Erik Burger and Boris Gruschko. 2010. A change metamodel for the evolution of MOF-based metamodels. In Modellierung (LNI), Vol. 161. GI, 285--300.
[16]
Antonio Cicchetti, Davide Di Ruscio, Romina Eramo, and Alfonso Pierantonio. 2008. Automating co-evolution in model-driven engineering. In Proceedings of the EDOC. IEEE Computer Society, Washington, DC, 222--231.
[17]
Tony Clark, Paul Sammut, and James S. Willans. 2015. Super-languages: Developing languages and applications with XMF (Second Edition). CoRR abs/1506.03363. Retrieved from http://arxiv.org/abs/1506.03363.
[18]
Brett Daniel, Danny Dig, Kely Garcia, and Darko Marinov. 2007. Automated testing of refactoring engines. In Proceedings of the ESEC-FSE. ACM, New York, NY, 185--194.
[19]
Victorio Albani de Carvalho and João Paulo A. Almeida. 2018. Toward a well-founded theory for multi-level conceptual modeling. Softw. Syst. Model. 17, 1 (2018), 205--231.
[20]
Juan de Lara and Esther Guerra. 2010. Deep meta-modelling with MetaDepth. In Proceedings of the TOOLS (LNCS), Vol. 6141. Springer, Berlin, 1--20. See also http://metaDepth.org.
[21]
Juan de Lara and Esther Guerra. 2017. A posteriori typing for model-driven engineering: Concepts, analysis, and applications. ACM Trans. Softw. Eng. Methodol. 25, 4 (2017), 31:1--31:60.
[22]
Juan de Lara, Esther Guerra, Ruth Cobos, and Jaime Moreno-Llorena. 2014b. Extending deep meta-modelling for practical model-driven engineering. Comput. J. 57, 1 (2014), 36--58.
[23]
Juan de Lara, Esther Guerra, and Jesús Sánchez Cuadrado. 2014a. When and how to use multilevel modelling. ACM Trans. Softw. Eng. Methodol. 24, 2 (2014), 12:1--12:46.
[24]
Juan de Lara, Esther Guerra, and Jesús Sánchez Cuadrado. 2015. Model-driven engineering with domain-specific meta-modelling languages. Soft. Syst. Model. 14, 1 (2015), 429--459.
[25]
H.-Christian Estler and Heike Wehrheim. 2008. Alloy as a refactoring checker? Electr. Notes Theor. Comput. Sci. 214 (2008), 331--357.
[26]
Walid Fdhila, Conrad Indiono, Stefanie Rinderle-Ma, and Manfred Reichert. 2015. Dealing with change in process choreographies: Design and implementation of propagation algorithms. Info. Syst. 49 (2015), 1--24.
[27]
Claudenir Fonseca. 2017. ML2: An Expressive Multi-level Modeling Conceptual Modeling Language. Master’s thesis. Universidade Federal do Espirito Santo, Brazil.
[28]
Martin Fowler. 1999. Refactoring—Improving the Design of Existing Code. Addison-Wesley.
[29]
Ulrich Frank. 2014. Multilevel modeling - Toward a new paradigm of conceptual modeling and information systems design. Bus. Info. Syst. Eng. 6, 6 (2014), 319--337.
[30]
Ralph Gerbig. 2017. Deep, Seamless, Multi-format, Multi-notation Definition and Use of Domain-specific Languages. Ph.D. Dissertation. University of Mannheim.
[31]
Adnane Ghannem, Ghizlane El Boussaidi, and Marouane Kessentini. 2016. On the use of design defect examples to detect model refactoring opportunities. Softw. Qual. J. 24, 4 (2016), 947--965.
[32]
Rohit Gheyi, Tiago Massoni, and Paulo Borba. 2005. A rigorous approach for proving model refactorings. In Proceedings of the ASE. ACM, New York, NY, 372--375.
[33]
Martin Gogolla, Jean-Marie Favre, and Fabian Büttner. 2005. On squeezing M0, M1, M2, and M3 into a single object diagram. In Proceedings of the Workshop on Tool Support for OCL and Related Formalisms.
[34]
Gerd Gröner, Fernando Silva Parreiras, and Steffen Staab. 2010. Semantic recognition of ontology refactoring. In Proceedings of the ISWC (LNCS), Vol. 6496. Springer, Berlin, 273--288.
[35]
Nicola Guarino. 2004. Toward a formal evaluation of ontology quality. IEEE Intell. Syst. 19 (2004), 78--80.
[36]
Esther Guerra and Juan de Lara. 2017. Automated analysis of integrity constraints in multi-level models. Data Knowl. Eng. 107 (2017), 1--23.
[37]
Regina Hebig, Djamel Eddine Khelladi, and Reda Bendraou. 2017. Approaches to co-evolution of metamodels and models: A survey. IEEE Trans. Softw. Eng. 43, 5 (2017), 396--414.
[38]
Muzaffar Igamberdiev, Georg Grossmann, Matt Selway, and Markus Stumptner. 2018. An integrated multi-level modeling approach for industrial-scale data interoperability. Soft. Syst. Model. 17, 1 (2018), 269--294.
[39]
Daniel Jackson. 2002. Alloy: A lightweight object modelling notation. ACM Trans. Softw. Eng. Methodol. 11, 2 (2002), 256--290.
[40]
Matthias Jahn, Bastian Roth, and Stefan Jablonski. 2014. Instance specialization—A pattern for multi-level metamodelling. In Proceedings of the MULTI@MODELS (CEUR), Vol. 1286. CEUR-WS.org, 23--32.
[41]
Manfred A. Jeusfeld and Bernd Neumayr. 2016. DeepTelos: Multi-level modeling with most general instances. In Proceedings of the ER (LNCS), Vol. 9974. Springer International Publishing, Cham, 198--211.
[42]
Gerd Kainz, Christian Buckl, and Alois Knoll. 2011. Automated model-to-metamodel transformations based on the concepts of deep instantiation. In Proceedings of the MODELS (LNCS), Vol. 6981. Springer, Berlin, 17--31.
[43]
Shekoufeh Kolahdouz Rahimi, Kevin Lano, Suresh Pillay, Javier Troya, and Pieter Van Gorp. 2014. Evaluation of model transformation approaches for model refactoring. Sci. Comput. Program. 85 (2014), 5--40.
[44]
Thomas Kühne and Daniel Schreiber. 2007. Can programming be liberated from the two-level style?—Multi-level programming with DeepJava. In Proceedings of the OOPSLA. ACM, New York, NY, 229--244.
[45]
Yngve Lamo, Xiaoliang Wang, Florian Mantz, Øyvind Bech, Anders Sandven, and Adrian Rutle. 2013. DPF Workbench: A multi-level language workbench for MDE. Proc. Eston. Acad. Sci. 62, 1 (2013), 3--15.
[46]
Jesús J. López-Fernández, Jesús Sánchez Cuadrado, Esther Guerra, and Juan de Lara. 2015. Example-driven meta-model development. Softw. Syst. Model. 14, 4 (2015), 1323--1347.
[47]
Fernando Macías, Esther Guerra, and Juan de Lara. 2017. Toward rearchitecting meta-models into multi-level models. In Proceedings of the ER (LNCS), Vol. 10650. Springer, 59--68.
[48]
Fernando Macías, Adrian Rutle, and Volker Stolz. 2016. MultEcore: Combining the best of fixed-level and multilevel metamodelling. In Proceedings of the MULTI@MODELS (CEUR Workshop), Vol. 1722. CEUR-WS.org, 66--75.
[49]
Usman Mansoor, Marouane Kessentini, Manuel Wimmer, and Kalyanmoy Deb. 2017. Multi-view refactoring of class and activity diagrams using a multi-objective evolutionary algorithm. Softw. Qual. J. 25, 2 (2017), 473--501.
[50]
Robert C. Martin, Dirk Riehle, and Frank Buschmann. 1997. Pattern Languages of Program Design 3. Addison-Wesley.
[51]
Tom Mens, Gabriele Taentzer, and Olga Runge. 2007. Analysing refactoring dependencies using graph transformation. Softw. Syst. Model. 6, 3 (2007), 269--285.
[52]
Tom Mens and Tom Tourwé. 2004. A survey of software refactoring. IEEE Trans. Softw. Eng. 30, 2 (2004), 126--139.
[53]
Melina Mongiovi, Rohit Gheyi, Gustavo Soares, Márcio Ribeiro, Paulo Borba, and Leopoldo Teixeira . 2017. Detecting overly strong preconditions in refactoring engines. IEEE Trans. Softw. Eng. 99 (2017), 1--1.
[54]
Bernd Neumayr, Manfred A. Jeusfeld, Michael Schrefl, and Christoph G. Schütz. 2014. Dual deep instantiation and its ConceptBase implementation. In Proceedings of the CAiSE (LNCS), Vol. 8484. Springer, Cham, 503--517.
[55]
Bernd Neumayr, Christoph G. Schuetz, Christian Horner, and Michael Schrefl. 2017. DeepRuby: Extending Ruby with dual deep instantiation. In Proceedings of the MODELS (CEUR Workshop), Vol. 2019. CEUR-WS.org, 252--260.
[56]
Bernd Neumayr, Christoph G. Schuetz, Manfred A. Jeusfeld, and Michael Schrefl. 2018. Dual deep modeling: Multi-level modeling with dual potencies and its formalization in F-Logic. Softw. Syst. Model. 17, 1 (2018), 233--268.
[57]
James Noble, Antero Taivalsaari, and Ivan Moore. 1999. Prototype-based Programming: Concepts, Languages and Applications. Springer.
[58]
Natalya Fridman Noy and Michel C. A. Klein. 2004. Ontology evolution: Not the same as schema evolution. Knowl. Info. Syst. 6, 4 (2004), 428--440.
[59]
James Odell. 1994. Power types. JOOP 7, 2 (1994), 8--12.
[60]
OMG. 2016. MOF 2.5.1. Retrieved from http://www.omg.org/spec/MOF/2.5.1/.
[61]
William F. Opdyke and Ralph E. Johnson. 1990. Refactoring: An aid in designing application frameworks and evolving object-oriented systems. In Proceedings of the SOOPPA. ACM.
[62]
Ali Ouni, Marouane Kessentini, Houari Sahraoui, and Mohamed Salah Hamdi. 2012. Search-based refactoring: Towards semantics preservation. In Proceedings of the ICSM. IEEE Computer Society, Washington, DC, 347--356.
[63]
Ali Ouni, Marouane Kessentini, Houari Sahraoui, Katsuro Inoue, and Kalyanmoy Deb. 2016. Multi-criteria code refactoring using search-based software engineering: An industrial case study. ACM Trans. Softw. Eng. Methodol. 25, 3, Article 23 (2016), 53 pages.
[64]
Jeffrey L. Overbey, Ralph E. Johnson, and Munawar Hafiz. 2016. Differential precondition checking: A language-independent, reusable analysis for refactoring engines. Auto. Softw. Eng. 23, 1 (2016), 77--104.
[65]
Richard Paige, Dimitrios Kolovos, Louis Rose, Nicholas Drivalos, and Fiona Polack. 2009. The design of a conceptual framework and technical infrastructure for model management language engineering. In Proceedings of the ICECCS. IEEE Comp. Soc., Washington, DC, 162--171.
[66]
Alessandro Rossini, Juan de Lara, Esther Guerra, and Nikolay Nikolov. 2015. A comparison of two-level and multi-level modelling for cloud-based applications. In Proceedings of the ECMFA (LNCS), Vol. 9153. Springer, Cham, 18--32.
[67]
Douglas C. Schmidt. 2006. Guest editor’s introduction: Model-driven engineering. IEEE Comput. 39, 2 (2006), 25--31.
[68]
Matt Selway, Markus Stumptner, Wolfgang Mayer, Andreas Jordan, Georg Grossmann, and Michael Schrefl. 2017. A conceptual framework for large-scale ecosystem interoperability and industrial product lifecycles. Data Knowl. Eng. 109 (2017), 85--111.
[69]
Gustavo Soares, Rohit Gheyi, and Tiago Massoni. 2013. Automated behavioral testing of refactoring engines. IEEE Trans. Softw. Eng. 39, 2 (2013), 147--162.
[70]
Gustavo Soares, Rohit Gheyi, D. Serey, and Tiago Massoni. 2010. Making program refactoring safer. IEEE Softw. 27, 4 (2010), 52--57.
[71]
Friedrich Steimann. 2015. From well-formedness to meaning preservation: Model refactoring for almost free. Softw. Syst. Model. 14, 1 (2015), 307--320.
[72]
Dave Steinberg, Frank Budinsky, Marcelo Paternostro, and Ed Merks. 2008. EMF: Eclipse Modeling Framework, 2nd ed. Addison-Wesley Professional, Upper Saddle River, NJ.
[73]
Wuliang Sun, Robert B. France, and Indrakshi Ray. 2013. Analyzing behavioral refactoring of class models. In Proceedings of the MODELS (CEUR Workshop), Vol. 1090. CEUR-WS.org, 70--79.
[74]
Gerson Sunyé, Damien Pollet, Yves Le Traon, and Jean-Marc Jézéquel. 2001. Refactoring UML models. In Proceedings of the UML (LNCS), Vol. 2185. Springer, London, UK, UK, 134--148.
[75]
UML 2017. UML 2.5.1 OMG specification. Retrieved from http://www.omg.org/spec/UML/2.5.1/.
[76]
Gregory Vial. 2015. Database refactoring: Lessons from the trenches. IEEE Softw. 32, 6 (2015), 71--79.
[77]
Jens von Pilgrim, Bastian Ulke, Andreas Thies, and Friedrich Steimann. 2013. Model/code co-refactoring: An MDE approach. In Proceedings of the ASE. IEEE, 682--687.
[78]
Barbara Weber, Manfred Reichert, Jan Mendling, and Hajo A. Reijers. 2011. Refactoring large process model repositories. Comput. Industry 62, 5 (2011), 467--486.
[79]
Jonathan Yu, James A. Thom, and Audrey M. Tam. 2009. Requirements-oriented methodology for evaluating ontologies. Info. Syst. 34, 8 (2009), 766--791.
[80]
Olaf Zimmermann. 2015. Architectural refactoring: A task-centric view on software evolution. IEEE Softw. 32, 2 (2015), 26--29.

Cited By

View all
  • (2023)Modeling in LML with DOCL: A Contribution to the MULTI Warehouse Challenge2023 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C59198.2023.00106(649-658)Online publication date: 1-Oct-2023
  • (2023)Composition of multilevel domain-specific modelling languagesJournal of Logical and Algebraic Methods in Programming10.1016/j.jlamp.2022.100831130(100831)Online publication date: Jan-2023
  • (2022)Towards flexible creation of multi-level modelsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3550356.3561553(404-413)Online publication date: 23-Oct-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 27, Issue 4
October 2018
159 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/3287303
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 November 2018
Accepted: 01 September 2018
Revised: 01 June 2018
Received: 01 June 2017
Published in TOSEM Volume 27, Issue 4

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Meta-modelling
  2. MetaDepth
  3. model refactoring
  4. multi-level modelling

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • Spanish Ministry of Economy and Competitivity
  • SICOMORO-CM

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)21
  • Downloads (Last 6 weeks)3
Reflects downloads up to 20 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Modeling in LML with DOCL: A Contribution to the MULTI Warehouse Challenge2023 ACM/IEEE International Conference on Model Driven Engineering Languages and Systems Companion (MODELS-C)10.1109/MODELS-C59198.2023.00106(649-658)Online publication date: 1-Oct-2023
  • (2023)Composition of multilevel domain-specific modelling languagesJournal of Logical and Algebraic Methods in Programming10.1016/j.jlamp.2022.100831130(100831)Online publication date: Jan-2023
  • (2022)Towards flexible creation of multi-level modelsProceedings of the 25th International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3550356.3561553(404-413)Online publication date: 23-Oct-2022
  • (2022)Real-time collaborative multi-level modeling by conflict-free replicated data typesSoftware and Systems Modeling (SoSyM)10.1007/s10270-022-01054-522:4(1131-1150)Online publication date: 1-Nov-2022
  • (2022)An executable metamodel refactoring catalogSoftware and Systems Modeling (SoSyM)10.1007/s10270-022-01034-921:5(1689-1709)Online publication date: 1-Oct-2022
  • (2022)Multi-level modeling: cornerstones of a rationaleSoftware and Systems Modeling10.1007/s10270-021-00955-121:2(451-480)Online publication date: 4-Jan-2022
  • (2022)POEMLJournal of Software: Evolution and Process10.1002/smr.245634:6Online publication date: 1-Jun-2022
  • (2020)Meaningful metrics for multi-level modellingProceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems: Companion Proceedings10.1145/3417990.3421412(1-9)Online publication date: 16-Oct-2020
  • (2020) TOTEMComputer Standards & Interfaces10.1016/j.csi.2019.10339069:COnline publication date: 1-Mar-2020
  • (2019)Automated Reuse of Model Transformations through Typing Requirements ModelsACM Transactions on Software Engineering and Methodology10.1145/334010828:4(1-62)Online publication date: 2-Sep-2019
  • Show More Cited By

View Options

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media