In the project LE4MM we continue our previous work on language engineering, meta-modelling and –programming tools, and on enterprise modelling.
The XModeler and XMF
The Xmodeler is an integrated (meta-) modelling and (meta-) programming environment. It is based on XMF (“Executable Meta-Modelling Facility”), a language execution engine. XMF features a meta-model, called XCore. Every language that is specified in XCore, i. e., that compiles on to XCore, can be executed by XMF. XMF allows accessing and modifying its own specification and its run-time system. The XModeler also features tools for specifying the concrete syntax of modelling languages and for generating model editors.
Fig.: Screenshot Xmodeler
XCore supports an arbitrary number of classification levels resulting from a universal data representation (everything is an object) and a precise definition of the relationship between a class and its instances. Xcore is level-agnostic in the sense that it does not enforce objects to be assigned to a specific classification level. Instead, the classification level of an object has to be determined dynamically – and may change over time. Class is an instance of itself and inherits from Object, which is an instance of Class. A class classifies its instances using the operation classify defined by Class. This operation applies all of the constraints that are defined by the class to a candidate object. The classification is satisfied when all the constraint are satisfied.
How is it possible to enable an arbitrary number of classification levels? As a default, Class is located on M2. Hence, creating an instance of Class will result in an object/class o1 on M1. By having o1 inherit from Class, it will be lifted to M2, too. Let us assume that o1 is instantiated into o2 and subsequently o2 inherits from Class, too, o2 will be lifted to M2 and, as a consequence, o1 will be lifted to M3. Click on the figure below to see how objects on higher levels of classification can be created from Xcore.
Background: How Multiple Levels of Classification are Enabled
The animated slides in the presentation below illustrate how the recursive meta model XCore enables the creation of an arbitraty number of classification levels.
Application Field and Testbed: Multi-Perspective Enterprise Modelling
An enterprise model integrates models of the organizational action system with models of enterprise software systems in order to foster IT business alignment and to make the design and implementation of enterprise software systems more efficient. Enterprises are characterized by division of labor, which goes along with multiple different perspectives and technical languages. An accountant has a different model of the enterprise than a strategic planner – and they use different languages. MEMO is a method for multi-perspective enterprise modelling that features an extensible set of DSMLs to model an enterprise and its information system from various perspectives (Frank 2013). A common meta-modelling language enables the integration of specific models into one coherent enterprise model. During our long-standing work on DSMLs and tools for MEMO (refs), we encountered various problems that could not be solved satisfactorily within the traditional object-oriented paradigm. Within LE4MM, DSMLs for enterprise modelling and enterprise software systems serve as an important application field and testbed for the concepts, methods and tools we develop.