Otto-von-Guericke-Universitdt Magdeburg UML UML-Tutorial

Kollaborationsdiagramm

verwandte Begriffe: collaboration diagram, Zusammenarbeit, Interaktionsdiagramm

Definition

Die verschiedenen Modellelemente eines Programmes agieren innerhalb des Programmablaufes miteinander. Um diese Interaktionen für einen bestimmten begrenzten Kontext, unter besonderer Beachtung der Beziehungen unter den einzelnen Objekten und ihrer Topographie, darzustellen, verwenden wir das Kollaborationsdiagramm.

Beschreibung

Das Kollaborationsdiagramm visualisiert die einzelnen Objekte und ihre Zusammenarbeit untereinander. Dabei steht, im Vergleich zum Sequenzdiagramm, der zeitliche Ablauf dieser Interaktionen im Hintergrund, vielmehr werden die für den Programmablauf und das Verständnis des selbigen wichtigen kommunikativen Aspekte zwischen den einzelnen Objekten ereignisbezogen dargestellt. Der zeitliche Verlauf der Interaktionen wird lediglich durch eine Numerierung der Nachrichten symbolisiert. Die einzelnen Objekte können Nachrichten austauschen, ein Objekt kann sich jedoch auch stets selbst Nachrichten zusenden, ohne da eine Assoziation vorhanden sein müsste. Das Kollaborationsdiagramm kann für die Darstellung von Entwurfs-Sachverhalten benutzt werden und, in etwas detaillierter Form, von Realisierungssachverhalten. Es beeinhaltet stets kontextbezogene begrenzte Projektionen des Gesamtmodells.

Notation

Die einzelnen Objekte werden als Rechtecke dargestellt. Diese werden durch Assoziationslinien mit einander verbunden, auf denen dann die Nachrichten, bestehend aus einer durchgehenden zeitlichen Numerierung, dem Namen der Nachrichten und Antworten und ihren möglichen Argumenten.
Ein Pfeil zeigt die Richtung der Nachricht vom Sender zum Empfänger. Antworten werden in der Form antwort:=nachricht() symbolisiert.
Die zeitliche Numerierung erfolgt mittels Durchnumerierung der einzelnen Nachrichten angefangen bei 1, die interaktionsauslösende Startnachricht erhält noch keine Numerierung.

Notation: Kollaborationsdiagramm

Somit visualisiert man eine Nachricht in folgender Form:
[Vorgängerbedingung] Numerierung [Antwort:=] Nachrichtenname (Argumentenliste)
Die Vorgängerbedingung beeinhaltet eine Aufzählung aller Numerierungen der Nachrichten, die bereits verschickt sein müssen, bevor die neue Nachricht versendet wird.
Die Nummern werden durch Kommas getrennt aufgeführt und mit einem "/" wird die Aufzählung abgeschlossen. Es muss nicht in jedem Fall eine Vorgängerbedingung aufgeführt werden, sie dient jedoch der Synchronisation der Nachrichtenabfolge. Die Numerierung der Nachrichten erfolgt in aufsteigender Reihenfolge.
Werden innerhalb einer Operation, die eine empfangene Nachricht interpretiert, neue Nachrichten verschickt werden, so erhalten diese neuen Nachrichten eine Unternumerierung durch einen Punkt von der Hauptnumerierung getrennt (z.B. 1.1:, 1.2.1:, 1.3.3.4:) Somit kann die Tiefe der Verschachtelung einer Nachricht innerhalb anderer Nachrichten nachvollzogen werden. Die Numerierung wird durch einen Doppelpunkt abgeschlossen.
Sollen Nachrichten mehrfach versendet werden, so wird das durch ein Sternchen "*" gekennzeichnet. Diese Iteration einer Nachricht kann optional durch Argumente in eckigen Klammern nach dem Sternchen näher beschrieben werden (z.B. 1.4.2.* [i:=1..n]:) Iterationen von Nachrichten werden im Normalfall sequenziell vollzogen, sollen diese parallel ausgeführt werden, so wird dies nach dem Sternchen durch zwei senkrechte Linien dargestellt (z.B. 1.4.2.* || [i:=1..n]:).
Als Iterationsargument kann auch eine Bedingung angegeben werden, bei deren Erfüllung dann die entsprechende Nachricht gesendet wird. Somit können auch weitreichendere Interaktionsstrukturen realisiert werden. (z.B. 1.4.2.* [x<9]:)
Die Antwort auf eine Nachricht kann explizit durch einen Namen gekennzeichnet sein. Dieser kann dann in anderen Nachrichten als Argument auftauchen. Der Gültigkeitsbereich verhält sich analog zu lokalen Variablen innerhalb der sendenden Nachricht und kann auch eine solche sein.
Der Name der Nachricht ist in der Regel gleichlautend zu der, durch die Nachricht interpretierten Operation des Objektes.
Innerhalb des, in einem Kollaborationsdiagramm dargestellten Kontextes können Objekte erzeugt und zerstört werden. Objekte die erzeugt wurden, werden mit "new", Objekte die im Kontext zerstört werden, sind durch "destroyed" und Objekte die erzeugt und dann innerhalb den Kontextes auch wieder vernichtet werden sind mit "transient" zu kennzeichnen.
Die Nachrichtenabfolge zwischen den Objekten kann durch Synchronisationsbedingungen gesteuert werden. Diese werden durch unterschiedliche Pfeilformen dargestellt. Man unterscheidet folgende mögliche Synchronisationsbedigungen:

  • sequentiell - das sendende Objekt kann erst dann fortfahren, wenn das empfangende Objekt die Nachricht aufgenommen und vollständig verarbeitet hat
  • synchron - das sendende Objekt wartet nur bis das empfangende Objekt die Nachricht angenommen hat
  • eingeschränkt - die Übermittlung einer eingeschränkten Nachricht wird abgebrochen, sollte das empfangende Objekt die Nachricht nicht sofort annehmen
  • zeitabhänig - die Übermittlung einer zeitabhängigen Nachricht wird abgebrochen, sollte das empfangende Objekt die Nachricht nicht bis zum Ablauf einer bestimmten Zeit annehmen
  • asynchron - die asynchrone Nachricht gerät in die Warteschlange des empfangenden Objektes, das sendende Objekt fährt fort. ÿ

Notation eines Kollaborationsdiagrammes

Um die Beziehungen zwischen den einzelnen Objekten noch detailierter betrachten zu können, besteht die Möglichkeit, den Verbindungslinien zwischen den Objekten zuzuordnen.
Diese werden am empfangenden Objekt auf der Verbindungslinie dagestellt und können folgende Notation besitzen:

  • association - beschreibt eine Assoziation, Aggregation oder Komposition zwischen den Objekten und kann, da dies als Standardfall anzusehen ist auch weggelassen werden
  • global - das empfangende Objekt ist global
  • local - das empfangende Objekt ist lokal in der sendenden Operation - also "new" oder "transient"
  • parameter - das empfangende Objekt ist ein Parameter in der sendenden Operation
  • self - das empfangende Objekt ist das sendende Objekt ÿ

Objekt

verwandte Begriffe: Exemplar, Instanz

Definition

Ein Objekt ist ein aktives, konkret vorhandenes Modellelement in einem laufendem System. Es ist ein Exemplar einer Klasse, gekennzeichnet durch eine Anzahl von Attributen, deren Struktur durch die Klasse, der das Objekt entstammt, definiert ist, deren Werte jedoch bei jedem Objekt individuell sein können. Ein Objekt verfügt über eine endliche Anzahl von durch seine Klasse vorgegebenen Operationen und kann somit auf empfangene Nachrichten reagieren.

Beschreibung

Eine Klasse beschreibt die abstrakte Struktur eine Menge von Objekten, deren Attribute und ausführbare Operationen. Ein Objekt kann gleichzeitig eine Instanz, ein Exemplar mehrerer Klassen sein. Man nennt dies multiple Klassifikation. Ebenfalls kann ein Objekt nacheinander mehreren Klassen angehören (dynamische Klassifikation) In der Regel ist ein Objekt jedoch einer Klasse eindeutig zugeordnet.

Notation

Objekte werden durch Rechtecke visualisiert. Diese beeinhalten den Namen des Objektes und eventuell zusätzlich den Namen der Klasse des Objektes. Teilt man das Rechteck in zwei durch eine horizontale Linie getrennte Rechtecke, können im unteren Teil auch noch die Attribute des Objektes mit aufgeführt werden.ÿ

Notation: Kollaborationsdiagramm


Zurueck Inhalt Vor