Dynamic Meta Modeling allows for the specification of the semantics of languages which describe behavior. The only prerequisite for using DMM is that the language's abstract syntax is defined by means of a metamodel. A typical use case of DMM is the specification of UML diagrams, e.g., Activities or Statecharts.
Members: Christian Soltenborn, Gregor Engels
Contact person: Christian Soltenborn
The Unified Modeling Language (UML) contains several diagram types which describe behavior (e.g., Activities, Statecharts, Sequence diagrams). The abstract syntax of those languages is defined using a Class diagram, also known as metamodel. Consequently, a model (e.g., an Activity) is an instance of its metamodel.
Using this approach, the structural semantics of these languages is defined precisely. Unfortunately, the dynamic semantics of the languages (e.g., their behavior) is described using natural language. This has a couple of drawbacks: first, such semantics descriptions always leave room for interpretations, and second, if one e.g. wants to automatically analyze the behavior, a formal description of the semantics is needed.
Therefore, DMM aims at creating formal descriptions of behavior. This is done in two steps: first, a metamodel of the semantic domain is derived from the original metamodel. This can often be performed by enhancing the original metamodel with concepts used to describe runtime information (e.g., the semantic domain metamodel of UML Activities contains the concept of Tokens, reflecting the fact that the UML specification states that the Activity's semantics is based on token flow).
In a second step, graph transformation rules are developed. These rules describe changes of instances of the semantic domain metamodel (e.g., when does a Token move from one Action to another). These instances are treated as typed graphs. DMM specifications are therefore not only formal, but also easily understandable due to the visual characteristics of the graph transformation rules.