Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Assoziation (UML)

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

Inhalt6 Abschnitte
  1. 1. Definition und Grundlagen
  2. 2. Darstellung und Sonderformen
  3. 3. Assoziationsenden und ihre Merkmale
  4. 4. Navigierbarkeit von Assoziationen
  5. 5. Aggregation und Komposition als Spezialfälle
  6. 6. Aggregation

Definition und Grundlagen

Eine Assoziation (englisch association) ist ein Modellelement der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme. Sie beschreibt eine Beziehung zwischen zwei oder mehr Classifiern, im häufigsten Fall eine Verbindung zwischen genau zwei Klassen. Neben Klassen können auch beliebige andere Classifier – beispielsweise Schnittstellen oder Anwendungsfälle – über Assoziationen in Beziehung zueinander gesetzt werden. Assoziationen definieren eine Beziehung auf Typebene; die konkreten Ausprägungen einer Assoziation auf Instanzebene heißen Link. Für die Prüfung wichtig ist vor allem der Standardfall: die binäre Assoziation zwischen zwei Klassen und ihre Bedeutung als navigierbare Beziehung zwischen Objekten.

Darstellung und Sonderformen

  • Grafische Darstellung: Eine binäre Assoziation wird als Linie zwischen den beteiligten Typen gezeichnet. Eine Assoziation mit mehr als zwei beteiligten Typen heißt n-äre Assoziation; sie wird durch eine Raute dargestellt, an der n Linien zu den Objekten anliegen. Diese Möglichkeit wird eher selten genutzt. Prinzipiell erlaubt, wenn auch nicht üblich, ist die Rauten-Darstellung auch bei nur zwei Assoziationsenden – das Erscheinungsbild ähnelt dann der Chen-Notation von Entity-Relationship-Modellen. Eine Assoziation heißt reflexiv, wenn sie einen Classifier mit sich selbst verbindet; beide Enden zeigen dann auf denselben Typ (Beispiel: eine Elternteil/Kind-Beziehung). - Vergleich zum Entity-Relationship-Modell: Die UML-Assoziation ist mit dem Relationship-Typ des Entity-Relationship-Modells vergleichbar. Es bestehen allerdings Detailunterschiede, die auf den ersten Blick nicht ohne weiteres erkennbar, in der Praxis aber von großer Bedeutung sind (Stichwort Object-relational impedance mismatch).

Assoziationsenden und ihre Merkmale

Die Enden einer Assoziation sind keine bloßen grafischen Punkte, sondern eigenständige Modellelemente. Anders als in UML 1.4 gibt es in der UML2 kein Modellelement Assoziationsende (association end) mehr: Das Ende einer Assoziation wird seit UML2 mit dem Modellelement Eigenschaft (property) modelliert. Im Repository-Modell hinter dem Klassendiagramm wird ein Assoziationsende daher als Instanz der Metaklasse Property gespeichert. Weil Assoziationsenden Eigenschaften sind, können sie alle Merkmale einer Eigenschaft haben: - eine Multiplizität, ausgedrückt durch eine untere und eine obere Grenze in der Form „untereGrenze...obereGrenze“, - einen Namen, - eine Sichtbarkeit, - die Angabe, ob das Assoziationsende geordnet (ordered) und/oder eindeutig (unique) ist.

Eine Assoziation bildet eine Art Brücke zwischen zwei Typen: Startet man bei einer Instanz des einen beteiligten Typs, kann man über die Objektbeziehung leicht zur Instanz des zweiten Typs navigieren; die umgekehrte Richtung ist nicht verboten, könnte aber aufwändig sein. Die UML2 erlaubt, die Navigierbarkeit eines Assoziationsendes einzuschränken, und unterscheidet drei Arten: - Keine Aussage zur Navigierbarkeit: Sie ist unspezifiziert und soll erst zu einem späteren Zeitpunkt, etwa beim Softwaredesign, definiert werden. - Erlaubte Navigation: Das Modell erlaubt die Navigation über das Assoziationsende. - 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 unidirektionale. - Beispiel: Zwei Assoziationen zwischen denselben Typen Adresse und Bestellung tragen unterschiedliche Namen („Rechnungsadresse für“ und „Lieferadresse für“) und lassen sich so gut unterscheiden. Kleine Dreiecke zeigen die Leserichtung des Namens an, z. B. „Adresse [ist] Rechnungsadresse für Bestellung“. Zu einer Bestellung können zwei unterschiedliche Instanzen von Adresse gehören, die durch ihre Rolle unterschieden werden: eine Instanz mit der Rolle „lieferadresse“ und eine weitere, optionale Instanz mit der Rolle „rechnungsadresse“.

Aggregation und Komposition als Spezialfälle

Möchte man ein Assoziationsende hervorheben oder die Bindung einer Assoziation verstärken, stehen Aggregation und Komposition als Mittel zur Verfügung. Beides sind Spezialfälle der Assoziation – es gibt also auch Assoziationen, die weder Aggregation noch Komposition sind. In der grafischen Darstellung kennzeichnet bei einer Aggregation eine nicht ausgefüllte Raute das Ende, das mit dem Ganzen verbunden ist; im Sonderfall der Komposition ist es eine ausgefüllte Raute. Beide drücken eine Teil-Ganzes-Beziehung aus, unterscheiden sich aber in der Stärke der Bindung zwischen Ganzen und Teilen.

Aggregation

  • Die Aggregation – wie auch die Komposition – ist eine Assoziation von Teilen zu einem Ganzen. Jedes Teil ist mit dem Ganzen über eine Assoziation „ist-teil-von“ (is-part-of) verbunden. - Eine exakte Definition gibt die UML2 nicht; sie verweist darauf, dass eine Aggregation je nach Anwendung und Modellierer variiert. Ein konkreter Nutzen lässt sich z. B. daraus ableiten, dass man einem Ende einer Assoziation eine besondere Betonung zukommen lässt. - Eine Aggregation ist normalerweise homöomer, d. h., alle Bestandteile des Ganzen sind vom gleichen Typ. So besteht eine Klasse aus Studenten oder ein Text aus Paragraphen. - Die Abgrenzung zwischen Assoziation und Aggregation ist grundsätzlich schwierig. Ein schwaches Indiz für die sinnvolle Verwendung einer Aggregation ist das Vorliegen von Transitivitäten zwischen den modellierten Klassen: Besteht zwischen A und B eine Teil-Ganzes-Beziehung und ebenfalls zwischen B und C, dann muss A auch ein Teil von C sein. - Ein weiteres Indiz könnte die Kaskadierung von Verhalten vom Ganzen zu den Teilen sein: Eine für das Ganze definierte Operation ist so zu implementieren, dass sie die gleiche Operation auf all seinen Teilen aufruft. Da man nicht spezifizieren kann, welche Operation das sein soll, bleibt die Aggregation eine unverbindliche Absichtserklärung. - Eine spezielle Art der Aggregation ist die Komposition.

Lernvideos zu Assoziation (UML)

Weiterlesen

Unified Modeling Language Die UML ist die dominierende Sprache für die Softwaresystem-Modellierung. Der erste Kontakt zur UML besteht häufig darin, dass Diagramme in UML im Rahmen der … Software Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige … Schnittstelle (UML) Eine Schnittstelle deklariert eine Liste von Attributen, Operationen und Signalempfängern, die alle öffentliche Sichtbarkeit haben. Die UML2 unterscheidet … Entity-Relationship-Modell Ein ER-Modell dient sowohl in der konzeptionellen Phase der Anwendungsentwicklung der Verständigung zwischen Anwendern und Entwicklern (dabei wird nur das Was … Chen-Notation Chen-Notation ist eine graphische Notation für Entity-Relationship-Modelle. Sie ist nach dem Informatiker Peter Chen benannt, Darstellung von Datenmodellen … Objektdiagramm Das Objektdiagramm ist ein Strukturdiagramm, da es die Struktur des modellierten Systems für einen limitierten Zeitabschnitt bzw. konkreten Zeitpunkt ( … Klassendiagramm Ein Klassendiagramm ist ein Strukturdiagramm der Unified Modeling Language (UML) zur grafischen Darstellung (Modellierung) von Klassen, Schnittstellen sowie … Raute Eine Raute oder ein Rhombus (von altgriechisch ῥόμβος rhómbos) ist in der Geometrie ein ebenes Viereck mit vier gleich langen Seiten. Objekt (Programmierung) Ein Objekt in der Programmierung bezeichnet eine inhaltlich zusammengehörige Datenmenge: In der objektorientierten Programmierung wird eine Objektinstanz … Graph (Graphentheorie) Ein Graph ist in der Graphentheorie eine abstrakte Struktur, die eine Menge von Objekten zusammen mit den zwischen diesen Objekten bestehenden Verbindungen … Relation (Mathematik) Eine Relation (lateinisch relatio „Beziehung“, „Verhältnis“) ist allgemein eine Beziehung, die zwischen Dingen bestehen kann. Bei Relationen im Sinne der …