# Metamodell

Die Benennung Metamodell setzt sich zusammen aus dem Präfix Meta- (in diesem Zusammenhang griechisch für „über“, oder „neben“) und dem Modellbegriff der (Wirtschafts-)Informatik. Das Präfix deutet an, dass in diesem Modell Aussagen auf einer inhaltlich höher gestellten Ebene getroffen werden als in Modellen sonst üblich.
Modelle beziehen sich grundsätzlich auf ein irgendwie geartetes Original (vgl. Stachowiak 1973), die Besonderheit des Metamodells ist, dass dessen Original der Bestandteil einer Modellbildung ist. Dieses Original ist jedoch selbst kein Modell – die Aussage, ein Metamodell sei ein "Modell über Modelle", ist daher nur mittelbar zutreffend.
Das Metamodell beschreibt modellhaft einen bestimmten Aspekt der Erstellung konzeptueller oder formaler Beschreibungsmodelle. Dabei können verschiedene Aspekte der Modellierung dargestellt werden. Am weitesten verbreitet ist das Konzept des sprachbasierten Metamodells, im Rahmen der Entwicklung von Modellierungsmethoden werden auch prozessbasierte Metamodelle spezifiziert. Strahringer prägt den Begriff der Metaisierung bzw. des Metaisierungsprinzips für die Modellbildung über Abstraktionsebenen hinweg. Das Metaisierungsprinzip legt dabei fest, über welchen Aspekt (Vorgehen oder Sprache) abstrahiert wird (Strahringer). Der Begriff Metamodell schreibt demzufolge einem Modell keine absolute Eigenschaft zu, sondern kennzeichnet die Beziehung des Modells zu anderen Modellen.
Als Beispiel: Beschreibt ein Modell M1 (unmittelbar) die Sprache S0, in der ein Modell M0 formuliert wird, so ist M1 ein (sprachbasiertes) Metamodell zu M0 (mittelbares Modell). Beschreibt ferner ein Modell M2 (unmittelbar) die Sprache S1 in der M1 formuliert wurde, so ist M2 entsprechend Metamodell zu M1, gegenüber M0 ist M2 jedoch Meta-Metamodell.

## Begriffsabgrenzung

Das Referenzmodell ist ein beispielhaftes Modell. Zum Beispiel könnte M0 durch Anpassung eines Modells M0$_2$ entwickelt worden sein, das wie M0 in Sprache S0 formuliert ist. M0 und sein Referenzmodell M0$_2$ hätten dann dasselbe Metamodell M1.
Das Standardmodell ist ähnlich dem Referenzmodell ein bestimmtes einzelnes Modell, das jedoch anders als das Referenzmodell mehr oder weniger verbindlich ist.
Das Metamodell ist also mit einem Baukasten vergleichbar. Referenzmodelle und Standardmodelle sind (beispielhafte bzw. verbindliche) Gebilde aus Elementen dieses Baukastens.

## Sprachbasiertes Metamodell

Ein sprachbasiertes Metamodell stellt die Elemente einer Modellierungssprache und ihre Beziehungen in einem Modell dar – das modellierte Original ist also eine Modellierungssprache. Es handelt sich dabei in der Regel um ein statisches Modell des konzeptionellen Aspektes dieser Sprache bzw. deren abstrakte Syntax.
Sprachbasierte Metamodelle sind bspw. das Metamodell der Unified Modeling Language oder das Common Warehouse Metamodel. Beide Modelle sind unter Verwendung der Meta-Beschreibungssprache MOF der Object Management Group spezifiziert. Zur Metamodellierung kommen des Weiteren auch Entity-Relationship-Modelle zum Einsatz (bspw. bei Scheer, innerhalb der Spezifikation der ARIS-Modellarchitektur).
Fasst man den Begriff des Modells weiter und bezieht auch textuelle Darstellungen ein, so kann beispielsweise auch eine XML-DTD oder eine XML-Schema-Definition als sprachbasiertes Metamodell gelten, da sie für eine Menge von Modellen (in Form von XML-Dokumenten) die Sprache definiert. Ähnliches lässt für andere formale Zeichensysteme (z. B. Programmiersprachen) entwickeln.

## Prozessbasiertes Metamodell

Ein prozessbasiertes Metamodell beschreibt den Vorgang der Modellerstellung mit einer bestimmten Modellierungsmethode – das Original ist ein realweltlicher Prozess (nämlich der der Modellierung durch einen Modellersteller). Es handelt sich also um ein ablaufbeschreibendes Modell, das Handlungsanweisungen und Reihenfolgevorgaben für die Erstellung eines Modells (bspw. des Modells einer betrieblichen Organisation, oder einer zu entwickelnden Software) spezifiziert. Man spricht in diesem Zusammenhang auch von Vorgehensmodellen.
Beispiele für solche Vorgehensmodelle finden sich bspw. bei ARIS (vgl. Scheer 1992; dort ist das prozessbasierte Metamodell als Ereignisgesteuerte Prozesskette modelliert) oder beim Semantischen Objektmodell (Ferstl/Sinz 2001). Der UML fehlt ein konkretes Vorgehensmodell – ein standardisiertes Vorgehen zur Erstellung von UML-Modellen ist nicht Bestandteil der UML-Spezifikation, welche sich rein auf den sprachlichen Aspekt der Modellierung beschränkt. Vorgehensmodelle wie der Rational Unified Process (RUP) basieren jedoch auf der Verwendung von UML als Modellierungssprache und können als prozessbasierte Metamodelle zu in UML formulierten Modellen gelten.
In der Softwaretechnik wird in diesem Zusammenhang auch von Methoden gesprochen – die Begriffe werden jedoch uneinheitlich verwendet. Greiffenberg (2003) fasst bspw. die Methode als Komposition aus Sprache (also sprachbasiertem Metamodell) und Vorgehen (prozessbasiertem Metamodell) auf. Bei Holten wird diese Komposition als Technik bezeichnet, wobei sich Methoden nach seiner Auffassung aus verschiedenen solcher Techniken zusammensetzen können.

## Weitere Metamodellauffassungen

Neben einer sprachbasierten Metaisierung schlagen Atkinson und Kuehne eine Abstraktion auf ontologischer Basis vor. Dabei werden die Typen nicht über die repräsentierenden Zeichen und Zeichensysteme gebildet, sondern im Sinne einer fachlichen Generalisierung/Spezialisierung abstrahiert. Sprachbasierte und Ontologiebasierte Metaisierung sind dabei jedoch nicht komplett trennscharf, da sprachlichen Zeichen häufig ebenfalls eine fachliche Abstraktion zu Grunde liegt (insbesondere bei Sprachen, die zur Modellierung realweltlicher Phänomene eingesetzt werden). Insbesondere bei domänenspezifischen Sprachen spielt dieser Aspekt eine zentrale Rolle, da hier das sprachbasierte Metamodell gezielt auf abstrahierte Konzepte der Domäne und deren Beziehungen abgestimmt wird.
Alvarez betrachtet die Metaisierung vornehmlich auf einer technischen Ebene und bricht die strenge, schichtenartige Hierarchie der Metamodell-Beziehungen auf. Insbesondere auf Implementationsebene von Modellierungs- bzw. allgemeiner Systementwicklungswerkzeugen sind die unterschiedlich abstrakten Elemente häufig nicht voneinander getrennt.
In der Simulationstechnik und dem Bereich Computersimulation versteht man unter Metamodellen zumeist Approximationsmethoden wie z. B. Splines, Regression und Neuronale Netze, da mit ihrer Hilfe aufwendige Simulationen auf weniger rechenintensive Berechnungen "heruntergerechnet" werden können. Das Original-Modell wird dabei mit Hilfe von definierten Rechenregeln iterativ oder batchartig vereinfacht.

## Selbstreferentielle Metamodelle

Das Konzept der Metaisierung lässt potentiell unendlich viele Abstraktionsstufen zu, da die verwendete Modellierungssprache immer wieder Gegenstand eines neuen (Meta-)Modells sein kann. Auf höheren Stufen der Metaisierung ist eine solche Abstraktion jedoch nicht mehr sinnvoll. Hier wird auf selbstreferentielle Metamodelle zurückgegriffen. Beispiel hierfür ist MOF, welche als Meta-Beschreibungssprache nicht nur untergeordnete Sprachen wie UML oder CWM beschreibt, sondern auch sich selbst.
Ein anderes Beispiel wäre ein ERM, welches die Beziehungen von Entitytypen, Relationshiptypen und Kardinalitäten strukturell abbildet. Selbstreferentielle Metamodelle sind in der Regel sprachbasiert.

## Metamodellierung im Method Engineering

Die Erstellung von Metamodellen ist zentraler Bestandteil des Method Engineering im Bereich der konzeptuellen Modellierung.