A New Paradigm

While object-oriented concepts as they are part of current mainstream languages serve us as a powerful tool to design and implement software systems, the explicit and implicit constraints they come with do not only create the inconsistencies we identified above, they may even prevent us from seeing aspects of the world we did not see before – and from building better systems: “The limits of my language are the limits of my world.” (Wittgenstein) For this principal reason alone, it makes sense to challenge a ruling paradigm, to aim at other, more powerful concepts. Multi-Level Modelling and Language engineering is an attempt to overcome the current object-oriented paradigm by challenging some of its principal foundations. It does not only enable an unlimited number of classification levels, but allows for defining properties of a class that do not directly apply to its instances, but only to instances of instances of instances. As a consequence, it is suited to promote reuse, flexibility, integrity, and user empowerment. However, it also means to give up on (or at least relax) core principles of object-oriented software construction, such as the strict dichotomy of instantiation and specialization or the substitutability constraint of specialization.

Crossing the boundaries of a field you feel familiar with (you have worked in it for long, you were convinced of its power, you preached its foundations) is an exciting, but also risky undertaking. It means to move into unknown territory, to discover new possibilities, but also to run into problems you were not aware of before. It is this kind of scientific adventure that makes the project LE4MM so appealing to us.

In this introduction to multi-level modeling, Ulrich Frank describes foundational aspects such as the language architecture and demonstrates key benefits.

  • Atkinson, C., & Kühne, T. (2001). The Essence of Multilevel Metamodeling. In M. Gorgolla & C. Kobryn (Eds.), Lecture Notes in Computer Science: Vol. 2185. UML 2001 – The Unified Modeling Language. Modeling Languages, Concepts, and Tools: 4th International Conference, Toronto, Canada, October 1-5, 2001. Proceedings (pp. 19–33). Berlin, London, New York: Springer.
  • Frank, U. (2022). Multi-level modeling: cornerstones of a rationale. Software and Systems Modeling. Advance online publication.
  • Frank, U. (2014). Multilevel Modeling: Toward a New Paradigm of Conceptual Modeling and Information Systems Design. Business and Information Systems Engineering, 6(6), 319–337.

Reuse, Adaptability, Integrity

The current object-oriented paradigm has inherent limitations that prevent us from modeling certain domains in a way that corresponds to abstractions we are used to in natural language. This may produce serious problems, because we may be forced to overload existing classification levels, which compromises readability, integrity and maintainability of software. The following diagram represents a multi-level models with the FMMLx. It illustrates that multi-level model promote reuse by allowing to express knowledge about a domain on the highest possible level, which in turn also contributes to maintainability.

Multi-level modeling corresponds pretty well to the way we conceptualize complex domains. In particular, we sometimes do not make a clear distinction between instantiation or specialization – both may make sense. However, it is an iron law of the existing paradigm that there is a clear dichotomy between instantiation and specialization. Instantiation of attributes we know of already on a higher level may sometimes be deferred to lower levels – not possible in the traditional paradigm.  (Meta) classes may have relevant state – again not possible with main-stream object-oriented languages. (Meta) classes may have features that need to be derived or calculated. Classes cannot execute methods in the traditional paradigm.

Self-Referential Software Systems

As an answer to this question we suggested the conception of “self-referential enterprise systems” (SRES) (Frank & Strecker 2009) . It is based on the idea to integrate an enterprise software system with a corresponding enterprise model at run-time. As a consequence, the software system would not only have access to its own conceptual foundation, but also to a representation of the context it is supposed to operate in. As a consequence, enterprise software systems would become clearly more flexible. Furthermore, users could navigate an enterprise system and a corresponding enterprise model. Thus, they should not only gain a better understanding of a system, but also be enabled to modify the system through a model that represents concepts they are familiar with. The figure below illustrates how a SRES is composed of models/components on different levels of abstraction.

Unfortunately, the implemenation of SRES with traditional object-oriented languages faces a serious limitation. These languages allow for representing only objects on M0. If a language allows for introspection, users can inspect the class of an object, too. As a consequence, it is not possible to allow for a common representation of models and code (which in turn would be a prerequisite for changing a system by changing its model), nor is it possible to integrate representations of DSMLs or Meta-DSMLs with an enterprise system. Multi-level language architectures in general, the XModelerML in particular provide a powerful foundation for the realization of SRES.

    • Frank, U. (2022). Multi-level modeling: cornerstones of a rationale. Software and Systems Modeling. Advance online publication.
    • Frank, U., & Strecker, S. (2009). Beyond ERP Systems: An Outline of Self-Referential Enterprise Systems: Requirements, Conceptual Foundation and Design Options (ICB Research Report No. 31). Essen.

User Empowerment

Our professional and private lives are more and more penetrated by software systems. To many, these systems are black boxes that hide their conceptual foundation and make it almost impossible to understand how and to what extent they can be adapted to changing requirements. By supporting a common representation of models and code and by providing extensive introspection features, multi-level language engineering allow to build systems that are integrated with models of their own (and of the surroundings they operate in). As a consequence, users cannot only navigate through different representations of a system, but also to its conceptual foundation, that is, conceptual models or meta-models. That will “open” the systems to them and give them a much better chance to understand the software they use, and to modify it according to their needs – on a level of abstraction, in other words: in a language, they are familiar with.