Definition „Metamodell“ Was ist ein Metamodell?

Von Egoloizos

Ein Metamodell stellt ein übergeordnetes Modell zur Formalisierung anderer Modellkonzepte dar. Es modelliert die Konzepte verwendbarer Modell-Elemente und ihrer Zusammenhänge.

Die Metamodell-Hierarchie kommt unter anderem in der vereinheitlichten Modellierungssprache UML zum Einsatz. (Bild basiert auf OMG: Unified Modeling Language: Infrastructure. Seite 31)
Die Metamodell-Hierarchie kommt unter anderem in der vereinheitlichten Modellierungssprache UML zum Einsatz. (Bild basiert auf OMG: Unified Modeling Language: Infrastructure. Seite 31)
(Bild: MetamodelHierarchy_de.svg /Jens von Pilgrim / CC BY-SA 3.0)

Die Beschreibung und Erstellung von Modellen in der Informatik bedarf einer bestimmten Sprache. Diese wiederum ist abhängig von einer genauen Definition ihrer Regeln sowie ihrer Grammatik. Die Definition dieser Sprachen erfolgt in einem Metamodell. Diese Modelle sind ihrerseits in einer Metasprache verfasst.

Begrifflich ist das Metamodell vom Präfix Meta abgeleitet. Der aus dem Griechischen stammende Begriff hat die Bedeutung von „über“ oder „neben“. Somit dienen Metamodelle einer übergeordneten Abstraktion.

In der Informatik stellt das Metamodell eine formale Beschreibung vorhandener Modellkonzepte dar, mit der sich die Struktur einer Domäne abbilden lässt. Die Domäne ist hierbei genau definiert durch einen abgrenzbaren Anwendungsbereich der Software oder durch ein bestimmtes Interessengebiet. Metamodelle stellen auch die Grundlage von Modellierungssprachen dar. Modellierungssprachen bestehen überdies aus einer abstrakten und einer konkreten Syntax sowie der statischen Semantik.

Metamodelle selbst lassen sich ihrerseits durch Modelle beschreiben. Diese tragen dann die Bezeichnung Metametamodell. Beispielsweise stellt die bekannte Sprache UML (Unified Modelling Language) ein Metamodell dar. Diese Sprache ist ebenso in ein übergeordnetes Metamodell eingebettet, namentlich die MOF (Meta Object Facility).

Klassen innerhalb von Programmiersprachen stellen ebenfalls Metamodelle dar. Ihr Metametamodell ist die Programmiersprache selbst. Dementsprechend spielen Metamodelle in der Anwendungsentwicklung eine wichtige Rolle, nicht zuletzt in der modellgetriebenen Softwareentwicklung (MDSD). Hierbei wird aus formalen Modellen unter Nutzung automatisierter Prozesse eine betriebsfähige Software entwickelt.

Abgrenzung sprach- und prozessbasierter Metamodelle

Je nach definitorischem Ansatz lassen sich sprachbasierte und prozessbasierte Metamodelle unterscheiden. Ein sprachbasiertes Modell dient der Darstellung der Elemente der Modellierungssprache sowie ihrer Beziehungen.

In diesem Sinne stellt das modellierte Original eine Modellierungssprache dar. Das Modell ist typischerweise statisch und dient dem konzeptionellen Aspekt der Sprache und der abstrakten Syntax. Zu den sprachbasierten Modellen gehört das Metamodell der UML.

Prozessbasierte Metamodelle beschreiben den Modellerstellungs-Vorgang unter Nutzung einer bestimmten Modellierungsmethode. Ein Beispiel eines solchen Vorgehens ist ARIS, wo das prozessbasierte Metamodell in Form einer ereignisgesteuerten Prozesskette modelliert ist. Bei der UML liegt beispielsweise kein konkretes Vorgehensmodell vor.

Modellbildung und Metamodellierung: Prozess und Ablauf

Die Modellbildung ist ein Prozess, der von einem bestimmten Problembereich zu einem Modell führt. Die Metamodellbildung beschreibt die im Modellbereich zum Einsatz kommende Modellierungstechnik in einem eigenen Modell.

Die Modellierungstechnik beinhaltet wiederum die nutzbaren Modellelemente sowie die Zusammenhänge dieser Elemente untereinander. Zu beachten ist, dass das Metamodell nicht etwa ein Modell des Modells darstellt, sondern ein Modell des Modellbereichs. Damit ist es ein Modell einer Menge gleichartiger Modelle, insbesondere solcher, die nach der gleichen Technik erstellt wurden.

Eine der Voraussetzungen für eine präzise Definition der Elemente einer Modellierungstechnik durch ein Metamodell ist die exakte Spezifikation der Elemente des Metamodells selbst. In diesem Zusammenhang wird ein Metametamodell, also ein Metamodell des Metamodells erforderlich. Würde dieser Grundsatz logisch zu Ende verfolgt werden, wäre eine unendliche Abfolge von Metamodellen die Folge.

Daher hat die OMG (Object Management Group) eine Metasprache als oberste Instanz der Metamodellierung standardisiert: die MOF (Meta Object Facility). Die MOF dient der Schließung der Lücke zwischen verschiedenen Metamodellen. Sie stellt eine gemeinsame Basis für Metamodelle dar. Sind zwei unterschiedliche Metamodelle jeweils MOF-konform, so können darauf basierende Modelle im gleichen Modelldepot vorkommen. Die MOF-Konformität ermöglicht es auch, diese Modelle gemeinsam zu verarbeiten, etwa durch Transformation.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Modelle, Sprachen und ihr Aufbau

Modelle und ihre Zusammenhänge zueinander lassen sich auf verschiedenen Ebenen zu betrachten. Oft werden diese Ebenen mit den Bezeichnungen M3, M2, M1 und M0 beschrieben. Hierbei ist jede Ebene eine Instanz der jeweils übergeordneten Ebene. M3 bezeichnet das Metametamodell. Nach der OMG hat dieses keine ihm übergeordnete Sprache oder Modellierung. Die Ebene M2 ist demnach eine Instanz der Ebene M3 und der darauf definierten Konstrukte.

Typischerweise definieren Metamodelle sich selbst. Damit bilden sie mit ihren Metametamodellen eine Identität. Ein höheres Metamodell ist nur erforderlich, wenn mehrere verschiedene Modellbereiche durch ein beiden gemeinsames Modell (das Metametamodell) dargestellt werden sollen.

Das M3-Modell definiert die MOF nach den Vorgaben der OMG. Die Bestandteile der MOF werden anschließend zur Definition nachfolgender Metamodelle herangezogen. Zu diesen Elementen gehören MOF-Class, MOF-Associations und MOF-Attribute. Sie tragen dazu bei, eine abstrakte Sprache zu spezifizieren, auf deren Basis andere Modellierungssprachen (beispielsweise UML oder CWM) entwickelt werden. Diese sind ihrerseits Instanzen des M3-Modells.

Im M2-Metamodell sind diejenigen Metamodelle kategorisiert, die auf Basis der MOF-Konstrukte beschrieben worden sind. Sie legen ihrerseits eine abstrakte Syntax und Semantik fest. Mit den definierten Sprachen sind Modellierungen auf der darunter liegenden Ebene möglich. Auf der Ebene des M1-Modells sind Modelle für die Abstraktion eines realen Systems zu finden. Die M0-Schicht ist die Instanz für das laufende System, seine verschiedenen Zustände und realen Instanzen. Auf dieser Ebene sind die Objekte vorhanden, die als reale Entitäten die Instanzen der M1-Ebene abbilden.

(ID:46568583)