UML2: Generalisierungen (Teil 4)

Nach dem vorangegangenen Artikel über die Struktur des Metamodells geht es in diesem Text um konkreten Inhalt, nämlich die Generalisierung. Zunächst ein Zitat aus der UML Superstructure Specification:
„A generalization is a taxonomic relationship between a more general classifier and a more specific classifier. Each instance of the specific classifier is also an indirect instance of the general classifier. Thus, the specific classifier inherits the features of the more general classifier.“
Das obige Zitat beinhaltet eine Referenz auf „features“, damit sind „StructuralFeatures“ und „BehavioralFeatures“ gemeint, also (vereinfacht ausgedrückt) Properties und Operationen.

Wie wird die Generalisierung im Metamodell modelliert? Das obige Zitat drückt bereits aus, dass die Generalisierung eine Beziehung zwischen „Classifiers“ ist. Daher liegt die Vermutung nahe, dass die Generalisierung wie in folgendem Diagramm modelliert ist:
too simple generalization
Während die Beziehung im obigen Diagramm ausreicht, um die Generalisierung zu realisieren, ist das Metamodell von UML doch etwas komplexer. Das hat den Hintergrund, dass im Metamodell schon abstrakte Klassen für Beziehungen aller Art beinhaltet (und die Generalisierung ist eine Beziehung zwischen Classifiers), und das Konzept von Beziehungen auch für die Generalization benutzt wird. Trotzdem ist das obige Diagramm korrekt, denn die Informationen über die „Parents“, also die generellen Classifiers, werden über eine „derived“-Beziehung (erkennbar an dem Slash „/“ für abgeleitete Properties) so abgebildet. Das bedeutet, dass die Generalisierung über die Klasse „Generalization“ modelliert wird, aber die Informationen gleichzeitig über die „general“-Property verfügbar sind.
Im folgenden Bild ist der Ausschnitt aus dem UML Metamodell, der Generalisierungen definiert, abgebildet:
Generalization for Classifiers

An dieser Stelle noch ein Verweis auf den Teil 1 des Metamodells, wo schon die Modellierung der Superklassen angedeutet wurde. Dort hat eine Klasse die Property „superClass“, die von der Generalisierung abgeleitet ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.