Meta Model Definition and Meaning
What is a meta model?
A metamodel represents a superordinate model for the formalization of other model concepts. It models the concepts of usable model elements and their relationships.
The description and creation of models in computer science requires a certain language. This in turn depends on an exact definition of its rules and its grammar. These languages are defined in a metamodel. These models are in turn written in a metalanguage.
Conceptually, the metamodel is derived from the prefix meta. The term, which comes from the Greek, has the meaning of “above” or “next to”. Metamodels thus serve a higher-level abstraction.
In computer science, the metamodel is a formal description of existing model concepts with which the structure of a domain can be mapped. The domain is precisely defined by a definable application area of the software or by a specific area of interest. Metamodels also represent the basis of modeling languages. Modeling languages also consist of an abstract and a concrete syntax as well as static semantics.
Metamodels themselves can in turn be described by models. These are then called the metametamodel. For example, the well-known UML (Unified Modeling Language) language represents a metamodel. This language is also embedded in a superordinate metamodel, namely the MOF (Meta Object Facility).
Classes within programming languages also represent metamodels. Their metametamodel is the programming language itself. Accordingly, metamodels play an important role in application development , not least in model-driven software development (MDSD). Operational software is developed from formal models using automated processes.
Differentiation of language and process-based metamodels
Depending on the definition approach, a distinction can be made between language-based and process-based metamodels. A language-based model is used to represent the elements of the modeling language and their relationships.
In this sense, the modeled original represents a modeling language. The model is typically static and serves the conceptual aspect of the language and the abstract syntax. The UML metamodel is one of the language-based models.
Process-based meta-models describe the model creation process using a specific modeling method. One example of such a procedure is ARIS, where the process-based metamodel is modeled in the form of an event-driven process chain. In the case of UML, for example, there is no concrete process model.
Modeling and Metamodeling: Process and Procedure
Modeling is a process that leads from a specific problem area to a model. The metamodeling describes the modeling technique used in the model area in a separate model.
The modeling technique in turn contains the usable model elements as well as the interrelationships between these elements. It should be noted that the metamodel does not represent a model of the model, but a model of the model area. It is thus a model of a number of similar models, especially those that were created using the same technology.
One of the prerequisites for a precise definition of the elements of a modeling technique using a metamodel is the exact specification of the elements of the metamodel itself. In this context, a metametamodel, that is, a metamodel of the metamodel, is required. If this principle were followed logically to the end, an infinite sequence of metamodels would be the result.
The OMG (Object Management Group) has therefore standardized a metalanguage as the highest level of metamodeling: the MOF (Meta Object Facility). The MOF serves to close the gap between different metamodels. It represents a common basis for metamodels. If two different metamodels are each MOF-compliant, models based on them can appear in the same model depot. The MOF conformity also makes it possible to process these models together, for example through transformation.
Models, languages and their structure
Models and their interrelationships can be viewed on different levels. Often these levels are described with the names M3, M2, M1 and M0. Each level is an instance of the respective higher level. M3 denotes the metametamodel. According to the OMG, this has no superordinate language or modeling. The level M2 is accordingly an instance of the level M3 and the constructs defined on it.
Typically, metamodels define themselves. In this way, they form an identity with their metametamodels. A higher metamodel is only required if several different model areas are to be represented by a common model (the metametamodel).
The M3 model defines the MOF according to the specifications of the OMG. The components of the MOF are then used to define the following metamodels. These elements include the MOF class, MOF associations and MOF attributes. They help to specify an abstract language on the basis of which other modeling languages (e.g. UML or CWM) are developed. These are in turn instances of the M3 model.
The M2 metamodel categorizes those metamodels that have been described on the basis of the MOF constructs. For their part, they define an abstract syntax and semantics. With the defined languages, modeling is possible on the level below. Models for the abstraction of a real system can be found at the level of the M1 model. The M0 layer is the instance for the current system, its various states and real instances. The objects that represent the instances of the M1 level as real entities are available on this level.