Zum Hauptinhalt springen

Metamodell

Ein Metamodell ist das Modell eines Modells: Es definiert, welche Elemente, Beziehungen und Regeln in einem Modell erlaubt sind. Metamodelle spielen für Modelle dieselbe Rolle wie eine Grammatik für Sprachen — sie machen Modelle formal eindeutig und damit maschinell verarbeitbar, etwa für Validierung und Codegenerierung.

Was legt ein Metamodell fest?

Ein Metamodell beantwortet drei Fragen über eine Modellierungssprache:

  • Konzepte: Welche Arten von Elementen gibt es? (z. B. Zustand, Transition, Ereignis)
  • Beziehungen: Wie dürfen Elemente miteinander verbunden sein, mit welchen Kardinalitäten? (z. B. eine Transition verbindet genau einen Quell- mit genau einem Zielzustand)
  • Regeln (Constraints): Welche zusätzlichen Bedingungen muss ein gültiges Modell erfüllen? (z. B. jeder Automat hat genau einen Initialzustand)

Erst diese formale Festlegung macht ein Modell zu mehr als einer Zeichnung: Ein Werkzeug kann prüfen, ob ein Modell gültig ist, ein Generator kann sich darauf verlassen, welche Strukturen er vorfindet.

Ein konkretes Beispiel

Ein einfaches Metamodell für Zustandsautomaten könnte so aussehen:

KonzeptEigenschaftenBeziehungen
StateMachineNameenthält 1..* States, 0..* Transitions, 0..* Events
StateName, isInitial
TransitionGuard (optional)genau 1 Quell-State, genau 1 Ziel-State, 1 auslösendes Event
EventName

Dazu eine Regel: Jede StateMachine enthält genau einen State mit isInitial = true.

Ein konkretes Modell — etwa eine Ampelsteuerung mit den Zuständen Rot, Rot-Gelb, Grün, Gelb und Transitionen dazwischen — ist dann eine Instanz dieses Metamodells. Das Metamodell selbst sagt nichts über Ampeln; es sagt nur, was ein wohlgeformter Zustandsautomat ist. Genau dieselbe Beziehung besteht zwischen einem Java-Programm und der Java-Grammatik.

Metaebenen: vom Objekt bis zur MOF

Die Object Management Group (OMG) ordnet diese Beziehungen in einer Vier-Ebenen-Architektur:

  • M0 — die realen Laufzeitobjekte (die konkrete Ampel an der Kreuzung),
  • M1 — das Modell (der Zustandsautomat der Ampelsteuerung),
  • M2 — das Metamodell (die Definition, was ein Zustandsautomat ist; auf dieser Ebene liegt auch das UML-Metamodell),
  • M3 — das Meta-Metamodell: die Meta Object Facility (MOF), die Sprache, in der Metamodelle beschrieben werden. Die MOF beschreibt sich selbst, weitere Ebenen sind nicht nötig.

In der Werkzeugpraxis übernimmt häufig Ecore aus dem Eclipse Modeling Framework (EMF) die Rolle der M3-Ebene — ein pragmatischer De-facto-Standard, an dem sich viele Modellierungswerkzeuge ausrichten.

Metamodelle in der Praxis

Explizite Metamodelle sind das Fundament jeder ernsthaften Modellierungs-Toolchain. Wer eine domänenspezifische Sprache (DSL) entwirft, entwirft zuerst ihr Metamodell — daraus leiten Language Workbenches wie Xtext oder JetBrains MPS Editoren, Live-Validierung und die typisierte Modell-API für Generatoren ab. Auch bei der Integration heterogener Werkzeuge sind Metamodelle der Schlüssel: Erst wenn beide Seiten ihre Konzepte formal offenlegen, lassen sich Modelle verlustfrei transformieren und abgleichen. Die praktische Erfahrung zeigt dabei: Der schwierige Teil ist selten die Technik, sondern das saubere Herausarbeiten der Domänenkonzepte — ein Metamodell ist immer auch eine Begriffsklärung im Team.

Häufige Fragen

Was ist der Unterschied zwischen Modell und Metamodell?
Ein Modell beschreibt ein konkretes System — etwa den Zustandsautomaten einer Ampelsteuerung. Das Metamodell beschreibt, welche Konzepte in solchen Modellen überhaupt vorkommen dürfen — etwa dass es Zustände und Transitionen gibt und jede Transition genau einen Quell- und Zielzustand hat. Jedes Modell ist eine Instanz seines Metamodells.
Was ist die MOF?
Die Meta Object Facility (MOF) ist der Standard der Object Management Group (OMG) für die oberste Metaebene: die Sprache, in der Metamodelle selbst beschrieben werden. Das UML-Metamodell etwa ist in MOF definiert. In der Werkzeugpraxis übernimmt häufig Ecore aus dem Eclipse Modeling Framework (EMF) diese Rolle.
Braucht jede DSL ein Metamodell?
Ja, zumindest implizit. Jede domänenspezifische Sprache legt fest, welche Konzepte, Beziehungen und Regeln ausdrückbar sind — genau das ist ihr Metamodell. Language Workbenches wie Xtext oder JetBrains MPS machen dieses Metamodell explizit und leiten daraus Editor, Validierung und Generator-Zugriff ab.

Verwandte Begriffe

Fachlich geprüft von Axel Terfloth, Principal Engineer am 20. Juli 2026