Editorial to the theme issue on multi-level modeling

Multi-level modeling, i.e., the explicit use of multiple levels of classification in modeling, is a conservative extension of the well-established, traditional two-level object-oriented paradigm. Two-level object-oriented technology has been tremendously successful in both modeling (e.g., UML) and programming (e.g., Java). However, it has been shown that attempting to capture certain domains or systems with only two classification levels (i.e., objects and their types) results in accidental complexity that stems from an impedance mismatch between the subject at hand and the solution technology used to capture it [2]. Examples for domains that can be much more elegantly captured using multiple classification levels are biological taxonomies, process (meta-) modeling, enforced software architectures, and systems with dynamic type levels [4]. In particular, two-level technologies suffer from a simplistic type/instance dichotomy. Modeling elements must either play the role of a type or the role of an instance but not both. This means that types themselves cannot be treated as first class citizens of a system, i.e., as instances of (meta-) types, and thus cannot themselves be added dynamically to a system in a type-safe way.

[1]  Thomas Kühne Editorial to the theme issue on metamodelling , 2009, Software & Systems Modeling.

[2]  Juan de Lara,et al.  When and How to Use Multilevel Modelling , 2014, ACM Trans. Softw. Eng. Methodol..

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