With the implementation of the FMMLx, the XmodelerML provides a full range of multi-level modeling and programming features. A model, which is an executable program at the same time, can be comprised of classes and objects on many different levels. Models can be modified by editing code or by using a graphical diagram editor.
Screenshot of XModelerML
The FMMLx enhances the expressivity of traditional object-oriented conceptual modelling by multi-level capabilities. This includes a built-in language for instantiating classes from the model immediately after they have been defined, so instances and their classes can occur simultaneously in one model on different levels of type abstraction. This is realized by a dynamic tool-bar, which offers a new button for each new class that has been modeled, in order to allow the creation of an instance of the modeled class immediately after it has been defined. Applying a modelling language and refining it for domain-specific purposes gets combined with this approach.
A color code notation is used to differentiate between different levels of type abstraction, shown as background color of the header of a class. The class of an entity is displayed above its name label in a rectangular box notation for each entity in the model. This allows to trace from instances to corresponding class declarations and vice-versa.
The XModelerML comes with the (meta) programming language XOCL that enables the execution of models on any level of classification. In combination with the language application features, this allows to use models as powerful information systems with executable functionality.
Using the XModeler for Designing Multi-Level Models
The screencast below demonstrates how to create and execute a multi-level model with the FMMLx and the XModelerML.
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.
Using the XModelerML for invigorating UML Class Diagrams
The design of UML class diagrams does not only suffer from the limitations of the UML, but also from the shortcomings of most UML modelling tools. In the XModelerML, different from the regular UML model editor, UML object models are not represented as objects on M0, but as classes on M1, that is, where they belong. As a consequence, they can be instantiated (and executed) within the model editor.