4.2 Multiplizität

Ist eine Klasse durch eine Assoziation mit einer anderen Klasse verbunden, muss festgelegt werden, mit wie vielen Objekten der gegenüberliegenden Klasse ein Objekt in Beziehung stehen kann.

Beispiel
Abb. 4-6: UML-Klassendiagramm: Die Multiplizität einer Assoziation
Frage

Fragen 4-2: Multiplizität

Assoziation „arbeitet in“
Frage:
In wie vielen Abteilungen kann ein Mitarbeiter arbeiten? Lösung
Antwort:
Die Anforderung sieht vor, dass ein Mitarbeiter in genau einer Abteilung arbeitet.
Frage:
Wie viele Mitarbeiter können in einer Abteilung arbeiten? Lösung
Antwort:
Die Anforderung sieht vor, dass in einer Abteilung beliebig viele1 Mitarbeiter arbeiten können. Es kann auch vorkommen, dass einer Abteilung zeitweise kein Mitarbeiter zugeordnet ist.
Assoziation „leitet“
Frage:
Wie viele Abteilungen kann ein Mitarbeiter leiten? Lösung
Antwort:
Die Anforderung sieht vor, dass ein Mitarbeiter keine oder eine Abteilung leiten kann.
Frage:
Von wie vielen Mitarbeitern kann eine Abteilung geleitet werden? Lösung
Antwort:
Die Anforderung sieht vor, dass eine Abteilung zeitweise von keinem oder genau einem Mitarbeiter geleitet werden kann.

Bei einseitig gerichteten Assoziationen ist die Multiplizität nur auf der Seite der Assoziation relevant, zu der navigiert werden kann.

UML-Klassendiagramm: Multiplizität bei einseitig gerichteten Assoziationen
Abb. 4-7: UML-Klassendiagramm: Multiplizität bei einseitig gerichteten Assoziationen
Weitere Beispiele für Multiplizitäten
Multiplizität Bedeutung
1 genau einer
0..1 keiner oder einer
1..5 einer bis fünf
* keiner, einer oder mehrere
0..* keiner, einer oder mehrere
1..* mindestens einer

Die Multiplizität einer Assoziation gibt an, mit wie vielen Objekten der gegenüberliegenden Klasse ein Objekt in Beziehung stehen kann.

Ist die Anzahl konstant, wird die entsprechende Zahl bei der gegenüberliegenden Klasse, oberhalb der Verbindungslinie notiert. Variiert die Anzahl wird die untere und die obere Grenze angegeben.

Merke: Multiplizität
Frage

Fragen 4-3: Multiplizitäten

  1. Die Anforderungen für eine Software zur Auftragsverwaltung sehen vor, dass ein Kunde keinen, einen oder mehrere Aufträge erteilen kann. Umgekehrt kann ein Auftrag immer nur von genau einem Kunden erteilt werden. Welche Multiplizitäten müssen der Assoziationen „erteilt“ hinzugefügt werden? Lösung
    Abb. 4-8: Kunde erteilt Auftrag
  2. Die Anforderungen für eine Software zur Verwaltung von Tennisturnieren sehen vor, dass ein geplantes Tennismatch nur gespeichert werden kann, wenn ihm genau zwei Spieler zugewiesen sind. Ein Spieler wiederum kann kein, ein oder mehrere Tennismatche austragen.

    Abb. 4-9: Spieler spielt Tennismatch
    1. Welche Multiplizitäten müssen der Assoziationen „trägt aus“ hinzugefügt werden? Lösung
    2. Nehmen Sie an, die Anforderungen an die Turnierverwaltungssoftware (1b) ändern sich dahingehend, dass eine Person erst dann als Spieler geführt werden darf, wenn sie mindestens ein Tennismatch ausgetragen hat. Welche Auswirkung hätte dies auf die Multiplizität? Lösung
      Antwort:
      '1..*' statt '*'
    3. Welchen Vorteil bietet es, die Assoziation „trägt aus“ (1b) zweiseitig zu modellieren? Lösung
      Antwort:
      Eine zweiseitige Assoziation erlaubt es einerseits, von einem Tennismatch ausgehend zu den jeweils beteiligten Spielern zu gelangen. Andererseits ist es auch möglich, von einem Spieler ausgehend zu jedem seiner Tennismatche zu gelangen. Beide Möglichkeiten werden bei der Durchführung eines Tennisturnieres zur Beantwortung von Fragen, zum Beispiel von Spielern oder Organisatoren, benötigt.

Exkurs: Multiplizität vs. Kardinalität

In der Mathematik versteht man unter Kardinalität die Mächtigkeit einer Menge. Bei einer endlichen Menge ist dies die tatsächliche Anzahl ihrer Elemente.

Da wir bei einer Assoziation lediglich angeben, mit wie vielen Objekten der gegenüberliegenden Klasse ein Objekt prinzipiell in Beziehung stehen kann, spricht die UML hier von der Menge aller möglichen Kardinalitäten.2

Die UML definiert Multiplizität dementsprechend als „specification of the range of allowable cardinality values - the size - that a set may assume” 3. Das heißt, die UML versteht unter Multiplizität die Menge aller zulässigen Kardinalitäten.

Die begriffliche Trennung zwischen Multiplizität und Kardinalität wird außerhalb der UML nicht immer so eindeutig durchgehalten. Insbesondere im Entity-Relationship-Model wird der Begriff der Kardinalität häufig in einer Bedeutung verwendet, der in der UML die Multiplizität entspricht.

Aufgabe

Aufgabe 4-1

Erstellen Sie für die folgenden Aufgaben jeweils ein sinnvolles UML-Klassendiagramm. Entscheiden Sie bei jeder Assoziation selbst, ob Sie im jeweiligen Fall eine unidirektionale oder bidirektionale Assoziation für sinnvoll halten.

  1. Die IT-Akademie bietet Fortbildungskurse im Bereich Informationstechnologie an. Die Obergrenze pro Kurs liegt bei 20 Teilnehmern. Die Verwaltung soll nun durch eine geeignete Software unterstützt werden. Bisher erfolgt die Verwaltung papiergestützt. Beispielhaft sind die folgenden Dokumente:

    Fortbildungskurse
    Abb. 4-10: Fortbildungskurse
    Lösung
    Lösung
    img/4_11_UML_Fortbildung_uni.svg
    Abb. 4-11: Verwaltung Fortbildungskurse (UML-Variante mit ausschließlich unidirektionalen Assoziationen)
    img/4_12_UML_Fortbildung_bi.svg
    Abb. 4-12: Verwaltung Fortbildungskurse (UML-Variante mit zum Teil bidirektionalen Assoziationen)
  2. Das Reisebüro Fernweh erfasst die Buchungen ihrer Kunden zurzeit noch ausschließlich papiergestützt. Beispielhaft sind die folgenden Dokumente:

    Buchungen
    Abb. 4-13: Buchungen
    Lösung
    Lösung
    img/4_14_UML_Reisebuero_uni.svg
    Abb. 4-14: Reisebüro (UML-Variante mit ausschließlich unidirektionalen Assoziationen)
    img/4_15_UML_Reisebuero_bi.svg
    Abb. 4-15: Reisebüro (UML-Variante mit zum Teil bidirektionalen Assoziationen)