Sequenzdiagramm lesen und erstellen – UML erklärt
Du liest Lebenslinien und Nachrichten, unterscheidest Aufrufarten und überträgst einfache Abläufe mit Bedingungen in ein Sequenzdiagramm.
Kurz gesagt
Ein Sequenzdiagramm zeigt, welche Beteiligten sich in welcher Reihenfolge Nachrichten senden. Du zeichnest ihre Lebenslinien nebeneinander und ordnest die Nachrichten im einfachen Ablauf von oben nach unten an.
UML steht für Unified Modeling Language, auf Deutsch etwa „vereinheitlichte Modellierungssprache“. Sie bietet Zeichenregeln, um den Aufbau und die Abläufe von Systemen darzustellen. Ein Sequenzdiagramm ist ein Modell, also eine vereinfachte Darstellung eines Ablaufs, und kein ausführbares Programm. Alle folgenden Anwendungsbeispiele sind erfunden.
Deine Lernziele
Ein Beteiligter kann zum Beispiel ein Nutzer, ein Gerät oder ein Programmteil sein. Seine Lebenslinie besteht aus einem Kopf mit seinem Namen und einer senkrechten gestrichelten Linie darunter. Die Beteiligten stehen nebeneinander. Ihre Reihenfolge von links nach rechts legt keine zeitliche Reihenfolge fest.
Eine Nachricht zeigt eine Kommunikation zwischen Beteiligten. Ihr Pfeil führt vom Sender zum Empfänger. Die Beschriftung nennt zum Beispiel eine angeforderte Tätigkeit oder ein zurückgegebenes Ergebnis. Die Schreibweise „Sender → Empfänger“ nennt in unseren Textbeschreibungen die Richtung. Welche Pfeilform du im Diagramm zeichnen sollst, steht jeweils dabei.
In den hier betrachteten einfachen Abläufen liest du die vorgegebene Nachrichtenfolge von oben nach unten. Sendet derselbe Beteiligte zwei Nachrichten nacheinander, steht die spätere weiter unten. Die senkrechten Abstände zeigen keine gemessene Dauer: Ein größerer Abstand bedeutet keine längere Bearbeitungszeit.
Eine Operation ist hier eine Tätigkeit, die ein Beteiligter ausführt. Ein Aktivierungsbalken ist ein schmales senkrechtes Rechteck auf seiner Lebenslinie. Es zeigt einen Abschnitt, in dem der Beteiligte eine Operation ausführt. Die obere Kante markiert den Beginn, die untere das Ende dieser Ausführung. Ohne zusätzliche Zeitangaben kannst du auch aus der Balkenhöhe keine genaue Dauer ablesen.
Lebenslinie
Eine Lebenslinie steht für einen Beteiligten im Ablauf. An ihr erkennst du, welche Nachrichten dieser Beteiligte sendet oder empfängt.
Beispiel: Nachrichten eines Quizgeräts lesen
- 1Ein Quizgerät sendet zuerst „Aufgabe zeigen“ an eine Anzeige.
- 2Danach sendet dasselbe Quizgerät „Antwort zeigen“ an die Anzeige. Dieser zweite Pfeil steht weiter unten.
- 3Auch wenn zwischen den Pfeilen viel Platz bleibt, lässt sich daraus keine Wartezeit in Sekunden ablesen.
Merke: Die Lebenslinie nennt den Beteiligten, der Nachrichtenpfeil zeigt die Kommunikation und der Aktivierungsbalken zeigt eine Ausführung. Senkrechte Abstände sind kein Zeitmaßstab.
Teste dich
Ein Aufruf ist eine Nachricht, mit der der Sender den Empfänger auffordert, eine Operation auszuführen. Für die beiden folgenden Aufrufarten zeichnest du eine durchgezogene Linie zum Empfänger. Die Pfeilspitze unterscheidet die Aufrufarten.
Synchron bedeutet hier: Der Sender wartet auf die Antwort des Empfängers. Bis sie eintrifft, ist er durch diesen Aufruf für weitere Operationen blockiert. Einen synchronen Aufruf zeichnest du mit einer gefüllten dreieckigen Pfeilspitze.
Asynchron bedeutet hier: Der Sender muss nach dem Senden nicht blockierend auf eine Antwort warten. Er kann weitere Nachrichten senden oder empfangen. Einen asynchronen Aufruf zeichnest du mit einer offenen, nicht ausgefüllten Pfeilspitze. Auch auf einen asynchronen Aufruf kann später eine Antwort folgen.
Eine Rückgabe ist eine Antwort auf einen Aufruf, etwa mit einem Ergebnis. Dafür verwenden wir hier eine gestrichelte Linie mit einer Pfeilspitze zum ursprünglichen Sender. Eine Rückgabe ist keine neue Aufforderung zur Ausführung einer Operation. Entscheidend für den Unterschied zwischen synchron und asynchron ist das blockierende Warten des Senders, nicht das bloße Vorkommen einer Antwort.
| Aufrufart | Verhalten des Senders | Pfeil zum Empfänger |
|---|---|---|
| Synchron | Wartet blockierend auf die Antwort. | Durchgezogene Linie, gefüllte dreieckige Spitze. |
| Asynchron | Kann ohne blockierendes Warten weitere Nachrichten bearbeiten. | Durchgezogene Linie, offene Spitze. |
Merke: Asynchron schließt eine spätere Antwort nicht aus. Der Sender muss durch diesen Aufruf nicht blockierend auf sie warten.
Teste dich
Ein Fragment ist ein eingerahmter Teil eines Sequenzdiagramms. Sein Kennwort steht oben links im Rahmen und legt fest, wie du den Inhalt liest. Eine Bedingung ist eine Aussage, die im betrachteten Zustand wahr oder falsch ist. Bedingungen stehen in eckigen Klammern, zum Beispiel „[Tür offen]“.
Das Kennwort alt steht für Alternativen. Der Rahmen enthält getrennte Bereiche, die hier Zweige heißen. Eine waagerechte gestrichelte Trennlinie grenzt die Zweige voneinander ab. Zu jedem Zweig steht eine Bedingung. In unseren einfachen alt-Fragmenten schließen sich die Bedingungen gegenseitig aus und decken zusammen alle angegebenen Fälle ab. Es wird der Zweig ausgeführt, dessen Bedingung wahr ist; die anderen Zweige werden übersprungen.
Das Kennwort opt steht für einen optionalen, also bedingten Abschnitt. Ist seine angegebene Bedingung wahr, wird der Inhalt ausgeführt. Ist sie falsch, wird der Inhalt übersprungen. Danach geht der Ablauf unterhalb des Rahmens weiter.
Das Kennwort loop steht für Wiederholung. In unseren Beispielen wird die Wiederholungsbedingung vor jedem Durchlauf geprüft. Ist sie wahr, wird der Inhalt einmal ausgeführt und die Bedingung anschließend erneut geprüft. Ist sie falsch, endet die Wiederholung. Ist sie schon vor dem ersten Durchlauf falsch, wird der Inhalt keinmal ausgeführt. Beachte dabei, wie sich der Zustand durch einen Durchlauf verändert.
| Kennwort | Bedingung | Ausführung |
|---|---|---|
| alt | Hier ist genau eine der angegebenen Zweigbedingungen wahr. | Der dazugehörige Zweig wird ausgeführt. |
| opt | Die angegebene Bedingung ist wahr oder falsch. | Bei wahr läuft der Inhalt, bei falsch wird er übersprungen. |
| loop | Die Wiederholungsbedingung wird hier vor jedem Durchlauf geprüft. | Bei wahr folgt ein Durchlauf, bei falsch endet die Wiederholung. |
Beispiel: Eine Sortierbox wiederholt eine Meldung
- 1Anfangs liegen drei Marken in einer Sortierbox. Der Rahmen lautet loop [noch eine Marke in der Box].
- 2In jedem Durchlauf nimmt die Box eine Marke heraus und sendet der Anzeige die Nachricht „Marke entnommen“.
- 3Nach dem ersten Durchlauf bleiben zwei Marken, nach dem zweiten eine und nach dem dritten keine.
- 4Die Bedingung ist nun falsch. Es gab drei Durchläufe und drei Nachrichten „Marke entnommen“.
Teste dich
Ein Anwendungsfall beschreibt, wie ein Nutzer und ein System zusammenwirken, um eine Aufgabe zu erfüllen. Hier überträgst du einen vollständig vorgegebenen einfachen Ablauf daraus. Erfinde dabei keine zusätzlichen Nachrichten oder Antworten.
Bestimme zuerst alle Beteiligten und zeichne für jeden einen Kopf mit Namen und eine Lebenslinie darunter. Lies dann die nummerierten Schritte der Reihe nach. Suche in jedem Schritt den Sender, den Empfänger und den Inhalt der Nachricht. Zeichne den Pfeil vom Sender zum Empfänger und beschrifte ihn. Setze die folgenden Nachrichten entsprechend der vorgegebenen Reihenfolge weiter unten ein. Die Position eines Beteiligten links oder rechts ersetzt diese Reihenfolge nicht.
Beachte auch die Nachrichtenart: Ein synchroner Aufruf erhält eine durchgezogene Linie mit gefüllter Spitze, ein asynchroner eine durchgezogene Linie mit offener Spitze. Eine ausdrücklich vorgegebene Rückgabe zeichnest du gestrichelt zurück zum ursprünglichen Sender. Die Nummern helfen dir beim Übertragen; du musst sie nicht als Teil des Nachrichtennamens übernehmen.
Vorgabe für ein Lichtpult, also ein Bediengerät für eine Beleuchtung: Der Speicher hält gespeicherte Lichteinstellungen bereit; eine solche Einstellung heißt hier Szene. Schritt 1: Das Pult fordert vom Speicher synchron „Szene abrufen“ an. Schritt 2: Der Speicher gibt die Szene an das Pult zurück. Schritt 3: Das Pult fordert vom Speicher synchron „Szene speichern“ an. Schritt 4: Der Speicher gibt eine Bestätigung an das Pult zurück.
Beispiel: Den Ablauf des Lichtpults zeichnen
- 1Zeichne die Lebenslinien Pult und Speicher nebeneinander, jeweils mit Namen oben und gestrichelter senkrechter Linie darunter.
- 2Oberster Nachrichtenpfeil: Pult → Speicher, beschriftet mit „Szene abrufen“, durchgezogen mit gefüllter Spitze.
- 3Darunter: Speicher → Pult, beschriftet mit „Szene“, gestrichelt als Rückgabe.
- 4Noch weiter unten: Pult → Speicher, beschriftet mit „Szene speichern“, durchgezogen mit gefüllter Spitze.
- 5Unterster Nachrichtenpfeil: Speicher → Pult, beschriftet mit „Bestätigung“, gestrichelt als Rückgabe.
Merke: Prüfe jeden übertragenen Schritt auf Sender, Empfänger, Nachrichteninhalt, Pfeilform und Reihenfolge.
Teste dich
Alles auf einen Blick
Sequenzdiagramm
In den einfachen Abläufen folgt die Nachrichtenfolge von oben nach unten; senkrechte Abstände messen keine Dauer.
Ein schmales Rechteck auf einer Lebenslinie zeigt die Ausführung einer Operation.
Der Sender wartet blockierend auf eine Antwort; der Aufruf hat eine gefüllte Pfeilspitze.
Der Sender kann ohne blockierendes Warten weitere Nachrichten bearbeiten; eine spätere Antwort bleibt möglich.
alt wählt hier den zutreffenden Zweig, opt führt einen bedingten Abschnitt aus und loop wiederholt nach der angegebenen Bedingung.
Bestimme die Beteiligten und prüfe bei jeder Nachricht Richtung, Inhalt, Pfeilform und Reihenfolge.
Eine Fachöffnung in ein Sequenzdiagramm übertragen
- 1Vorgabe für eine Paketstation: Das Bedienfeld nimmt die Auswahl auf. Die Fachverwaltung ist der Programmteil, der die Fächer steuert. Ein Schloss kann die Öffnung bestätigen.
- 2Schritt 1 der Vorgabe: Das Bedienfeld fordert von der Fachverwaltung synchron „Fach öffnen“ an.
- 3Schritt 2 der Vorgabe: Die Fachverwaltung fordert vom Schloss synchron „Entriegeln“ an.
- 4Schritt 3 der Vorgabe: Das Schloss gibt „Entriegelt“ an die Fachverwaltung zurück.
- 5Schritt 4 der Vorgabe: Die Fachverwaltung gibt „Fach offen“ an das Bedienfeld zurück.
- 6Beginne mit drei Lebenslinien: Bedienfeld, Fachverwaltung und Schloss. Schreibe die Namen oben und zeichne darunter jeweils eine gestrichelte senkrechte Linie.
- 7Zeichne zuerst Bedienfeld → Fachverwaltung mit „Fach öffnen“. Darunter folgt Fachverwaltung → Schloss mit „Entriegeln“. Beide Aufrufe erhalten durchgezogene Linien mit gefüllten Spitzen.
- 8Zeichne darunter Schloss → Fachverwaltung mit „Entriegelt“ und zuletzt Fachverwaltung → Bedienfeld mit „Fach offen“. Beide Rückgaben erhalten gestrichelte Linien zum jeweiligen ursprünglichen Sender.
- 9Prüfe die Folge: Das Schloss antwortet vor der Fachverwaltung. Diese gibt ihre Antwort an das Bedienfeld erst danach zurück.
Fehler finden
Fehler in Zeile 3Die dritte Zeile schließt eine Antwort fälschlich aus. Richtig: Eine spätere Antwort des Programmteils ist möglich; die Wetteranzeige muss nach dem Senden nicht blockierend darauf warten.
Lückentext
Beim synchronen Aufruf ist der Sender bis zur Antwort für weitere Operationen . In einem opt-Fragment ist die angegebene Bedingung falsch. Sein Inhalt wird . Ein loop-Fragment wird vor jedem Durchlauf geprüft. Seine Bedingung ist bereits vor dem ersten Durchlauf falsch. Sein Inhalt läuft .