Aggregation
Aus 4webmaster.de
Die Relation zwischen dem Ganzen und seinen Teilen bezeichnet man als Aggregation oder Komposition.
Aus Sicht der UML handelt es sich um spezielle Assoziationen, das sind Relationen zwischen Objekten.
Eingezeichnet wird die Aggregation zwar zwischen zwei Klassen, aber die Relation besteht insbesondere zwischen den Instanzen dieser Klassen.
Das Ganze wird auch als Aggregat bezeichnet. Die Teile heißen dann Komponenten.
Beispiele:


Aggregationen sind transitiv, d.h. aus Ein typisches Beispiel für eine transitive Relation ist die Aggregation (Teil-Ganzes-Beziehung):
| A istTeilvon B | und | B istTeilvon C | |
| folgt | A istTeilvon C |
In der UML lässt sich die Aggregation komplexitätsreduzierend nutzen, indem man
- in einem Diagramm den inneren Aufbau einer Klasse darstellt (die externen Assoziationen werden weggelassen)
- und in einem anderen Diagramm die Außenbeziehungen der Klasse (das komplexe Innenleben bleibt verborgen)
Die Aggregation wird in der UML durch einen Pfeil mit einer Diamantform dargestellt. Der Diamant weist auf das Ganze. Die Benennung der Assoziationen und die Benennung der Assoziationsenden / Rollen enfällt normalerweise.
Bei der Konstruktion einer Aggregation muss die Verteilung der Funktionalität auf die Einzelteile gründlich durchdacht sein:
- In welcher Weise wird jedes einzelne Verhalten des Ganzen von den Teilen realisiert?
- Wie werden Fehler nach oben durchgereicht?
- Wie hängen die Lebenszyklen der Objekte miteinander zusammen? Während der Lebensdauer des Ganzen können Teile entstehen und wegfallen. Bleiben Teile erhalten, nachdem das Ganze zerstört wurde? Oft wird dazu ein Zustandsdiagramm erstellt.
- Welche Reihenfolgen müssen beachtet werden?
Komposition
In der UML wird zwischen Aggregation und Komposition unterschieden. Die Komposition ist eine spezielle, strengere Form der Aggregation:
| Kardinalität | Bei der Komposition gehört die Instanz eines Teils zu maximal einer Instanz eines Ganzen. | Bsp.: Ein Schlafzimmer gehört nicht zu mehreren Häusern. |
| Exklusivität | Ein Teilobjekt kann auch nicht zu mehreren Ganzes-Objekten gehören. | Bsp.: Ein WC gehört nicht zu einem Haus und zugleich zu einem Flugzeug. |
| Lebensdauer | Bei einer Komposition kann das Teil nicht ohne sein Ganzes existieren. Das Teil entsteht nach dem Ganzen und wird vor dem Ganzen wieder zerstört. | Bsp.: Räume existieren nur als Teil eines Hauses. |
In der UML die Komposition durch ein ausgefülltes Aggregationssymbol dargestellt.


Kompositionsstrukturdiagramm
Kompositionen können auch innerhalb des Struktur-Abschnittes einer Klasse dargestellt werden. Dadurch reduziert man die Anzahl der dargestellten Linien und verbessert die Übersichtlichkeit. Eine solche Klasse mit "Innenleben" kann in UML durch ein Kompositionsstrukturdiagramm dargestellt werden.
Das folgende Beispiel zeigt zweimal die gleiche Struktur, einmal als normale Komposition und einmal als Kompositionsstrukturdiagramm. (Leider kann das hier verwendeten Tool (Graphiz) im linken Diagramm den Klassennamen nicht in einem abgetrennten Feld darstellen, wie es eigentlich richtig wäre):


Miteinander interagierende Parts werden mit Konnektoren verbunden, die genauso wie Assoziationen dargestellt werden.