Vereinigung Vererbung in UML 2.0 im Jahr 2005 eingeführt wurde Obwohl UML wahrscheinlich am häufigsten in der objektorientierten Analyse und Design verwendet wird, ist es am Sein eine Allzweck Modellierungssprache richtet. Daher enthält es Funktionen wie Mehrfachvererbung, Attributspezialisierung/Verfeinerung und Assoziationsvererbung, die in Programmiersprachen nicht unbedingt unterstützt wird. In Ontologiesprachen wie OWL 2 können diese Begriffe jedoch natürlich ausgedrückt werden.
Für einige andere Zwecke habe ich eine Writ-up w.r.t. Assoziationsvererbung und äquivalente UML-Repräsentationen, die ich hier zur Verfügung stelle, falls sie für andere hilfreich ist.
In Bezug auf Assoziationen und Attribute der UML-Spezifikation drei eng verwandte Begriffe nämlich association specialization
, subsetting
und redefinition
definiert. Assoziationsspezialisierung wird auf der Ebene der vollständigen Assoziation angewendet, während Subset- und Neudefinition auf der Ebene von Assoziationsenden und Attributen angewendet werden.
Die Bedeutung der Assoziationsspezialisierung ähnelt der von Klassen. Das heißt, die Assoziation A2
ist eine Spezialisierung der Assoziation A1
in Figur (a). Daher ist jede Verbindung zwischen Instanzen der Klassen C3
und C4
notwendigerweise eine Verbindung zwischen Instanzen der Klassen C1
und C2
.Jede Verknüpfung zwischen Instanzen der Klassen C1
und C2
ist jedoch nicht unbedingt eine Verknüpfung zwischen Instanzen der Klassen C3
und .
Aufgrund C3/C4
spezialisiert C1/C2
in Abbildung (a), so folgt daraus, dass alle Verbindungen zwischen C1
und C2
werden von C3
und C4
vererbt werden. Darüber hinaus sind alle ererbten Assoziationen zwischen C3
und C4
notwendigerweise Teilmengen der Assoziationen zwischen C1
und C2
. Abbildung (a) geht jedoch weiter als das: nicht nur ist die Assoziation A1
geerbt von C3
und C4
, es führt auch eine neue Assoziation A2
. Da A2
eine neue Assoziation ist, kann ohne die Assoziationsspezialisierung nichts darüber abgeleitet werden, wie sich A1
auf A2
bezieht. Daher ist in Abbildung (a) der Zweck der Assoziationsvererbung, eine neue Assoziation A2
einzuführen und anzugeben, wie sie sich auf die bestehende Assoziation bezieht A1
.
In Abbildung (b) ist angegeben, dass c4 {subsets c2}
. Dies bedeutet, dass die Sammlung von Instanzen, die durch die Assoziationsstelle c4
repräsentiert wird, eine Teilmenge der Sammlung von Instanzen ist, die durch das Assoziationsende c2
dargestellt werden. Dasselbe gilt für die Assoziationsenden c3
und c1
. Subsetting unterscheidet sich von Association Spezialisierung in dieser Teilmenge berücksichtigt Set-Mitgliedschaft nur, während Association Spezialisierung spezialisiert die Merkmale, die Link-Mitgliedschaft bestimmen.
Neudefinition wird verwendet, um die Definition eines Features zu ändern. Als ein Beispiel definiert die Assoziationsstelle c4
c2
in Abbildung (c) neu. Die Neudefinition unterscheidet sich von der Assoziationsspezialisierung dadurch, dass die Neudefinition für ein Assoziationsende und nicht für die vollständige Assoziation definiert ist.
Obwohl die ursprüngliche Frage die Assoziationsvererbung in Vererbungshierarchien betrifft, kann es aufschlussreich sein zu beachten, dass Assoziationsvererbung auch in Abwesenheit von Vererbungshierarchien verwendet werden kann. In Abbildung (d) ist die gesamte Frau, von der ein Mann geschieden wurde, eine Untergruppe der Frauen, mit denen er verheiratet war.
In den Figuren (a) und (d) die Assoziationen sind Bürger erster Klasse des Modells. Sie können daher durch Assoziationsklassen (A1/A2
und MarriedTo/DivorceFrom
) mit einer Vererbungsbeziehung zwischen den jeweiligen Assoziationsklassen repräsentiert werden, obwohl die Verwendung der Assoziationsspezialisierung kürzer Ihre Absicht angeben kann, Vereinigungen als Spezialisierung zwischen Assoziationsklassen zu spezialisieren.
Zusammenfassend: Die Spezialisierung einer Assoziation ist äquivalent zu der Teilmenge von (einem von) ihren Enden und die Neudefinition kann als ein Unterkonzept der Teilmenge behandelt werden.
Sind Sie sicher, ob es sich um eine gültige UML handelt? – Vanguard
Es scheint mit einem UML-Tool erstellt zu werden. Das Bild hier ist etwas modifiziert. Also, ich denke, es ist ein gültiger. –