When and How to Use Multilevel Modelling

Model-Driven Engineering (MDE) promotes models as the primary artefacts in the software development process, from which code for the final application is derived. Standard approaches to MDE (like those based on MOF or EMF) advocate a two-level metamodelling setting where Domain-Specific Modelling Languages (DSMLs) are defined through a metamodel that is instantiated to build models at the metalevel below. Multilevel modelling (also called deep metamodelling) extends the standard approach to metamodelling by enabling modelling at an arbitrary number of metalevels, not necessarily two. Proposers of multilevel modelling claim this leads to simpler model descriptions in some situations, although its applicability has been scarcely evaluated. Thus, practitioners may find it difficult to discern when to use it and how to implement multilevel solutions in practice. In this article, we discuss those situations where the use of multilevel modelling is beneficial, and identify recurring patterns and idioms. Moreover, in order to assess how often the identified patterns arise in practice, we have analysed a wide range of existing two-level DSMLs from different sources and domains, to detect when their elements could be rearranged in more than two metalevels. The results show this scenario is not uncommon, while in some application domains (like software architecture and enterprise/process modelling) pervasive, with a high average number of pattern occurrences per metamodel.

[1]  Makoto Mizukawa,et al.  1P1-A04 An Invitation to Standardization Activity in OMG : Report on OMG Technical Meeting in Washington DC , 2007 .

[2]  Juan de Lara,et al.  Extending Deep Meta-Modelling for Practical Model-Driven Engineering , 2014, Comput. J..

[3]  Richard F. Paige,et al.  Engineering a DSL for Software Traceability , 2009, SLE.

[4]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[5]  Daniel Schreiber,et al.  Can programming be liberated from the two-level style: multi-level programming with deepjava , 2007, OOPSLA.

[6]  Dániel Varró,et al.  VPM: A visual, precise and multilevel metamodeling framework for describing mathematical domains and UML (The Mathematics of Metamodeling is Metamodeling Mathematics) , 2003, Software & Systems Modeling.

[7]  Markus Herrmannsdoerfer,et al.  Library Concepts for Model Reuse , 2010, Electron. Notes Theor. Comput. Sci..

[8]  Richard F. Paige,et al.  The Design of a Conceptual Framework and Technical Infrastructure for Model Management Language Engineering , 2009, 2009 14th IEEE International Conference on Engineering of Complex Computer Systems.

[9]  Mario R. Barbacci,et al.  Mapping MetaH into ACME , 1998 .

[10]  Peter Coad,et al.  Object-oriented patterns , 1992, CACM.

[11]  Wolfgang Pree,et al.  Representation and Traversal of Large Clabject Models , 2009, MoDELS.

[12]  Juan de Lara,et al.  Deep Meta-modelling with MetaDepth , 2010, TOOLS.

[13]  Alfons Laarman,et al.  Ontological Metamodeling with Explicit Instantiation , 2009, SLE.

[14]  Kenneth Steiglitz,et al.  Combinatorial Optimization: Algorithms and Complexity , 1981 .

[15]  Diomidis Spinellis,et al.  Notable design patterns for domain-specific languages , 2001, J. Syst. Softw..

[16]  Mohamed Dahchour Formalizing Materialization Using a Metaclass Approach , 1998, CAiSE.

[17]  Jordi Cabot,et al.  EMF Profiles: A Lightweight Extension Approach for EMF Models , 2012, J. Object Technol..

[18]  Gabor Karsai,et al.  Composition and cloning in modeling and meta-modeling , 2004, IEEE Transactions on Control Systems Technology.

[19]  Hassan Charaf,et al.  A Systematic Approach to Metamodeling Environments and Model Transformation Systems in VMTS , 2005, GraBaTs.

[20]  Colin Atkinson,et al.  Rearchitecting the UML infrastructure , 2002, TOMC.

[21]  Adrian Rutle,et al.  DPF Workbench: a multi-level language workbench for MDE , 2013 .

[22]  Volker Gruhn,et al.  Model-Driven Software Development , 2005 .

[23]  Colin Atkinson,et al.  A Flexible Infrastructure for Multilevel Language Engineering , 2009, IEEE Transactions on Software Engineering.

[24]  Jeffrey G. Gray,et al.  Design patterns for metamodels , 2011, SPLASH Workshops.

[25]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[26]  Fernando Lyardet The Dynamic Template Pattern , 1997 .

[27]  Petia Wohed,et al.  UEML : Providing Requirements and Extensions for Interoperability Challenges , 2005 .

[28]  Colin Atkinson,et al.  Model-Driven Development: A Metamodeling Foundation , 2003, IEEE Softw..

[29]  Krzysztof Czarnecki,et al.  Formalizing cardinality-based feature models and their specialization , 2005, Softw. Process. Improv. Pract..

[30]  Luca Maria Gambardella,et al.  Ant colony system: a cooperative learning approach to the traveling salesman problem , 1997, IEEE Trans. Evol. Comput..

[31]  Matthias Jarke,et al.  Telos: representing knowledge about information systems , 1990, TOIS.

[32]  Fourati Farah,et al.  Une approche IDM de transformation exogène de Wright vers Ada , 2012, ArXiv.

[33]  Abraham P. Punnen,et al.  The traveling salesman problem and its variations , 2007 .

[34]  Gilbert Laporte,et al.  Modeling and solving several classes of arc routing problems as traveling salesman problems , 1997, Comput. Oper. Res..

[35]  Jesús Gallardo,et al.  A model-driven development method for collaborative modeling tools , 2012, J. Netw. Comput. Appl..

[36]  Charles F. Goldfarb,et al.  SGML handbook , 1990 .

[37]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[38]  Colin Atkinson,et al.  The Level-Agnostic Modeling Language , 2010, SLE.

[39]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[40]  Colin Atkinson,et al.  Reducing accidental complexity in domain models , 2008, Software & Systems Modeling.

[41]  Colin Atkinson,et al.  Meta-modelling for distributed object environments , 1997, Proceedings First International Enterprise Distributed Object Computing Workshop.

[42]  Tomi Männistö,et al.  Nivel: a metamodelling language with a formal semantics , 2009, Software & Systems Modeling.

[43]  Matthias Jarke,et al.  ConceptBase — A deductive object base for meta data management , 1995, Journal of Intelligent Information Systems.

[44]  Alexander Egyed,et al.  Cross-layer modeler: a tool for flexible multilevel modeling with consistency checking , 2011, ESEC/FSE '11.

[45]  Eelco Visser,et al.  DSL Engineering - Designing, Implementing and Using Domain-Specific Languages , 2013 .

[46]  Michael Wooldridge,et al.  Introduction to multiagent systems , 2001 .

[47]  Stefano Ceri,et al.  The History of WebML Lessons Learned from 10 Years of Model-Driven Development of Web Applications , 2009, Conceptual Modeling: Foundations and Applications.

[48]  Brian Henderson-Sellers,et al.  A powertype-based metamodelling framework , 2006, Software & Systems Modeling.

[49]  Juan de Lara,et al.  Model-driven engineering with domain-specific meta-modelling languages , 2015, Software & Systems Modeling.

[50]  Juan Garbajosa,et al.  A study to support agile methods more effectively through traceability , 2011, Innovations in Systems and Software Engineering.

[51]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[52]  Colin Atkinson,et al.  The Essence of Multilevel Metamodeling , 2001, UML.

[53]  Dirk Riehle,et al.  Pattern Languages of Program Design 3 , 1997 .

[54]  Ralph E. Johnson,et al.  The Adaptive Object-Model Architectural Style , 2002, WICSA.

[55]  Colin Atkinson,et al.  Symbiotic general-purpose and domain-specific languages , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[56]  Pär J. Ågerfalk,et al.  Ontological and linguistic metamodelling revisited: A language use approach , 2013, Inf. Softw. Technol..

[57]  E. Guerra,et al.  Domain-Specific Textual Meta-Modelling Languages for Model Driven Engineering , 2012, ECMFA.

[58]  Esperanza Marcos,et al.  ArchiMeDeS: A model-driven framework for the specification of service-oriented architectures , 2012, Inf. Syst..

[59]  Colin Atkinson,et al.  Towards Multi-level Aware Model Transformations , 2012, ICMT@TOOLS.

[60]  Stefan Jablonski,et al.  Towards an open meta modeling environment , 2010, DSM '10.

[61]  Jean Bézivin,et al.  KM3: A DSL for Metamodel Specification , 2006, FMOODS.

[62]  Hannes Schwarz,et al.  Model-Driven Software Development , 2013 .

[63]  James Odell,et al.  Power Types , 1994, J. Object Oriented Program..

[64]  Ralph E. Johnson DYNAMIC OBJECT MODEL , 1998 .

[65]  Andy Evans,et al.  Mapping between Levels in the Metamodel Architecture , 2001, UML.

[66]  Colin Atkinson,et al.  On-the-Fly Emendation of Multi-level Models , 2012, ECMFA.

[67]  Thomas Kuhn,et al.  A pattern-based approach to DSL development , 2011, SPLASH Workshops.

[68]  Brian Henderson-Sellers,et al.  Modelling software development methodologies: A conceptual foundation , 2007, J. Syst. Softw..