Home
 UML
BuiltByNOF
 Sequenzen

1) Sequenzdiagramme gehören wie Kommunikationsdiagramme zu den Interaktionsdiagrammen.

2) Mit Sequenzdiagrammen kann man den genauen zeitlichen Ablauf, die Zeitdauer und die Überlappung oder Schachtelung mehrerer Methodenabarbeitungen darstellen. Zustände oder die von Zuständen abhängende Reaktion eines Objekts kann man mit Sequenzdiagrammen nicht gut darstellen. Hauptsächlich zur Darstellung zustandsfreier Abläufe ist das Sequenzdiagramm gut geeignet. Sequenzdiagramme werden daher für "stateless"-Komponenten und zur Spezifikation zustandsfreier dynamischer Abläufe verwendet.

3) Mit Sequenzdiagrammen können einige Aspekte des statische Modells auf Richtigkeit (insbesondere Vollständigkeit) überprüft werden: Kommunikation von Objekt A nach Objekt B ist nur möglich, wenn A eine Relation zu B besitzt. Das Durchspielen von Abläufen soll also zu Verbesserungen und Verfeinerungen des statischen Modells führen. Anpassungen des statischen Modells wirken sich dann u.U. auch wieder auf das Sequenzdiagramme (und andere dynamische Diagramme) aus. Diese oft kleinen, aber zahlreichen Anpassungen sind mit Modellierungswerkzeugen leichter durchzuführen, wenn diese Werkzeuge logische Abhängigkeiten erkennen und darstellen können.

4) Ein Sequenzdiagramm als Ganzes stellt einen Methodenaufruf eines gezeichneten Objekts dar. Dieser Aufruf ist ein Pfeil, der (von links) "aus dem Nichts" (oder von einem Aktor) kommt und in ein Objektsymbol einläuft. Die Beschriftung dieses Pfeils ist gewissermaßen der Titel des gesamten Diagramms.

5) Auch für das Sequenzdiagramm ist ein Objektdiagramm der Ausgangspunkt, allerdings werden die Objekte oben nebeneinander und die Relationen gar nicht eingezeichnet. Pfeile stellen Nachrichten zwischen den Objekten dar.

6) Die vertikale Achse ist die Zeitachse. Die Zeit verläuft in einem Sequenzdiagramm nach unten. Jedes Objekt hat eine gestrichelte vertikale Linie, die nach unten aus dem Objektsymbol ausläuft und seine Lebensdauer darstellt. ("Lebenslinie", "lifeline")

7) Die Abarbeitung der von einem einlaufenden Pfeil (Nachricht) aufgerufenen Methode wird durch einen länglichen (vertikalen) Kasten dargestellt, der an der Pfeilspitze beginnt und entlang der Zeitachse auf der Lebenslinie verläuft, um die Zeitdauer der Methodenabarbeitung darzustellen. Diesen Kasten nennt man Aktivierung. Das untere Ende der Aktivierung entspricht der Zeit des (wegen Redundanz oft nicht eingezeichneten) Rücksprungs aus der abgearbeiteten Methode.

8) Wird ein Objekt "später" erzeugt, so wird das Objektsymbol nach unten versetzt gezeichnet, um den Zeitpunkt der Erzeugung darzustellen. Der Aufruf des Konstruktors ist als Pfeil mit der Markierung {new} dargestellt. Wird ein Objekt gelöscht, so wird dies durch ein dick gezeichnetes X am Ende der Lebenslinie dieses Objekts dargestellt.

9) Ein Objekt mit einem eigenen Thread ist ein sog. "aktives Objekt" und wird mit einem dick ausgezogenen Rand gezeichnet.

10.) Aufrufe über Threadgrenzen sind immer asynchrone Aufrufe und werden als Pfeile mit "halber" Pfeilspitze gezeichnet. Man kann natürlich auch im gleichen Thread asynchron aufrufen. Besteht die Möglichkeit, dass sich Aktivierungen verschiedener Threads auf einer lifeline überlagern, sind Synchronisationsmaßnahmen notwendig (außerhalb von UML).

Beispiel Sequenzdiagramm: Bestellung eines Fahrzeugstyps und Reservierung bei einer Autovermietung
seq_call
 

[Home] [UML]