In der Unified Modeling Language (UML) ist eine Assoziation eine grundlegende Beziehung zwischen Klassen, die verwendet wird, um eine Verbindung oder eine Beziehung zwischen Objekten dieser Klassen darzustellen. Eine Assoziation drückt aus, dass Objekte der beteiligten Klassen in irgendeiner Weise miteinander verbunden oder in Beziehung stehen. Assoziationen sind eine wichtige Komponente von Klassendiagrammen in der UML und helfen, die Struktur eines Systems zu modellieren.
Hier sind einige wichtige Merkmale und Konzepte im Zusammenhang mit Assoziationen:
Klassenbeteiligung: Eine Assoziation verbindet normalerweise zwei oder mehr Klassen miteinander. Diese Klassen werden oft als "Quellklasse" und "Zielklasse" bezeichnet und sind durch die Assoziation miteinander verbunden.
Rollen: Jede Klasse in einer Assoziation kann eine Rolle spielen, die ihre spezifische Funktion in der Beziehung beschreibt. Beispielsweise könnte eine Assoziation zwischen den Klassen "Student" und "Kurs" die Rollen "Student" und "Kurslehrer" haben, um die Beziehung zwischen einem Studenten und dem Kurslehrer darzustellen.
Multiplizität: Die Multiplizität gibt an, wie viele Instanzen einer Klasse mit einer Instanz der anderen Klasse in Verbindung stehen können. Sie wird oft mit Mindest- und Höchstwerten (z. B. 1..* für "eins oder mehr") angegeben.
Navigationsrichtung: Assoziationen können eine Navigationsrichtung haben, die angibt, welche Klasse die Assoziation aktiviert und in welcher Richtung die Beziehung durchsucht werden kann.
Kardinalität: Die Kardinalität beschreibt, wie viele Instanzen einer Klasse in Beziehung zu einer Instanz einer anderen Klasse stehen können. Sie wird oft mit Zahlen oder Symbolen wie "1" (eins) oder "*" (beliebig viele) dargestellt.
Assoziationsendpunkte: Assoziationsendpunkte sind die Punkte, an denen die Assoziation mit den beteiligten Klassen verbunden ist. Sie können Rollen, Multiplizitäten und Navigationsrichtungen aufweisen.
Assoziationen werden verwendet, um Beziehungen zwischen Klassen und Objekten in einem System zu modellieren. Sie können einfache Beziehungen wie "eine Person hat eine Adresse" oder komplexere Beziehungen zwischen verschiedenen Klassen darstellen. Assoziationen sind ein wichtiger Teil der Modellierung von Softwarearchitekturen und tragen dazu bei, das Verständnis und die Kommunikation über die Struktur eines Systems zu verbessern.