XCore did not support multi-level modeling and software systems in a strict sense. In particular it did not allow to assign a specific level of classification to an object or to specify deferred instantiation. The FMMLx (Frank 2014) is a multi-level modelling and execution language that extends XCore. It enforces the definition of a classification level for each class and introduces intrinsic features, that is, attributes, operations, or associations, the instantiation of which can be deferred to a specified level.
Fig. xx shows how the FMMLx extends XCore to make it level-aware and to allow for intrinsic features. The class MetaAdaptor
was introduced to form an interface to XCore. It allows to create the Class MetaClass
on different levels of classification. MetaClass
in turn can then be used to instantiate classes on any level required.
Fig.: FMMLx Metamodel
A multi-level model created with the FMMLx may not only include objects on different levels of classification, but also intrinsic attributes, operations, and associations. Therefore, multi-level models tend to be more complex than traditional one-level models. To avoid confusion and to promote readability, the concrete syntax of the FMMLx includes elements to clearly express the additional information. The representation of every class includes, in addition to the class name, the name of the meta-class, the name of which is shown on top of the class name. The level of a class is indicated by the background color of the respective field. Intrinsic features are marked by a white number, which specifies the intended instantiation level, on a black square.
Currently, an extended version of the FMMLx is under development. It aims at the implementation of additional requirements specified in Frank, Ulrich (2018).