Wenn ein Objekt der Klasse A Methoden eines Objekts der Klasse B aufruft, so haben die Klassen A und B eine
Beziehung (oder Assoziation oder Relation).
Die einfachste Art der Beziehung wird durch eine Linie zwischen den Klassen dargestellt.
Hier ist noch nicht festgelegt, welche Klasse Methoden welcher Klasse aufruft.
Es ist auch nicht festgelegt, wie viele Objekte in Beziehung stehen oder welche Rollen diese einnehmen.
Multiplizität
Auf jeder Seite einer Beziehung kann angegeben werden, wie viele Objekte in dieser Beziehung beteiligt sind.
Ist die Anzahl beliebig, so wird ein * notiert.
Ist die Anzahl fest so wird die Zahl (z.B. 2) notiert.
Ist es ein Bereich so wird die Untergrenze und Obergrenze mit zwei Punkten dazwischen notiert.
Ist die Untergrenze 0 so spricht man von einer Kann-Assoziation.
Ist die Untergrenze 1 oder größer so ist es eine Muss-Assoziation.
Rollennamen
Rollennamen bezeichnen die Funktion der Objekte in der Beziehung näher. Vor allem beim Umsetzen von OOP-Klassendiagrammen in
Programmcode sind diese Rollennamen wichtig.
Die Beziehung zwischen einem Kunden und einem Konto können vielfältig sein.
Ein Kunde kann Inhaber des Kontos sein, er kann Treuhänder für das Konto sein, er kann Bevollmächtigt sein oder
Vormund für das Konto, er kann aber auch über das Konto wachen, wenn es gepfändet wurde.
Genau so kann ein Konto ein Girokonto, ein Festgeldkonto ein Treuhandkonto (z.B. für Mietkautionen) etc. sein.
Wenn man ein Softwaresystem für einen Kunden plant und realisiert ist es wichtig zu wissen, welche Rollen vorgesehen sind.
Gerichtete Beziehungen
Ist eine Beziehung als Linie dargestellt, so ist nicht festgelegt welche Objekte Methoden aufrufen.
Wenn man dies in der Planung der Klassen festgelegt hat so kann man dies im Klassendiagramm darstellen:
als Pfeilspitze - in Pfeilrichtung werden Methoden aufgerufen
als X - in diese Richtung werden keine Methoden aufgerufen