Beziehungen zwischen Elementen in Klassendiagrammen
Nach oben zu UML 1.5-Klassendiagramm
Eine Beziehung ist eine Verbindung zwischen Elementen. In der Modellierung sind die drei wichtigsten Beziehungen Abhängigkeiten, Generalisierungen und Assoziationen. Grafisch wird eine Beziehung mit für den jeweiligen Beziehungstyp unterschiedlichen Linien dargestellt.
Inhaltsverzeichnis
Beziehungstypen zwischen Elementen in Klassendiagrammen
Für Elemente in Klassendiagrammen können die folgenden Beziehungstypen verwendet werden:
- Generalisierung und Implementierung
- Abhängigkeit
- Assoziation (einfache Assoziation, n-fache Assoziation, Aggregation und Komposition)
- Bereitgestellte und erforderliche Schnittstellen (UML 2.0)
Generalisierung und Implementierung
- Generalisierung - Eine Generalisierung ist eine Beziehung zwischen einem allgemeinen Element (Oberklasse oder übergeordnete Klasse) und einem spezielleren Element dieses Typs (Unterklasse oder untergeordnete Klasse). Mit einer Generalisierung wird auch auf die Vererbungsbeziehung zwischen zwei Schnittstellen (untergeordneter und übergeordneter) gezeigt.
- Generalisierung bedeutet, dass das untergeordnete Element die Eigenschaften (Attribute, Operationen usw.) des übergeordneten Elements erbt und dass Objekte des untergeordneten Elements überall dort verwendet werden können, wo das übergeordnete Objekt auftritt.
- Grafisch wird eine Generalisierung als einfache Linie mit einem gefüllten Pfeil am Ende dargestellt, der auf das übergeordnete Element zeigt:
- Implementierung - Eine Implementierungsbeziehung ist eine spezielle Art der Generalisierungsbeziehung. Eine Implementierung it eine Vererbungsbeziehung, die angibt, dass eine untergeordnete Klasse eine übergeordnete Schnittstelle implementiert.
- Grafisch wird eine Implementierung als gestrichelte Linie mit einem gefüllten Pfeil am Ende dargestellt, der auf die übergeordnete Schnittstelle zeigt:
Abhängigkeit
Eine Abhängigkeit ist eine Beziehung zwischen zwei Elementen, bei der eine Änderung eines Elements (des unabhängigen Elements - Anbieter) Änderungen des anderen Elements (des abhängigen Elements - Client) bewirken kann.
- Grafisch wird eine Abhängigkeit als gestrichelte Linie dargestellt, die auf das unabhängige Element (Anbieter ) gerichtet ist:
Assoziation
Eine Beziehung zwischen Instanzen zweier Klassen. Assoziationen zwischen zwei Klassen bestehen, wenn eine Instanz der einen Klasse (Client) von der anderen (Anbieter) wissen muss, um ihre Aufgaben durchzuführen.
In einem Diagramm wird eine Assoziation durch eine einfache Linie zwischen zwei Klassen dargestellt.
Navigation, Rollen und Multiplizität sind optionale Elemente, die die Interpretation der Assoziation vereinfachen:
- Assoziationsnavigation. Assoziationen können gerichtet oder ungerichtet sein. Eine gerichtete Beziehung zeigt auf die Anbieterklasse (das Ziel). Ein Navigationspfeil auf einer Assoziation zeigt die Richtung an, in der die Assoziation abgefragt werden kann. Eine Klasse kann bezüglich ihrer "Elemente" abgefragt werden. Abfragen in entgegengesetzter Richtung sind nicht möglich. Am Pfeil lässt sich auch der "Eigentümer" der Implementierung der Assoziation erkennen. Assoziationen ohne Navigationspfeil sind bidirektional. Beispielsweise gibt eine bidirektionale Assoziation zwischen den Klassen
Bibliothek
undBuch
an, dass Objekte des TypsBibliothek
über Objekte des TypsBuch
abgefragt werden können und umgekehrt.
- Rollen. Eine Assoziation besitzt zwei Enden. Jedes Ende kann mit einem Rollennamen versehen sein, der den Charakter der Assoziation beschreibt.
- Multiplizität. Ein Assoziationsende kann eine Multiplizität besitzen. Die Multiplizität eines Assoziationsendes bestimmt, wie viele Instanzen der Klasse mit einer einzelnen Instanz am anderen Ende verbunden sein können. Die Multiplizität kann als einzelne Werte oder als Wertebereich angegeben werden.
- In der folgenden Tabelle sind die gängigsten Arten der Multiplizität aufgeführt:
Multiplizität | Bedeutung |
---|---|
|
Keine oder eine Instanz. Die Notation |
|
Genau eine Instanz oder genau |
|
Keine Beschränkung bezüglich der Anzahl der Instanzen (auch keine Instanz ist möglich). |
|
Mindestens eine Instanz. |
Assoziationstypen
Es gibt verschiedene Untertypen von Assoziationsbeziehungen:
- Assoziation (Einfache Assoziation) - Eine Assoziation ("einfache Assoziation") zwischen zwei gleichgeordneten Klassen. Die Assoziation repräsentiert eine rein strukturelle Beziehung zwischen zwei gleichgeordneten Klassen. Beide Klassen befinden sich konzeptuell auf derselben Ebene, keine ist wichtiger als die andere.
-
- Grafisch wird eine Assoziation durch eine einfache Linie zwischen zwei Klassen dargestellt:
- Diese Abbildung zeigt die "einfache Assoziationsbeziehung", mit einer Eigentümerrolle (
owner
), der Multiplizität1
und0..*
und legt die Assoziationsnavigation von der RolleClient
zu der RollePassword
fest.
- Assoziation (n-fache Assoziation) - Die n-fache Assoziation kann soviel Assoziationsendklassen (Teilnehmer) wie erforderlich verbinden. Erstellen Sie n-fache Assoziationen mit einer Assoziationsklasse.
-
- Assoziationsklassen werden in Diagrammen durch drei Elemente dargestellt:
- * Assoziationsklasse (), dargestellt durch ein Klassensymbol.
- * N-fache Assoziationsklassenbeziehung (), dargestellt durch eine Raute.
- * Assoziationskonnektor (), dargestellt durch eine Linie zwischen einem Assoziationsklassensymbol und einer Assoziationsraute.
-
- Im Objektinspektor für eine Assoziationsklasse, eine Assoziationsbeziehung und einen Konnektor wird zusätzlich die Registerkarte Assoziation angezeigt. Sie enthält lediglich die Eigenschaft label, die automatisch den Namen der Assoziationsklasse enthält. Bei Assoziationsklassen und Assoziationsendebeziehungen enthält der Eintrag Custom des Objektinspektors weitere Eigenschaften, die der Rolle dieses Bestandteils der n-fachen Assoziation entsprechen (
associationClass
bzw.associationEnd
). - Sie können beliebige Assoziationsendebeziehungen oder Teilnehmerklassen löschen, ohne dass die gesamte n-fache Assoziation entfernt wird. Wenn Sie jedoch die Assoziationsklasse löschen, werden alle Bestandteile der n-fachen Assoziation entfernt.
- Siehe auch: Assoziationsklasse erstellen.
- Im Objektinspektor für eine Assoziationsklasse, eine Assoziationsbeziehung und einen Konnektor wird zusätzlich die Registerkarte Assoziation angezeigt. Sie enthält lediglich die Eigenschaft label, die automatisch den Namen der Assoziationsklasse enthält. Bei Assoziationsklassen und Assoziationsendebeziehungen enthält der Eintrag Custom des Objektinspektors weitere Eigenschaften, die der Rolle dieses Bestandteils der n-fachen Assoziation entsprechen (
- Aggregation - Eine Aggregation ist ein spezieller Assoziationstyp, der eine "Teil-zum-Ganzen"-Beziehung darstellt, in der eine Klasse ein größeres Element ("Ganzes") repräsentiert, das kleinere Elemente ("Teile") enthält. Eine separate Aggregationsbeziehung wird zwischen allen Klassen, die einen Teil repräsentieren, und einer Klasse, die das Ganze repräsentiert, verwendet.
-
- Diese Abbildung zeigt die Aggregationsbeziehung. Die Klasse
Group
repräsentiert das "Ganze" und die KlassePerson
"Teile". Eine Multiplizität von0..*
an beiden Enden und die Rollenunion
undmember
geben an, dass jedeunion
(des TypsGroup
) eine beliebige Anzahl vonmember
-Rollen (des TypsPerson
) enthalten kann, und im Gegenzug jedes TypobjektPerson
einmember
einer beliebigen Anzahl vonunion
-Rollen (des TypsGroup
) sein kann. Die bidirektionale Aggregationsnavigation legt fest, dass einGroup
-Typobjekt seinePerson
-Typ-Member und einPerson
-Typobjekt Unions (des TypsGroup
), deren Member es ist, abfragen kann.
- Diese Abbildung zeigt die Aggregationsbeziehung. Die Klasse
- Komposition - Eine Komposition ist eine spezielle "starke" Form einer Aggregation, bei der das "Kompositionsende" die komplette Verantwortung für die Verwaltung seiner "Teileenden" hat (z.B. das Erstellen und Freigeben seiner Teile).
-
- Diese Abbildung zeigt die Kompositionsbeziehung. Die Klasse
Order
repräsentiert die "Komposition" und die KlassenCustomer
undLifeItem
"Teile".
- Diese Abbildung zeigt die Kompositionsbeziehung. Die Klasse
Bereitgestellte und erforderliche Schnittstellen
UML 2.0-Klassendiagramme führen die bereitgestellten und erforderlichen Schnittstellen ein.
In UML 2.0-Klassendiagrammen werden bereitgestellte Schnittstellen mit ("Lollipop"-Notation) und erforderliche Schnittstellen mit ("Sockel"-Notation) gekennzeichnet (siehe Elemente in einem UML 2.0-Klassendiagramm).