Sequenzdiagramm
aus Wikipedia, der freien Enzyklopädie
Strukturdiagramme der UML |
---|
Klassendiagramm |
Komponentendiagramm |
Kompositionsstrukturdiagramm |
Objektdiagramm |
Paketdiagramm |
Verteilungsdiagramm |
Verhaltensdiagramme der UML |
Aktivitätsdiagramm |
Anwendungsfalldiagramm |
Interaktionsübersichtsdiagramm |
Kommunikationsdiagramm |
Sequenzdiagramm |
Zeitverlaufsdiagramm |
Zustandsdiagramm |
Ein Sequenzdiagramm (engl. sequence diagram) ist eine der dreizehn Diagrammarten in der Unified Modeling Language (UML), einer Modellierungssprache für Software und andere Systeme.
Das Sequenzdiagramm ist ein Verhaltensdiagramm, genauer eines der vier Interaktionsdiagramme. Es zeigt eine bestimmte Sicht auf die dynamischen Aspekte des modellierten Systems. Ein Sequenzdiagramm ist eine grafische Darstellung einer Interaktion und beschreibt den Austausch von Nachrichten zwischen Ausprägungen mittels Lebenslinien.
Sequenzdiagramme der UML2 sind nahe verwandt mit Message Sequence Charts (MSC), einem Standard der ITU-T (International Telecommunication Union - Telecommunication Standardization Sector).
Ein Sequenzdiagramm stellt in der Regel einen Weg durch einen Entscheidungsbaum innerhalb eines Systemablaufes dar. Sollen Übersichten mit allen Entscheidungsmöglichkeiten entwickelt werden, eignet sich hierzu eher das Aktivitätsdiagramm oder Zustandsdiagramm.
Inhaltsverzeichnis |
[Bearbeiten] Notation von Lebenslinien und Nachrichten
Die Abbildung links zeigt ein Beispiel eines Sequenzdiagramms mit einem Kopf- und einem Inhaltsbereich. Das Schlüsselwort im Kopfbereich ist bei einem Sequenzdiagramm sd
oder interaction
. Von jedem Kommunikationspartner geht eine Lebenslinie (gestrichelt) aus. Es sind zwei synchrone Operationsaufrufe, erkennbar an den Pfeilen mit ausgefüllter Pfeilspitze, dargestellt.
Synchrone und asynchrone Nachrichten werden in Sequenzdiagrammen mit unterschiedlichen Pfeilen dargestellt. Nachrichten, die asynchronen Signalen entsprechen, werden gleich dargestellt wie asynchrone Operationsaufrufe. Synchrone Nachrichten werden mit einer gefüllten Pfeilspitze, asynchrone Nachrichten mit einer offenen Pfeilspitze gezeichnet. Die schmalen Rechtecke, die auf den Lebenslinien liegen, sind Aktivierungsbalken, die den Focus of Control anzeigen, also jenen Bereich, in dem ein Objekt über den Kontrollfluss verfügt, und aktiv an Interaktionen beteiligt ist.
Die Abbildung links zeigt vier weitere Notationsvarianten für verlorene und gefundene Nachrichten, sowie für Nachrichten von und an einen Verknüpfungspunkt. Dass es sich um eine Nachricht von einem oder an einen Verknüpfungspunkt handelt, erkennt man daran, dass der entsprechende Pfeil auf dem Rand des Sequenzdiagramms beginnt bzw. endet. Der Verknüpfungspunkt ist einfach der Schnittpunkt des Pfeils mit dem Rand, ein deutlicheres graphisches Symbol ist dafür nicht vorgesehen.
[Bearbeiten] Zeitliche Ordnung der Ereignisse
Ein Sequenzdiagramm beschreibt das Verhalten eines Systems, indem es die zeitliche Ordnung von Ereignisauftritten spezifiziert. Nicht der präzise Zeitpunkt, wann ein Ereignis auftritt, ist dabei ausschlaggebend, sondern welche Ereignisse vor und welche nach einem bestimmten Ereignisauftritt auftreten müssen (Siehe dazu Sequentialisierung und Nebenläufigkeit).
Die Abbildung links zeigt ein Sequenzdiagramm mit zwei synchronen Operationsaufrufen. Blau eingekreist sind die vier Ereignisauftritte. S1
und E1
stehen für das Sende- und das Empfangs-Nachricht-Ereignis für die Nachricht m1
, S2
und E2
für die entsprechenden Ereignisse, die mit m2
in Verbindung stehen. Die Zeitachse läuft in einem Sequenzdiagramm von oben nach unten, sollte aber nicht als absolute Zeit verstanden werden.
Zu den Ereignisauftritten in diesem Sequenzdiagramm lassen sich folgende Aussagen machen:
E1
tritt nachS1
auf, weil das Empfangs- immer nach dem Sende-Nachricht-Ereignis vorkommt. Analog trittE2
nachS2
auf.S2
tritt nachS1
auf, weilS2
unterS1
gezeichnet ist
Alles in allem modelliert dieses Sequenzdiagramm also eine Interaktion, die durch genau eine Folge von Ereignisauftritten spezifiziert ist: <S1, E1, S2, E2>
.
Das Sequenzdiagramm in der Abbildung links unterscheidet sich nur geringfügig vom vorangehenden Sequenzdiagramm. Der einzige Unterschied besteht darin, dass statt zwei synchronen zwei asynchrone Nachrichten dargestellt sind. Hier gilt weiterhin, dass E1
nach S1
und E2
nach S2
auftritt, weil das Empfangs- immer nach dem Sende-Nachricht-Ereignis vorkommt. Weil es sich um asynchrone Kommunikation handelt, könnte E1
hier jedoch nicht nur vor sondern auch erst nach S2
vorkommen.
Das Sequenzdiagramm spezifiziert also eine Interaktion, in der zwei Spuren von Ereignissauftritten zulässig sind: <S1, E1, S2, E2>
und <S1, S2, E1, E2>
.
Falls nötig, kann man die zulässigen Abfolgen von Ereignisauftritten mit zusätzlichen Ordnungsbeziehungen einschränken. Eine Ordnungsbeziehung spezifiziert nicht eine Nachricht, die zwischen zwei Lebenslinien ausgetauscht wird, sondern die Tatsache, dass ein Ereignisauftritt nach einem anderen Ereignisauftritt vorkommen muss. Im Beispiel modelliert die Ordnungsbeziehung, dass S2
immer nach E1
erfolgt.
Mit dieser zusätzlichen Einschränkung stellt dieses Sequenzdiagramm erneut eine Interaktion mit genau einer zulässigen Spur dar: <S1, E1, S2, E2>
.
[Bearbeiten] Kombinierte Fragmente
Interaktionen können je nach modelliertem System sehr komplex werden. Wenn es keine Möglichkeit gäbe, Sequenzdiagramme zu modularisieren, wären die entsprechenden graphischen Darstellungen unübersichtlich und schwer verständlich.
Die UML2 hat deshalb aus den Message Sequence Chart deren Konzept der inline expressions unter dem Namen kombinierte Fragmente übernommen. Ein kombiniertes Fragment ist die Kombination eines Interaktionsoperators und eines oder mehrerer Interaktionsoperanden. Der Interaktionsoperator spezifiziert die Art des kombinierten Fragments, während die Interaktionsoperanden für die Interaktionsfragmente in diesem kombinierten Fragment stehen.
Ein Optionales Fragment besteht zum Beispiel aus dem Interaktionsoperanden opt
, einer Bedingung und einem Interaktionsfragment. Ist ein optionales Fragment in eine Interaktion eingebunden, wird das zugehörige Interaktionsfragment nur durchlaufen, wenn die Bedingung wahr ist.
Schlüsselwort | Deutsche Bezeichnung | Englische Bezeichnung | Einsatzzweck |
---|---|---|---|
alt |
Alternatives Fragment | Alternative | Modellierung alternative Ablaufmöglichkeiten |
assert |
Zusicherung | Assertion | Modellierung unabdingbarere Interaktionen |
break |
Abbruchfragment | Break | Modellierung von Ausnahmefällen |
consider |
Relevante Nachrichten | Consider | Modellierung von Filtern für wichtige Nachrichten |
critical |
Kritischer Bereich | Critical Region | Modellierung von nicht unterbrechbaren Interaktionen |
ignore |
Irrelevante Nachrichten | Ignore | Modellierung von Filtern für unwichtige Nachrichten |
loop |
Schleife | Loop | Modellierung von Iterationen in Interaktionen |
neg |
Negation | Negative | Modellierung von ungültigen Interaktionen |
opt |
Optionales Fragment | Option | Modellierung von optionalen Teilen einer Interaktion |
par |
Paralleles Fragment | Parallel | Modellierung von nebenläufigen Teilen einer Interaktion |
seq |
Lose Ordnung | Weak Sequencing | Modellierung von Abläufen, die von Lebenslinien und Operanden abhängen |
strict |
Strenge Ordnung | Strict Sequencing | Modellierung von Abläufen, die nicht von Lebenslinien und Operanden abhängen |
[Bearbeiten] alt
Durch einen alt-Operator können alternative Abläufe, die durch Bedingungen versehen sind, zusammengefasst werden.
[Bearbeiten] assert
Für eine Nachrichtenmenge kann mit Hilfe dieses Operators eine zwingend notwendige Ablaufreihenfolge angegeben werden.
[Bearbeiten] break
Der normale Ablauf wird unterbrochen, falls eine vorherige Bedingung erfüllt, bzw. verletzt wurde.
[Bearbeiten] consider
Mit Hilfe dieses Operators werden nur die angegebenen Aktionen ausgeführt, der Rest wird ignoriert.
[Bearbeiten] critical
Falls diese Region betreten wird, so werden alle Aktionen ohne jegliche Unterbrechung ausgeführt.
[Bearbeiten] ignore
Bestimmte Aktionen können mit Hilfe dieses Operators an der Ausführung gehindert werden.
[Bearbeiten] loop
Mit Hilfe des loop-Operators können Schleifen definiert werden. Zur Vereinfachung findet man manchmal auch loop while oder loop until.
[Bearbeiten] neg
Dieser Operator kapselt unzulässige Abläufe.
[Bearbeiten] opt
Die einfachste Form der Operatoren ist der opt-Operator, der optionale Teilabläufe umfasst.
[Bearbeiten] par
Der par-Operator dient der Darstellung von parallelen Abläufen
[Bearbeiten] ref
Mit Hilfe dieses Operators wird durch eine Referenz auf ein anderes Sequenzdiagramm verwiesen, das einen Teilablauf beschreibt.
[Bearbeiten] seq
Legt eine Reihenfolge für die Abfolge von Aktionen einer Lebenslinie vor.
[Bearbeiten] strict
Ähnelt dem Aufbau des seq-Operators. Hier jedoch betrifft die Reihenfolge nicht nur eine Lebenslinie, sondern gleich alle Lebenslinien.
[Bearbeiten] Siehe auch
[Bearbeiten] Weblinks
[Bearbeiten] Literatur
- Christoph Kecher: UML 2.0 - Das umfassende Handbuch. Galileo Computing, 2006, ISBN 3-89842-738-2
- Heide Balzert: Lehrbuch der Objektmodellierung - Analyse und Entwurf mit der UML 2. Elsevier Spektrum Akademischer Verlag, 2005, ISBN 3-8274-1162-9
- M. Jeckle , C. Rupp, J. Hahn, B. Zengler, S. Queins: UML 2 glasklar. Hanser-Verlag, 2003, ISBN 3-446-22575-7, Kapitel 12 - Sequenzdiagramm
- ITU-T Recommendation Z.120 (1999), Message Sequence Chart (MSC). PDF