UML-Sequenzdiagramm-Beispiele
Drei Abläufe, jeder braucht etwas, das die anderen nicht brauchen: eine Anmeldung, die verzweigt, eine Zahlung, die wiederholt, und ein Ereignis, das nie beantwortet wird.
6 Min. LesezeitUML 2.5.19 von 35
Die kurze Antwort
- Eine Anmeldung ist das Standardbeispiel, weil sie verzweigt - und Verzweigen ist genau das, was ein Sequenzdiagramm kann und eine nummerierte Liste nicht.
- Die fehlschlagende Antwort gehört mit in das loop-Fragment. Eine Schleife, die nur die Anfrage enthält, verbirgt den Grund des Wiederholens.
- Eine asynchrone Nachricht ist eine durchgezogene Linie mit offener Spitze und ohne Antwort. Der fehlende Rückpfeil ist die Aussage, kein Versäumnis.
- Drei Formen decken fast jeden realen Ablauf ab: eine Verzweigung, eine Retry-Schleife und eine Nachricht, die niemand beantwortet.
01Eine Anmeldung, bei der die Verzweigung der Punkt ist#
Lesen Sie das Diagramm oben als zwei Geschichten mit gemeinsamem Anfang. Alles oberhalb des alt-Rahmens geschieht so oder so; darin läuft genau ein Abschnitt, und die Wächter in eckigen Klammern sagen welcher. Das ist das, was ein Sequenzdiagramm kann und eine nummerierte Schrittliste nicht, und deshalb ist dieser Ablauf das übliche erste Beispiel.
Das nachahmenswerte Detail steckt im Fehlerzweig. Er gibt nicht einfach einen Fehler zurück: er feuert zuerst record(failure)an das Versuchsprotokoll, mit offener Pfeilspitze gezeichnet, weil nichts darauf wartet. Ein Diagramm, dessen Fehlerpfad ein einzelner mit "Fehler" beschrifteter Pfeil ist, hat über den Fehlerpfad nicht nachgedacht - und die Drosselungsanforderung, die alle drei Wochen später entdecken, wohnt genau in diesem Zweig.
02Eine Zahlung, bei der Schleife und Selbstaufruf der Punkt sind#
Zwei Dinge hier stehen auf keinem ersten Sequenzdiagramm. Der Wächter des loop-Fragments nennt sowohl eine Schranke als auch eine Bedingung - [3 times, while transient] -, denn eine Schleife ohne Schranke ist ein Diagramm, das einen Ausfall verspricht, und eine ohne Bedingung sagt nicht, was sie vorzeitig beendet.
Das andere ist backoff(), eine Nachricht von Checkout an sich selbst, als Pfeil gezeichnet, der eine Lebenslinie verlässt und zu ihr zurückkehrt. Selbstaufrufe lohnt sich genau dann zu zeichnen, wenn die Verzögerung oder die Entscheidung Teil der Geschichte ist - hier ist sie der ganze Grund, warum der zweite Versuch gelingt - und wegzulassen, wenn sie gewöhnliche interne Arbeit sind.
Beachten Sie auch, was nicht da ist: keine gestrichelte Antwort nach markPaid(orderId). Der Bestellspeicher antwortet natürlich, aber die Antwort trägt nichts, worüber dieser Ablauf nachdenkt, und jede Antwort zu zeichnen ist der Weg, auf dem aus einem Diagramm mit sechs interessanten Nachrichten eines mit zwölf wird.
03Ein Ereignis, bei dem nichts beantwortet wird#
Das ist das Beispiel, das fast niemand zeichnet, und das, welches sich am meisten lohnt. Jeder Pfeil ist asynchron - durchgezogene Linie, offene Spitze - und es gibt nicht einen einzigen gestrichelten Rücklauf. Der Bestelldienst publiziert und macht weiter; Lager und E-Mail-Dienst empfangen das Ereignis jeweils, und nichts auf diesem Diagramm sagt, wer von beiden zuerst fertig ist, weil auch nichts im System es sagt.
Diesen Ablauf mit gefüllten Pfeilspitzen und Antworten zu zeichnen wäre ein anderes System: eines, in dem das Publizieren blockiert, bis beide Konsumenten gelaufen sind - genau die Eigenschaft, die ein Broker beseitigen soll. Die Notation unterscheidet sie, und die Unterscheidung ist hier mehr wert als irgendwo sonst in UML.
In je einer Zeile
- 01Ein alt-Fragment trägt jeden Ausgang; hat nur ein Zweig einen Wächter, meinten Sie opt.
- 02Geben Sie einer Schleife Schranke und Bedingung, und lassen Sie die fehlschlagende Antwort darin.
- 03Offene Pfeilspitze plus keine Antwort heißt asynchron. Zeichnen Sie keinen Rücklauf, den es nicht gab.
- 04Zeichnen Sie einen Selbstaufruf, wenn Verzögerung oder Entscheidung Teil der Geschichte sind, nicht für gewöhnliche interne Arbeit.
- 05Lassen Sie Antworten weg, die nichts tragen, worüber der Ablauf nachdenkt.
Für die Methode statt der Beispiele lesen Sie wie man ein Sequenzdiagramm zeichnet; für die volle Notation den Artikel zum Sequenzdiagramm.
04Häufige Fragen#
Was ist ein gutes Beispiel für ein UML-Sequenzdiagramm?
Eine Anmeldung ist das Standardbeispiel, weil sie verzweigt, und Verzweigen ist genau das, was ein Sequenzdiagramm kann und eine nummerierte Liste nicht. Darüber hinaus lohnen sich ein Retry und eine asynchrone Veröffentlichung, denn zusammen decken sie die drei Formen ab, aus denen fast jeder reale Ablauf besteht.
Wie zeige ich einen Retry im Sequenzdiagramm?
Mit einem loop-Fragment um die wiederholten Nachrichten und einem Wächter, der Anzahl und Bedingung nennt, etwa dreimal, solange transient. Zeichnen Sie die fehlschlagende Antwort ebenfalls in die Schleife - eine Schleife, die nur die Anfrage enthält, verbirgt den Grund des Wiederholens.
Wie zeichnet man eine asynchrone Nachricht?
Als durchgezogene Linie mit offener Pfeilspitze statt der gefüllten, die ein synchroner Aufruf trägt, und ohne Antwortpfeil danach. Genau das Fehlen der Antwort ist der Punkt: der Sender hat nicht gewartet, und ein gestrichelter Rückpfeil würde das Gegenteil behaupten.
In dieser Reihe
- 01Was ist UML?
- 02UML-Symbole
- 03Diagramm auswählen
- 04Klassendiagramme
- 05Klassendiagramm-Beispiele
- 06Klassendiagramm zeichnen
- 07Klassendiagramm-Symbole
- 08Sequenzdiagramme
- 09Sequenzdiagramm-Beispiele
- 10Sequenzdiagramm zeichnen
- 11Anwendungsfalldiagramme
- 12Anwendungsfall-Beispiele
- 13Aktivitätsdiagramme
- 14Aktivitätsbeispiele
- 15Zustandsdiagramme
- 16Zustandsdiagramm-Beispiele
- 17Komponentendiagramme
- 18Komponenten-Beispiele
- 19Komponentendiagramm zeichnen
- 20Komponenten-Symbole
- 21Verteilungsdiagramme
- 22Verteilungsbeispiele
- 23Objektdiagramme
- 24Paketdiagramme
- 25Kompositionsstrukturdiagramme
- 26Kommunikationsdiagramme
- 27Sequenz vs Kommunikation
- 28Zeitverlaufsdiagramme
- 29Interaktionsübersichtsdiagramme
- 30Profildiagramme
- 31UML mit KI
- 32E-Commerce-Beispiel
- 33Banken-Beispiel
- 34Microservices-Beispiel
- 35AWS-Beispiel
Passend dazu
Verhaltensdiagramme
Verhaltensdiagramme
Verhaltensdiagramme
Modellierungspraxis
Verhaltensdiagramme
Verhaltensdiagramme