Definition: Assoziation in Klassendiagrammen

Als Assoziation bezeichnen wir in UML-Klassendiagrammen die einfachste und allgemeinste Beziehung zwischen zwei Klassen, die eine Verbindung oder Interaktion zwischen ihren Objekten darstellt.

Diese Beziehung wird durch eine gerade Linie zwischen den Klassen symbolisiert und kann optional mit einem Namen und Multiplizitäten (1, 0..1, ..*, etc.) versehen werden, um die Art und Anzahl der Beziehungen genauer zu definieren.

Der Name kann zusätzlich mit einer Leserichtung (kleines ausgefülltes Dreieck) versehen werden. Sie bezieht sich dabei jedoch nur auf den Namen und hat keinen Bezug zur Navigierbarkeit der Assoziation.

Es gibt verschiedene Arten von Assoziationen:

  • Bidirektionale Assoziation:
    • Der Standardfall, beide Klassen kennen sich und interagieren miteinander.

    • Dargestellt durch eine einfache Linie ohne Pfeilspitzen:

  • Unidirektionale Assoziation:
    • Nur eine der beiden Klassen kennt die andere und interagiert mit ihr.

    • Dargestellt durch eine Linie mit einem offenen Pfeil in Richtung der bekannten Klasse:

  • Aggregation:
    • Eine spezielle Form der Assoziation, die eine “Teil-Ganzes”-Beziehung beschreibt, wobei das Teil auch unabhängig vom Ganzen existieren kann.

    • Dargestellt durch eine Linie weiße Raute auf der Seite des Aggregats:

  • Komposition:
    • Eine stärkere Form der Aggregation, bei der das Teil ohne das Ganze nicht existieren kann.

    • Dargestellt durch eine Linie und eine schwarze Raute auf der Seite des Aggregats:

Anmerkung

Assoziationen mit PlantUML

Mit PlantUML erhalten wir eine einfache bidirektionale Assoziationen durch:

@startuml
 
hide circle
hide members
show fields
 
class "Ganzes" as ganzes {
    * Integer **id**
}
 
class "Teil" as teil {
    * Integer **id**
}
 
ganzes "1" -right- "0..*" teil : besteht aus >
 
@enduml