Sequenzdiagramm

Aus THM-Wiki
Wechseln zu: Navigation, Suche

Das Sequenzdiagramm (engl. sequence diagram) ist ein Diagrammtyp der Unified Modeling Language (UML) sowie der Systems Modeling Language (SysML) , welche der Modulierung von Software bzw. komplexer Systeme dienen. Das Sequenzdiagramm ist ein Verhaltensdiagramm und gehört zur Untergruppe der Interaktionsdiagramme.

Im Sequenzdiagramm werden mittels Lebenslinien und Nachrichten die Kommunikation zwischen Teilsystemen des Gesamtsystems dargestellt. Die Lebenslinien kennzeichnen dabei die Kommunikationspartner sowie den zeitlichen Verlauf dieser. Die Nachrichten dienen als Kommunikationsmedium und orientieren sich an dem zeitlichen Verlauf, sodass ein Schritt für Schritt (sequentieller) Ablauf entsteht. Ziel des Sequenzdiagrammes ist es dabei zu klären: "Wann im System wer wen wie aufruft? [1]

Ursprung

Die Grundlage des Sequenzdiagramms sind die Message Sequence Charts (MSC) der Specification and Description Language (SDL). Die Message Sequence Charts werden hauptsächlich zur Modellierung von Abläufen innerhalb von Telekommunikationssystemen verwendet.[2] Sie wurden in Form des Sequenzdiagrammes in die UML integriert.

Anwendungsbereich

Sequenzdiagramme werden zur Darstellung der Kommunikation von Teilsystemen eingesetzt. Sie sollten gewählt werden, wenn die Reihenfolge der Nachrichten von einer besonderen Bedeutung ist. Anwendung finden Sequenzdiagramme sowohl in der Analyse sowie im Designmodellierung. Für Analysezwecke werden sie häufig verwendet um bestimmte Szenarien eines Systems zu modellieren. Detaillierte Designinformationen können mit einem Sequenzdiagramm ebenso modelliert werden, sodass komplexe Abläufe eines Systems dargestellt werden können. [3]

Elemente und Notation

Interaktion

Unter einer Interaktion (engl. interaction) versteht man eine Kommunikation zwischen verschiedenen Kommunikationspartnern. Im Sinne der SysML sind diese Kommunikationspartner Teilsysteme, welche über Nachrichten Informationen austauschen. Symbolisiert werden die Teilsysteme durch sogenannte Lebenslinien. Diese geben Informationen über den zeitlichen Verlauf eines Teilsystems. Eine Interaktion selbst wird durch das gesammte Sequenzdiagramm repräsentiert.

Lebenslinie

Fehler beim Erstellen des Vorschaubildes: Datei fehlt
Beispiel zweier Lebenslinien

Eine Lebenslinie (engl. lifeline) stellt einen Kommunikationspartner im System dar. Lebenslinien besitzen einen Kopf sowie die eigentliche Lebenslinie. Im Kopf der Lebenslinie können die Bezeichnung und die Rolle des Teilsystems stehen. Die Lebenslinie selbst gibt Aufschluss über den zeitlichen Verlauf des Teilsystems. Das Teilsystem kann während der Laufzeit erzeugt und zerstört werden. Dies wird durch entsprechende Aufrufe gekennzeichnet (s. Abb.). Sind diese nicht verhanden existiert ein Teilsystem vor Beginn und nach Abschluss der Sequenz weiter. Des Weiteren kann die Aktivität eines Teilsystems durch rechteckige Balken gekennzeichnet werden.

Nachricht

Fehler beim Erstellen des Vorschaubildes: Datei fehlt
Beispiel einer synchronen und einer asynchronen Nachricht

Eine Nachricht (engl. messages) kennzeichnet eine Kommunikation zwischen zwei Lebenslinien, bzw. Teilsystemen. Diese Nachrichten können Operationen aufrufen, Daten transportieren oder andere Teilsysteme erzeugen. Dargestellt werden Nachrichten durch Pfeile, welche mit dem Namen der Nachricht sowie den Übergabeparametern versehen werden. Unterschieden wird bei Nachrichten grundsätzlich zwischen zwei Arten:

  • Synchrone Nachricht: Der synchrone Nachrichtentyp wird durch eine ausgefüllte Pfeilspitze gekennzeichnet. Bei einer synchronen Kommunikation wartet der Sender immer auf eine Rückantwort des Empfängers. Diese Rückantwort wird mit einer gestrichelten Linie gekennzeichnet.
  • Asychrone Nachricht: Der asynchrone Nachrichtentyp wird durch eine offene Pfeilspitze gekennzeichnet. Nach dem Senden einer asynchronen Nachricht kann der Sender sofort mit weiteren Operationen fortfahren.

Kombinierte Fragmente

Fehler beim Erstellen des Vorschaubildes: Datei fehlt
Beispiel eines parallelen kombinierten Fragmentes

Die kombinierten Fragmente (engl. combined fragments) bieten die Möglichkeit in Sequenzdiagrammen bedingte Anweisungen und Verzweigungen, Schleifen und bestimmte Ausführungsarten zu modellieren. Dazu wird der Ablauf in ein oder mehrere Fragmente unterteilt. Eine Auswahl verschiedenen Interaktionsoperatoren bietet verschiedene Möglichkeiten, wie die erstellten Fragmente miteinander kombiniert und ausgeführt werden.

Verzweigungen und Schleifen

Die folgenden Interaktionsoperatoren benötigen eine vorher angegebene Bedingung, welche über den weiteren Ablauf der Interaktion entscheidet.

  • alt : Durch die angegebene Bedingung wird eins aus beliebig vielen Fragmenten ausgewählt.
  • opt : Dieser Operator ist mit dem alt-Operator vergleichbar. Die Auswahl beschränkt sich jedoch auf einzelnes Fragment, welches je nach Bedingung optional ausgeführt wird.
  • break : Der Ablauf wird unterbrochen, wenn die vorherige Bedingung erfüllt wird.
  • loop : Der Ablauf im Fragment wird beliebig oft wiederholt, bis die vorher angegebene Bedingung nicht mehr erfüllt ist.

Nebenläufigkeiten und Ordnung

  • seq : Dieser Operator legt die Ablaufreihenfolge der Aktionen einer Lebenslinie fest.
  • strict : Dieser Operator ist mit dem seq-Operator vergleichbar. Er gilt jedoch für alle Lebenslinien.
  • par : Die Fragmente werden parallel zu einander ausgeführt.

Filterungen und Zusicherungen

  • critical : Falls ein Fragment betretten wird, werden alle Aktionen ohne jegliche Unterbrechung durchgeführt.
  • neg : Durch diesen Operator werden unzulässige Abläufe gekapselt.
  • assert : Dieser Operator kann eine feste Ablaufreihenfolge für eine Nachrichtenmenge angegeben werden.
  • consider : Mit Hilfe dieses Operators werden nur die angegebenen Aktionen ausgeführt, der Rest wird ignoriert.
  • ignore : Bestimmte Aktionen können mit Hilfe dieses Operators an der Ausführung gehindert werden. [4]

Zeitliche Zusicherung

Fehler beim Erstellen des Vorschaubildes: Datei fehlt
Beispiel einer zeitlichen Zusicherung

Das Sequenzdiagramm eignet sich durch seinen sequenziellen Aufbau zeitliche Abhängigkeiten innerhalb eines Systems zu modellieren. Dafür können Variablen angegeben werden, welche den aktuellen Zeitpunkt der Ausführung zwischenspeichern. Diese Zeitpunkte können für Bedingungen anderer Interaktionen genutzt werden. [1]

Anhang

Weblinks

Literatur

  • Tim Weilkiens: "Systems Engineering mit SysML/UML - Modellierung, Analyse, Design" dpunkt.verlag, 2. Auflage 2008, ISBN 978-3-89864-577-5

Quellen

Sflg79 10:02, 16. Feb. 2012 (CET)