Die 4 Schichten Metamodellarchitektur definiert eine Modellhierarchie, die sukzessive die einzelnen Modellarten definiert. Sie ist zentral für das Verständnis der Unified Modeling Language (UML - www.omg.org/uml) und dient u.a. dazu
semantische Konstrukte zu definieren durch ihre rekursive Anwendung auf weitere Metalayer (dt. Metaschichten),
die architektonische Basis für zukünftige UML Erweiterungen festzulegen,
und zudem integrieren sich andere Standards der Object Management Group (OMG - www.omg.org) in diese Architektur.
Dabei besteht die 4-Schichten Architektur aus folgenden Elementen (Beispiele stehen jeweils in Klammern dahinter):
1. Meta-MetaModell: Dies ist die Infrastruktur der Metamodellarchitektur und sie definiert die Sprache zur Spezifikation von Metamodellen (z.B. MetaKlasse, MetaAttribut, MetaOperation). Auf dieser Ebene ist bspw. das MOF angesiedelt.
2. MetaModell: Ist eine Instanz des Meta-MetaModells und definiert die Sprache zur Beschreibung der Modelle (z.B. Klasse, Attribut, Operation). Diese Schicht ist das zentrale Element der UML und die Konzepte werden bei der UML-Modellierung verwendet. Zudem werden auf dieser Ebene die Ergänzungen für die unterschiedlichen Plattformprofile spezifiziert.
3. Modell: Ist eine Instanz des MetaModells und definiert die Sprache zur Beschreibung der Domäne (z.B. Klasse:Buch, Klasse:Autor, Operation (der Klasse Buch):AutorZuweisen).
4. Objekte: Sind eine Instanz des Modells und beschreiben die Ausprägungen einer bestimmten Domäne (z.B. Name einer Instanz der Buchklasse : "Doing Hard Time", Name einer Instanz des Autorklasse: "Bruce Powel Douglass", Operation der Instanz der Buchklasse: autor_zuweisen).
Da grundsätzlich auch mehr (oder weniger) Schichten vorhanden sein können verwendet man oftmals eine Nummerierung zur eindeutigen Bezeichnung einer Ebene wie in der folgenden Abbildung dargestellt.
MOF-Metadatenarchitektur
In der "normalen" Hard- und Softwareentwicklung werden dementsprechend nur die Schichten 1-2 genutzt wobei die Kenntnis der zweiten Schicht die korrekte Modellierung sicherstellt. Die Vorteile dieser Architektur gegenüber einer einfachen (flachen) Modellarchitektur liegen einerseits in der flexiblen Erweiterbarkeit und im einfacheren Informationsaustausch auf Instanzenebene.