UML (Unified Modeling Language): Aggregation und Komposition

avatar

Aggregation und Komposition

Aggregationen sind spezielle Assoziationen, die eine Hierarchie auf den verbundenen Instanzen definieren. Anschaulich gesprochen besteht ein Teil-Ganzes-Verhältnis zwischen den verbundenen Instanzen. Dabei hat die Ganzes-Instanz eine Verantwortung für die Teil-Instanzen. So erfordert das Zerstören des Ganzen ein Konzept, wie mit seinen Teilen zu verfahren ist. Da ein Objekt gleichzeitig auch Teil anderer Objekte sein kann, muss dem Zerstören besondere Aufmerksamkeit gewidmet werden. In Klassendiagrammen wird eine Aggregation durch eine nicht ausgefüllte Raute am Ganzes-Ende der Assoziationslinie gekennzeichnet.

Beispiel
Das Beispieldiagramm in folgender Abbildung zeigt die als Bestellungen bezeichnete Assoziation zwischen Kunde und Bestellung, eine Assoziation zwischen Einzelposten und Produkt und eine Aggregation Bestellposten zwischen den Klassen Bestellung und Einzelposten. Die “Ganzes-Klasse“ Bestellung ist durch die Raute an ihrem Ende der Aggregation gekennzeichnet.

uml_agg.png
Abbildung 1: Eine Aggregation

Neben der Aggregation kennt die UML auch noch die Komposition als eine spezielle Assoziation, bei der noch schärfere Bedingungen als bei der Aggregation gelten. Teilobjekte einer Komposition...

  1. dürfen nur von Operationen der Ganzes-Klasse entfernt oder ausgetauscht werden,
  2. dürfen nicht Teil anderer Kompositionen sein
  3. werden beim Zerstören des “Ganzes-Objekts“ automatisch (kaskadierend) mit zerstört.

Eine Komposition wird in Klassendiagrammen durch eine ausgefüllte Raute am Ganzes-Ende der Assoziationslinie gekennzeichnet.

Beispiel
Betrachten wir als Beispiel eine Klasse Polygon. Jede Instanz besitzt ein Teilobjekt der Klasse Graphikattribut. Ist jede Instanz der Klasse Graphikattribut eindeutig einer Polygoninstanz zugeordnet, liegt eine Komposition vor; die Graphikattribut-Instanz darf nicht ausgetauscht werden und muss beim Zerstören des Polygonobjekts automatisch mitzerstört werden.

uml_agg2.png
Abbildung 2: Eine Komposition

Quelle
OMG Unified Modeling Language Specification V. 1.3, OMG, Jun. 1999



0
0
0.000
0 comments