Assoziationen sind Teil der Unified Modeling Language (kurz UML) und stellen Verbindungen zwischen Classifiers (Klassen, Schnittstellen, Anwendungsfälle etc.) dar.
Assoziationen bei Klassendiagrammen
In der UML ist es nicht nur entscheidend, abzubilden, welche Klassen bzw. Objekte im Softwaresystem enthalten sind, sondern auch in welcher Beziehung sie zueinander stehen.
Zur Darstellung dieser Beziehungen werden Assoziationen verwendet.
Achtung: Bei Objekten werden Assoziationen Objektbeziehungen genannt.
Eine Klasse A kann also in einer Verbindung mit Klasse B stehen, was durch einen Strich zwischen den beiden Klassen dargestellt wird:
Jetzt kann diese Assoziation zusätzlich auch noch beschriftet werden, um kenntlich zu machen, in welcher Beziehung die beiden Klassen zueinander stehen:
Eine Klasse kann außerdem mit sich selbst in Beziehung stehen:
Multiplizitäten
Mithilfe der Multiplizitäten kann außerdem deutlich gemacht werden, wie viele Objekte einer Klasse mit wie vielen Objekten einer anderen Klasse in Beziehung stehen.
Schau dir folgendes Beispiel an:
Diese Notation bedeutet einfach, dass jedes Objekt von Klasse A mit genau 3 Objekten von Klasse B in Beziehung steht.
Wenn jedoch statt der 3 eine 0..2 an dieser Stelle steht, bedeutet das, dass jedes Objekt von Klasse A mit höchstens 2 Objekten von Klasse B in Beziehung steht.
Eine weitere wichtige Notation ist die Stern-Notation. Dieser Stern bedeutet, dass ein Objekt von Klasse A mit keiner oder beliebig vielen Objekten von Klasse B in Beziehung steht.
Neben der Darstellung von höchstens gibt es natürlich auch eine Darstellung von mindestens. Dazu schreibst du beispielsweise 2..* an die Assoziation bei Klasse B:
Wenn ein Objekt der Klasse A mit genau 2, 3 oder 7 Objekten der Klasse B in Verbindung steht, werden die jeweiligen Zahlen mit einem Komma getrennt auf die Assoziation bei Klasse B geschrieben:
Assoziationsrollen
Assoziationsrollen geben an, welche Rolle ein Objekt einer Klasse in einer Beziehung spielt. Diese Assoziationsrollen dienen genau wie die Benennung der Assoziationen dem besseren Verständnis, sind aber nicht verpflichtend.
Die Assoziationsrollen werden immer neben der zu bezeichnenden Klasse in Kleinbuchstaben auf die Assoziation geschrieben:
Mehrstellige Assoziation
Manchmal kann es vorkommen, dass mehrere Klassen in Beziehung zueinander stehen. Um diese mehrstellige Assoziation darzustellen, wird eine Raute verwendet:
Klasse A, B und C stehen jetzt also alle in Beziehung zueinander.
Assoziationen bei Objektdiagrammen
Die Assoziationen sind bei Objektdiagrammen ähnlich aufgebaut wie bei den Klassendiagrammen.
Statt der Klassen werden jedoch konkrete Objekte der Klassen verwendet. Außerdem schaust du dir in deinem dazugehörigen Klassendiagramm an, welche Klassen verbunden sind und überträgst diese Verbindungen in dein Objektdiagramm.
Dabei spielt auch die Multiplizität eine Rolle. Denn wenn beispielsweise laut Klassendiagramm ein Objekt der Klasse A mit höchstens zwei Objekten der Klasse B verknüpft sein soll, darfst du nicht drei Objekte von B mit dem Objekt von A verbinden.
Bei der Illustration des Objektdiagramms können dann aber die Beschriftungen für die Multiplizitäten weggelassen werden:
Beispiel Klassendiagramm
Stell dir vor, du möchtest dir einen Überblick darüber verschaffen, welche Komponenten (Klassen) ein Geschäft benötigt und wie diese untereinander verbunden sind.
Dafür möchtest du ein Klasssendiagramm aufzeichnen.
Zuerst musst du dir überlegen, welche Klassen du benötigst.
Das sind beispielsweise die Klassen Store (Geschäft), Employee (Angestellte:r), Customer (Kund:in) und Article (Artikel).
Die Angestellten arbeiten in dem Geschäft. Es müssen dabei immer mindestens vier und maximal zehn Angestellte in einem Laden sein:
Das eine Geschäft kann von beliebig vielen Kund:innen besucht werden:
Die Kund:innen können dabei beliebig viele Artikel kaufen, jedoch mindestens einen, um einen Kauf abzuschließen. Dabei kann ein Artikel von nur einer Person gekauft werden:
Ein Artikel kann auch von nur einer Person verkauft werden. Jedoch kann eine Person beliebig viele Artikel verkaufen:
Jetzt ist dein Klassendiagramm für die Klassen Store, Employee, Article und Customer vollständig!
Beispiel Objektdiagramm
Jetzt möchtest du aus deinem Klassendiagramm ein Objektdiagramm für das Geschäft myStore ableiten.
myStore beschäftigt die Mitarbeiter:innen Jan, Lea, Chloé und Jeremiah.
Es muss also ein Objekt der Klasse Store und vier Objekte der Klasse Employees erzeugt werden:
Der Kunde Jayden besucht das Geschäft:
Jayden kauft eine Jeans:
Die Jeans wird dabei von dem Verkäufer Jeremiah verkauft:
Und fertig ist dein Objektdiagramm!