Modelle und Metamodelle

Modellgetriebene Softwareentwicklung

Eine Einführung

Modelle und Metamodelle

Die OMG (Object Management Group) beschreibt den Begriff des Modells fol-gendermaßen: "Ein Modell repräsentiert einen Teilaspekt der Funktionalität, Struktur oder Verhaltensweise in einem System" [WebOMG1]

Für ein formal gültiges Modell sollte folgendes gelten:

  • Einem Modell liegt eine formal eindeutige Syntax zugrunde, die die Notationselemente genau definiert. Dies können grafische Elemente, wie z.B. in der UML oder anderen Diagrammformen wie auch textuelle Elemente wie Tags in XML-Modellen oder auch Sprachelemente von Programmiersprachen sein.
  • Die möglichen Beziehungen zwischen den einzelnen Notationselementen sind formal genau festgelegt (Grammatik).
  • Den Notationselementen und ihren Beziehungen zueinander ist für eine klar definierte Abstraktionsebene (Modellierungsebene) eine eindeutige Bedeutung zugeordnet (Semantik).

Eine formal eindeutige und vollständige Definition von Syntax (Notationsele-mente plus Grammatik) und Semantik (Bedeutung der Notation innerhalb der Modellierungsebene) nennt man Metamodell oder auch Sprache.

Einfacher ausgedrückt: Ein Metamodell ist ein Modell, das beschreibt wie be-stimmte Modelle gebaut bzw. interpretiert werden.

Metamodellierung in der Softwareentwicklung: Das Artefakt wird zum Modell

Die Aufgabe eines Modells ist es, Informationen eines bestimmten Teilaspektes möglichst formal und eindeutig zu beschreiben. Vor dem Hintergrund der oben beschriebenen Formalisierung von Projektinformationen, kann auch ein stark formalisiertes Artefakt als Modell bezeichnet werden. Die auf abstrakter Ebene für einen Artefakttyp festgelegte Informationsstuktur ist dementsprechend das dem Artefakt zugrunde liegende Metamodell.

Definition der Syntax

Die Syntax einer Sprache bzw. eines Metamodells wird bestimmt aus der Notationsform und der darüber liegenden Grammatik. Für die praktische Metamodellierung in Softwareprojekten wird hier üblicherweise auf bereits bestehende Beschreibungssprachen wie UML oder XML zurückgegriffen. Diese Sprachen sind zum einen sehr verbreitet und werden inzwischen durch unzählige Tools unterstützt, zum anderen bieten sie genügend Freiraum zur Anreicherung der Sprache mit eigener spezifischer Semantik.

Definition der Semantik

Ein Modell muss, um es sinnvoll interpretieren zu können, eindeutig mit einer klar definierten semantischen Bedeutung gepaart sein.

Die semantische Ausprägung der Sprachen wird mit Bezeichnungen von be-trachteten Objekten und Aspekten aus der Welt, die es zu beschreiben gilt, for-mal genau festgelegt. Besonders wichtig ist hier die absolute Eindeutigkeit eines jeden Modellelementes. Die gefundenen Begriffe werden miteinander in Bezie-hung gesetzt und mit Regeln für Schlussfolgerungen und Validierung versehen.

Um die Semantik einer bestimmten Modellform festzulegen, ist vor allem zu-nächst die Modellierungsdomäne zu betrachten. Modelle aus dem Bereich der Anforderungsanalyse (Use Case Modell, Geschäftsprozessmodell, etc.) haben in erster Linie eine fachliche Semantik, d.h. die bilden die Welt des Anwenders ab. Jedoch kann die Semantik eines Modells auch technischer Natur sein, wenn es z.B. darum geht, Schnittstellen zu entwickeln oder Frameworks zu implementie-ren. In diesem Falle ist die Zielwelt (Fachdomäne) des Modells eine technische.

Bei der Definition der Semantik sollten folgende Aspekte berücksichtigt wer-den:

  • Definition der Zielwelt (z.B. Unternehmensebene des Kunden, Benutzersicht, technische Sicht, etc.)
  • Hieraus abgeleitet die Definition der realen Bedeutung jedes Modellelementes innerhalb der Zielwelt
  • Definition des Abstraktionsgrades
SuchenSitemap