Wikipedia · einfach zusammengefasst · Stand
Sequenzdiagramm
Ein Sequenzdiagramm stellt in der Regel einen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes dar. Sollen Übersichten mit allen …
Inhalt4 Abschnitte
Grundidee und Einsatz
Ein Sequenzdiagramm (englisch: sequence diagram) ist ein Verhaltensdiagramm der Unified Modeling Language (UML). Die UML ist eine Modellierungssprache für Software und andere Systeme. Das Sequenzdiagramm stellt eine Interaktion grafisch dar und gehört zu den vier Arten von Interaktionsdiagrammen der UML.
Im Mittelpunkt steht der Austausch von Nachrichten zwischen Objekten. Diese Objekte werden durch Lebenslinien dargestellt. Ein Sequenzdiagramm beschreibt in der Regel einen möglichen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufs. Es zeigt also typischerweise einen konkreten Ablauf. Für eine Übersicht über alle Entscheidungsmöglichkeiten wären jeweils eigene Sequenzdiagramme für die möglichen Abläufe nötig. Für solche Übersichten eignen sich eher Aktivitätsdiagramme oder Zustandsdiagramme.
Sequenzdiagramme der UML2 sind eng mit den Message Sequence Charts (MSC) verwandt, einem Standard der ITU-T (International Telecommunication Union – Telecommunication Standardization Sector).
Lebenslinien, Nachrichten und Aktivierung
Ein Sequenzdiagramm besitzt in dem beschriebenen Beispiel einen Kopf- und einen Inhaltsbereich. Im Kopfbereich steht als Schlüsselwort sd oder interaction. Im Inhaltsbereich befinden sich oben beschriftete Rechtecke für die Kommunikationspartner. Von jedem Rechteck führt eine gestrichelte Linie nach unten: die Lebenslinie des jeweiligen Kommunikationspartners.
Nachrichten werden als Pfeile dargestellt; ihr Name steht über dem Pfeil. Ein gefüllter Pfeilkopf kennzeichnet eine synchrone Nachricht, ein offener Pfeilkopf eine asynchrone Nachricht. Synchrone Nachrichten blockieren die ausgehende Lebenslinie für weitere Nachrichten, bis eine Antwort eingetroffen ist. Bei asynchronen Nachrichten besteht diese Blockierung nicht. Synchrone Operationsaufrufe sind eine besondere Art von Nachricht. Asynchrone Signale werden genauso dargestellt wie asynchrone Operationsaufrufe.
Schmale Rechtecke auf den Lebenslinien heißen Aktivierungsbalken. Sie zeigen den Focus of Control an, also den Bereich, in dem ein Objekt den Kontrollfluss besitzt und aktiv an Interaktionen beteiligt ist.
Weitere Varianten stellen verlorene und gefundene Nachrichten sowie Nachrichten von oder an einen Verknüpfungspunkt dar. Ein Verknüpfungspunkt ist daran zu erkennen, dass der Pfeil am Rand des Sequenzdiagramms beginnt oder dort endet. Der Schnittpunkt des Pfeils mit dem Rand ist der Verknüpfungspunkt; ein eigenes, deutlicheres grafisches Symbol ist dafür nicht vorgesehen.
Zeitliche Ordnung und Ereignisfolgen
Ein Sequenzdiagramm legt die zeitliche Ordnung von Ereignisauftritten fest. Entscheidend ist nicht der genaue Zeitpunkt eines Ereignisses, sondern welche Ereignisse vor oder nach einem anderen Ereignis auftreten müssen. Die Zeitachse verläuft im Diagramm von oben nach unten, darf aber nicht als absolute Zeitachse verstanden werden.
Bei einer Nachricht gibt es ein Sendeereignis und ein Empfangsereignis. Für zwei synchrone Nachrichten m1 und m2 werden diese Ereignisse als S1 und E1 beziehungsweise S2 und E2 bezeichnet. E1 tritt nach S1 auf, weil ein Empfang immer nach dem Senden erfolgt. Entsprechend tritt E2 nach S2 auf. Außerdem liegt S2 unter S1; bei synchroner Kommunikation tritt S2 genauer gesagt erst nach E1 auf. Damit ist genau die Folge <S1, E1, S2, E2> zulässig.
Bei zwei asynchronen Nachrichten bleibt zwar E1 nach S1 und E2 nach S2 notwendig. E1 kann aber vor oder nach S2 auftreten. Weil die Ereignisse auf einer Lebenslinie von oben nach unten geordnet sind, kann E1 nicht nach E2 auftreten. Zulässig sind daher die beiden Folgen <S1, E1, S2, E2> und <S1, S2, E1, E2>.
Zusätzliche Ordnungsbeziehungen können die zulässigen Folgen weiter einschränken. Eine Ordnungsbeziehung beschreibt keine zwischen Lebenslinien ausgetauschte Nachricht, sondern die Bedingung, dass ein Ereignis nach einem anderen Ereignis auftreten muss. Wird beispielsweise festgelegt, dass S2 immer nach E1 erfolgt, bleibt nur die Folge <S1, E1, S2, E2>.
Kombinierte Fragmente und ihre Operatoren
Komplexe Interaktionen können durch kombinierte Fragmente übersichtlich und modular dargestellt werden. Die UML2 übernahm dafür aus den Message Sequence Charts das Konzept der inline expressions und bezeichnete es als kombinierte Fragmente. Ein kombiniertes Fragment besteht aus einem Interaktionsoperator und einem oder mehreren Interaktionsoperanden. Der Interaktionsoperator legt die Art des Fragments fest; die Interaktionsoperanden enthalten die zugehörigen Interaktionsfragmente.
Ein optionales Fragment verwendet beispielsweise den Operator opt, eine Bedingung und ein Interaktionsfragment. Das enthaltene Fragment wird nur durchlaufen, wenn die Bedingung wahr ist.
Wichtige Operatoren sind:
- alt (Alternatives Fragment): fasst alternative, mit Bedingungen versehene Abläufe zusammen.
- assert (Zusicherung): beschreibt unabdingbare Interaktionen und kann für eine Nachrichtenmenge eine zwingende Ablaufreihenfolge angeben.
- break (Abbruchfragment): unterbricht den normalen Ablauf in Ausnahmefällen, wenn eine Bedingung erfüllt oder verletzt wurde.
- consider (Relevante Nachrichten): berücksichtigt nur die angegebenen Aktionen und ignoriert den Rest.
- critical (Kritischer Bereich): führt alle Aktionen einer betretenen Region ohne Unterbrechung aus; Multithreading ist dort unmöglich.
- ignore (Irrelevante Nachrichten): verhindert die Ausführung bestimmter Aktionen.
- loop (Schleife): beschreibt Iterationen in Interaktionen; teilweise werden auch loop while oder loop until verwendet.
- neg (Negation): kapselt unzulässige Interaktionen und kann als Platzhalter für spätere Abläufe dienen.
- opt (Optionales Fragment): umfasst optionale Teile einer Interaktion.
- par (Paralleles Fragment): stellt nebenläufige, also parallel ablaufende Teile dar.
- ref (Verweis): verweist auf ein anderes Sequenzdiagramm, das einen Teilablauf beschreibt.
- seq (Lose Ordnung): legt eine Reihenfolge für Aktionen fest, die von Lebenslinien und Operanden abhängt.
- strict (Strenge Ordnung): ordnet die Aktionen über alle Lebenslinien hinweg, nicht nur innerhalb einer einzelnen Lebenslinie oder eines Operanden.
Lernvideos zu Sequenzdiagramm
30:17
UML-Sequenzdiagramm für AP2 Fachinformatiker Anwendungsentwicklung
Stefan Macke · 29.439 Aufrufe
25:03
UML Sequenzdiagramm
Maik Aicher · 40.695 Aufrufe
6:15
UML Teil 7 - Sequenzdiagramme
Patrick Boekhoven · 20.021 Aufrufe
3:24
UML Sequenzdiagramm an einem Beispiel | Einfach erklärt!
Akademie Digitale Berufe | Draw my Business · 95.699 Aufrufe