Aggregation (UML)

Aggregation (UML)

Eine Assoziation (engl. association) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.

Beispiel für eine binäre Assoziation

Eine Assoziation beschreibt eine Beziehung zwischen zwei oder mehr Typen, im häufigsten Fall eine Verbindung zwischen zwei Objekten der Klassen. Sie wird dann als binäre Assoziation bezeichnet und spezifiziert, dass beide beteiligten Klassen zueinander in Beziehung stehen. In wenigen Fällen startet oder endet eine Assoziation bei einem anderen Typ, zum Beispiel bei einer Schnittstelle oder einem Anwendungsfall. Die Möglichkeit, mehr als zwei Typen an einer Assoziation zu beteiligen, wird eher selten genutzt. Die Assoziation wird in diesem Fall n-äre Assoziation genannt, und dargestellt durch eine Raute, an der n zu den Objekten führende Linien anliegen. Der Assoziation in UML entspricht der Relationship-Typ im Entity-Relationship-Modell. Prinzipiell erlaubt, wenn auch nicht üblich, ist die Darstellung mit Raute auch bei Assoziationen mit 2 Typen, wodurch das Erscheinungsbild eher der herkömmlich beim Entity-Relationship-Modell verwendeten Chen-Notation entspricht.

Beispiel für eine reflexive Assoziation

Eine Assoziation heißt reflexiv, wenn sie einen Typ mit sich selbst verbindet. Die beiden Enden der Assoziation zeigen hier also auf den gleichen Typ. In der Abbildung links hat die reflexive Assoziation auch einen Namen „Vater/Sohn-Beziehung“, der in der Nähe der Linie gezeichnet wird, die die Assoziation darstellt.

Inhaltsverzeichnis

Assoziationsenden

Grafisch wird eine Assoziation durch eine Linie dargestellt. Hierbei wird unterschlagen, dass die Enden einer Assoziation nicht einfach grafische Punkte, sondern eigenständige Modellelemente sind. Im Unterschied zur UML 1.4 gibt es aber kein Modellelement Assoziationsende (association end) mehr, denn das Ende einer Assoziation wird neuerdings mit dem Modellelement Eigenschaft (Property) modelliert.

Eine binäre Assoziation und das zugehörige Repository-Modell, dargestellt als Objektdiagramm

In der Abbildung rechts ist an einem Beispiel gezeigt, dass das Repository-Modell hinter dem Klassendiagramm ein Assoziationsende als Instanz der Metaklasse Property speichert. Assoziationsenden können deshalb alle Merkmale einer Eigenschaft haben:

  • Sie können eine Multiplizität haben, ausgedrückt durch eine untere und eine obere Grenze in der Form untereGrenze..obereGrenze.
  • Sie können einen Namen haben.
  • Sie können eine Sichtbarkeit deklarieren.
  • Man kann spezifizieren, ob das Assoziationsende geordnet (ordered) oder eindeutig (unique) ist.


Eine Assoziation bildet eine Art Brücke zwischen zwei Typen: startet man bei der Instanz des einen beteiligten Typs kann man über eine Objektbeziehung zur Instanz des zweiten Typs navigieren. Die UML2 erlaubt nun, die Navigierbarkeit von Assoziationsenden einzuschränken. Dabei unterscheidet sie drei Arten, wie die Navigierbarkeit festgelegt werden kann:

Navigierbarkeit - graphische Notationen
  1. Keine Aussage zur Navigierbarkeit. Das Modell macht keine Aussage zur Navigierbarkeit. Sie ist unspezifiziert und soll erst zu einem späteren Zeitpunkt, zum Beispiel beim Softwaredesign, definiert werden.
  2. Erlaubte Navigation. Das Modell erlaubt die Navigation über das Assoziationsende.
  3. Nicht erlaubte Navigation. Das Modell verbietet die Navigation über das Assoziationsende.

Assoziationen, die auf beiden Seiten navigierbar sind, heißen bidirektionale Assoziationen, nur an einem Ende navigierbare Assoziationen entsprechend unidirektional.

Beispiel für zwei Assoziationen zwischen den gleichen Typen

Das Beispiel links zeigt zwei Assoziationen zwischen den gleichen Typen. Weil sie unterschiedliche Namen Rechnungsadresse für und Lieferadresse für tragen, kann man sie gut unterscheiden. Die beiden kleinen Dreiecke unterstützen den Leser. Sie zeigen die Leserichtung für den Namen der Assoziation an, hier zum Beispiel Adresse [ist] Rechnungsadresse für Bestellung. Zu einer Bestellung können zwei unterschiedliche Instanzen von Adresse gehören, die durch ihre Rolle unterschieden werden. Die eine Instanz hat die Rolle lieferadresse, die andere, optionale, die Rolle rechnungsadresse.

Komposition und Aggregation

Zwei Beispiele für Komposition und Aggregation

Möchte man nun ein Assoziationsende hervorheben oder die Bindung einer Assoziation verstärken, so stehen einem Aggregation und Komposition als Mittel zur Verfügung.

Aggregation

Eine exakte Definition wird in der UML2 nicht gegeben, vielmehr wird darauf verwiesen, dass eine Aggregation je nach Anwendung und Modellierer variiert. Ein konkreter Nutzen lässt sich z.B. ableiten indem man einem Ende einer Assoziation eine besondere Betonung zukommen lässt.

Grundsätzlich ist die Abgrenzung zwischen Assoziation und Aggregation schwierig. Ein schwaches Indiz für die sinnvolle Verwendung einer Aggregation scheint das Vorliegen von Transitivitäten zwischen den modellierten Klassen zu sein. D.h. wenn zwischen A und B eine Teil-Ganze-Beziehung existiert und zwischen B und C ebenfalls, dann muss A auch ein Teil von C sein.

Eine spezielle und anwendungsträchtigere Art der Aggregation ist die Komposition.

Komposition

Die Komposition (composite aggregation oder composition) als Sonderfall der Aggregation beschreibt die Beziehung zwischen einem Ganzen und seinen Teilen. Der Unterschied zur Aggregation ist im Kern, dass die Existenz des Teil-Objektes durch die des übergeordneten Objektes bedingt ist.

Ein Teil kann immer nur genau einem Ganzen zugeordnet sein. Konkret lassen sich daraus die Multiplizitäten ableiten. Teile, die über eine Komposition mit einem Ganzen verbunden sind, dürfen jeweils in höchstens einem (0..1) Ganzen vorkommen, so wie z.B. ein Rad immer nur zu einem Fahrzeug gleichzeitig gehören kann.

Des Weiteren bestimmt das Ganze auch den Lebenszyklus der Teile, d.h. die Instanz, welche das Ganze repräsentiert, übernimmt auch die Verantwortung für die Lebensdauer der Instanzen, die ihre Teile repräsentieren. Zu jedem Zeitpunkt darf ein Teil zu maximal einem Ganzen zugehörig sein. Wird das Ganze gelöscht, verschwinden auch dessen Teile, welche zu diesem Zeitpunkt Bestandteil waren. Ein Teil kann nur zur Lebenszeit zu einem anderen Ganzen wechseln.

Eine Komposition beschreibt einen azyklischen, gerichteten Graph (Ganzes ← Teil ← Subteil). Als Relation ist sie asymmetrisch und transitiv.


In der grafischen Darstellung einer Komposition dekoriert eine ausgefüllte Raute das Ende, das mit dem Ganzen verbunden ist. Im Fall der Aggregation ist es eine nicht ausgefüllte Raute.

Unterschiede zur UML 1.4

Die UML2 hat die Notation für die Navigierbarkeit von Assoziationsenden eingeführt.

In der UML 1.4 gab es ein spezielles Modellelement AssociationEnd, das in der UML2 durch Property ersetzt wurde.

Siehe auch


Wikimedia Foundation.

Игры ⚽ Нужна курсовая?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • UML — (англ. Unified Modeling Language  унифицированный язык моделирования)  язык графического описания для объектного моделирования в области разработки программного обеспечения. UML является языком широкого профиля, это  открытый… …   Википедия

  • Aggregation (Programmierung) — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Aggregation in der Informatik ist entweder eine Verbindung… …   Deutsch Wikipedia

  • Aggregation (Routing) — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Aggregation in der Informatik ist entweder eine Verbindung… …   Deutsch Wikipedia

  • Aggregation (objektorientierte Programmierung) — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Aggregation in der Informatik ist entweder eine Verbindung… …   Deutsch Wikipedia

  • Aggregation (Informatik) — Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf… …   Deutsch Wikipedia

  • Diagramme uml — Unified Modeling Language Pour les articles homonymes, voir UML. Logo d UML UML (en anglais Unified Modeling Language, « langage de modélisation unifié ») est un langage graphique de mod …   Wikipédia en Français

  • Komposition (UML) — Eine Assoziation (engl. association) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme. Beispiel für eine binäre Assoziation Eine Assoziation beschreibt eine Beziehung… …   Deutsch Wikipedia

  • Assoziation (UML) — Eine Assoziation (engl. association) ist ein Modellelement in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme. Beispiel für eine binäre Assoziation …   Deutsch Wikipedia

  • Executable UML — Executable UML, often abbreviated to xtUML [Example usage: http://www.techonline.com/community/tech topic/37519] or xUML [Example usage: http://www.kc.com/xuml.php] , is the evolution of the Shlaer Mellor method to UML. Executable UML graphically …   Wikipedia

  • Classifier (UML) — A classifier is a category of Unified Modeling Language (UML) elements that have some common features, such as attributes or methods. A classifier is an abstract metaclass classification concept that serves as a mechanism to show interfaces,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”