Impressum
< Index

Beziehungen

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.
eine Beziehung zwischen Klasse A und B
Klasse A und B mit einer Beziehung
(Klassendiagramm)

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.
1 zu viele Beziehung
Ein Kunde hat 0 bis viele Konten
1 zu 1 Beziehung
Ein Kunde hat genau ein Konto
ein Kind hat genau 2 Eltern und Eltern haben beliebig viele Kinder
Ein Kind hat 2 Eltern
Eltern haben beliebig viele Kinder (auch 0)
mögliche Multiplizitäten
mögliche Multiplizitäten

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.
Konto und Kunde mit Rollennamen Festgeldkonto und Inhaber
Klassendiagramm mit Rollennamen und Multiplizität

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:
Kunde ruft Konto-Methoden auf aber nicht andersherum
Nur der Kunde ruft Methoden vom Konto-Objekt auf
Kunde ruft Konto-Methoden auf aber nicht andersherum
Spieler und Map rufen wechselseitig Methoden auf
Einseitige Assoziation, andere Seite unspezifiziert
Lehrer ruft Schülermethoden auf
aber die Schüler haben sich noch nicht festgelegt
unsinnige Assoziation, wo beide Seiten nicht aufgerufen werden
Das ist Unsinn, denn wenn keine Methoden aufgerufen werden besteht auch keine Beziehung.