Which metametamodel?

1. Definition

The main concepts of MDE are beginning to be identified. A model represents a particular aspect of a system under construction, under operation or under maintenance. A model is written in the language of one specific metamodel. A metamodel is an explicit specification of abstraction, based on shared agreement. A metamodel acts as a filter to extract some relevant aspects from a system and to ignore all other details. A metametamodel defines a language to write metamodels. There are several possibilities to define a metametamodel. Usually the definition is reflexive, i.e. the metametamodel is self defined.
2. The MOF
A metametamodel is based at least on three concepts (entity, association, package) and a set of primitive types. The OMG MDA postulates the use of the MOF as the unique metametamodel for all IT-related purposes (closed world hypothesis). The MOF contains all universal features, i.e. all those that are not specific to a particular domain language. Among those features we find all that is necessary to build metamodels. Maintaining a specific tool for the MOF would be costly, so the MOF is aligned on the CORE part (infrastructure) of one of its specific metamodels: UML. UML thus plays a privileged role in the MDA architecture. As a consequence, any tool intended to create UML models can easily be adapted to create MOF metamodels. A metamodel is composed of three parts: terminological, assertional and pragmatics. The terminological part corresponds to UML class diagrams. The assertional part corresponds to OCL (Object Constraint Language) assertions that may decorate the various elements of the meta-model. The pragmatics corresponds to details that could not fit into the previous parts. Example of a pragmatic item is for example how to draw some particular concepts or relations. In UML 2.0 a tentative has been made in the presentation RFP to separate the content aspects from the presentation aspects in a given metamodel. This shows the tendency to reduce the pragmatic part by integrating the corresponding aspects into separate metamodels. Usually the pragmatics elements are expressed in natural language informal descriptions. A metamodel defines a specific domain language. It may be compared to the formal grammar of a programming language. In the case of UML the need to define variants of the base language was expressed. The UML meta-model was then equipped with extension mechanisms (stereotypes, tagged values, constraints) and this allows defining specialization of the basic meta-models as so called profiles. The MOF contains features to serialize models and metamodels in order to provide a standard external representation. The XMI standard defines the way serialization is performed. This is a way to exchange models between geographical locations, humans, computers or tools. When a tool reads a XMI serialized model (a UML model for example), it needs to check the version of the metamodel used and also the version of the XMI applied scheme.
3. ECore

4. KM3

5. Conclusion
This entry was posted in MDE and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s