11 Assoziationen mit UML
An verschiedenen Stellen der Vorlesung tauchten nun schon Objekte auf, die andere Objekte als Attribute beinhalten.
Dies tritt auch bei der Erstellung von GUIs auf, indem ein Fenster-Objekt mehrere Elemente vom Typ Knopf, Textfeld etc. beinhalten kann.
Es lohnt sich für diese Konstrukte eine spezielle UML-Darstellung einzuführen. Um diese zu verstehen, gehen wir noch einmal zu dem leicht verständlichen Beispiel der Flächenberechnung aus Kapitel 1.2.5 bis 1.2.6 zurück.
Statt innere Objekte als Attribute im Klassendiagramm auftauchen zu lassen, wie das bei dem Werkstueck-Diagramm mit re erfolgte und beim Rechteck-Diagramm mit ort1,ort2,ort3,ort4, besteht in UML auch die Möglichkeit solche Aggregationen und Kompositionen (Oberbegriff Assoziationen) mit Pfeilen zwischen den Diagrammen darzustellen:
Bild 11-3: UML Komposition und Aggregation
Die ausgefüllte Raute gibt an, dass es sich bei der Verbindung um eine Komposition handelt und dass das der Raute naheliegende Element das übergeordnete ist. Da die vier Ortsvektoren direkt beim Erzeugen eines Rechteck-Objekts entstehen gehören sie zur "Komposition" des Rechteck-Objekts dazu.
Der Pfeil gibt bei der Verbindung an, welche Objekte einer Klasse welche andere kennen. Das Rechteck-Objekt kennt seine Ortsvektor-Objekte. Diese jedoch kennen nicht das Rechteck-Objekt in dem sie registriert sind.
Die Anzahlen über der Verbindung gibt an, wieviele Objekte es jeweils in der Assoziation geben kann. Bei der Komposition gibt es zu jedem Rechteck-Objekt genau vier Vektor-Objekte. Dagegen muss ein Vektor-Objekt nicht unbedingt mit einem Rechteck-Objekt verbunden sein (0..1).
Die nicht ausgefüllte Raute bezeichnet eine Aggregation (auch schwache Komposition genannt). Da beim Erzeugen eines Werkstueck-Objekts noch keine zugehörigen Rechteck-Objekte existieren und auch keins bis hundert hinzugefügt werden können, die zunächst unabhängig von dem Werkstueck-Objekt existieren können, handelt es sich bei der Verbindung zwischen Werkstueck-Objekt und mehreren Rechteck-Objekten um eine Aggregation.
Verbindungen ohne leere oder ausgefüllte Raute, sind allgemeine Assoziation.
Kardinalität
Die Angabe der gegenseitigen Bekanntheit (Pfeilspitzen oder nicht) und die Megenangaben zusammen werden auch als Kardinalität oder Multiplizität einer Assoziation bezeichnet.
Weitere Beispiele zur Angabe für die Anzahl der Assoziationen zwischen zwei Objekten gibt es im Klassendiagramm folgende Möglichkeiten:
Bild 11-3: UML Assoziations-Anzahl