Sequenzdiagramme
Sequenzdiagramme visualisieren, wie Objekte über die Zeit interagieren. Sie zeigen die Reihenfolge der zwischen Teilnehmern ausgetauschten Nachrichten, um eine bestimmte Aufgabe oder ein Szenario zu bewältigen.
Grundkonzepte
Teilnehmer
Teilnehmer repräsentieren die am Ablauf beteiligten Objekte oder Akteure. Jeder Teilnehmer hat eine Lebenslinie — eine vertikale gestrichelte Linie nach unten, die die Zeit darstellt.
Nachrichten
Nachrichten sind die Kommunikation zwischen Teilnehmern, dargestellt als horizontale Pfeile zwischen Lebenslinien. Die Zeit fließt von oben nach unten.
Aktivierungsboxen
Aktivierungsboxen (auch Ausführungsspezifikationen genannt) sind schmale Rechtecke auf einer Lebenslinie, die zeigen, wann ein Teilnehmer aktiv verarbeitet.
Teilnehmer erstellen
Mit dem Teilnehmerwerkzeug
Drücken Sie auf einer UML-Sequenzdiagramm-Seite P oder wählen Sie Teilnehmer aus dem Menü UML der Werkzeugleiste, und klicken Sie dann auf das Canvas, um Teilnehmer zu platzieren. Neue Teilnehmer reihen sich neben den vorhandenen ein. Drücken Sie bei ausgewähltem Teilnehmer Return, um ihn umzubenennen.
Teilnehmertypen
Teilnehmer können verschiedene Arten von Entitäten darstellen:
- Teilnehmer - Ein allgemeines Objekt oder ein Systemteil (Rechteck)
- Akteur - Ein Benutzer oder ein externes System (Strichmännchen)
- Grenze - UI- oder Systemgrenze
- Steuerung - Prozess- oder Controller-Logik
- Entität - Daten- oder Domänenobjekt
- Datenbank - Ein Datenspeicher
Legen Sie den Rollentyp im Tab Anordnen des Inspektors → Abschnitt UML fest.
Nachrichten erstellen
Mit dem Nachrichtenwerkzeug
Drücken Sie M, um das Nachrichtenwerkzeug zu aktivieren, dann:
- Klicken Sie auf die Lebenslinie des Quellteilnehmers
- Ziehen Sie zur Lebenslinie des Zielteilnehmers
- Lassen Sie los, um die Nachricht zu erstellen
Nachrichtentypen
| Typ | Pfeilstil | Beschreibung |
|---|---|---|
| Synchron | Durchgezogene Linie, gefüllter Pfeil | Sender wartet auf Antwort |
| Asynchron | Durchgezogene Linie, offener Pfeil | Sender fährt fort, ohne zu warten |
| Rückgabe | Gestrichelte Linie, offener Pfeil | Antwort auf einen synchronen Aufruf |
| Erstellen | Gestrichelte Linie, offener Pfeil zur Box | Erstellt einen neuen Teilnehmer |
| Zerstören | Linie endend mit X | Beendet einen Teilnehmer |
| Selbstaufruf | Pfeil, der zur gleichen Lebenslinie zurückführt | Ein Teilnehmer ruft sich selbst auf |
Legen Sie den Nachrichtentyp der ausgewählten Nachricht im Abschnitt UML des Inspektors fest.
Nachrichtenbeschriftungen
Wählen Sie eine Nachricht aus und bearbeiten Sie ihre Beschriftung im Abschnitt UML des Inspektors. Gängige Formate:
methodName()- Einfacher MethodenaufrufmethodName(param1, param2)- Aufruf mit Parameternresult := methodName()- Aufruf mit Rückgabezuweisung[condition] methodName()- Bedingte Nachricht (Wächter)
Aktivierungsboxen
Aktivierungsboxen zeigen den Zeitraum, in dem ein Teilnehmer ausführt oder auf eine Antwort wartet.
Aktivierungsboxen hinzufügen
- Wählen Sie Aktivierung aus dem Menü UML der Werkzeugleiste
- Ziehen Sie entlang der Lebenslinie eines Teilnehmers über die Zeitspanne, in der er aktiv ist
- Die Aktivierungsbox wird auf dieser Lebenslinie platziert
Verschachtelte Aktivierungen
Wenn ein Teilnehmer sich selbst aufruft (rekursiver Aufruf) oder mehrere verschachtelte Aufrufe verarbeitet, können Aktivierungsboxen gestapelt werden.
Fragmente
Fragmente gruppieren Nachrichten, um bedingte Logik, Schleifen oder anderen Kontrollfluss darzustellen.
Fragmenttypen
| Typ | Schlüsselwort | Zweck |
|---|---|---|
| Alternative | alt | If-Else-Verzweigung |
| Option | opt | Optionale Ausführung (If ohne Else) |
| Schleife | loop | Wiederholte Ausführung |
| Abbruch | break | Ausstieg aus umschließender Schleife |
| Parallel | par | Gleichzeitige Ausführung |
| Kritisch | critical | Atomarer/kritischer Abschnitt |
| Negativ | neg | Ungültige Interaktion |
| Zusicherung | assert | Erforderliche Interaktion |
| Ignorieren | ignore | Nachrichten, die ignoriert werden dürfen |
| Berücksichtigen | consider | Nachrichten, die berücksichtigt werden müssen |
| Referenz | ref | Verweis auf eine andere Interaktion |
Fragmente erstellen
- Wählen Sie Fragment aus dem Menü UML der Werkzeugleiste
- Ziehen Sie ein Rechteck über die Teilnehmer und Nachrichten, die Sie gruppieren möchten
- Wählen Sie das Fragment aus und legen Sie seinen Fragmenttyp im Abschnitt UML des Inspektors fest
- Geben Sie bei Bedarf eine Schutzbedingung ein
Fragment-Wächter
Wächter sind Bedingungen in eckigen Klammern:
[x > 0]- Numerische Bedingung[user.isAdmin]- Eigenschaftsprüfung[else]- Standard-/Else-Zweig in Alt-Fragmenten
Elemente neu anordnen
Teilnehmer verschieben
Ziehen Sie Teilnehmer horizontal, um sie neu anzuordnen. Verbundene Nachrichten folgen.
Nachrichten verschieben
Wählen Sie eine Nachricht aus und drücken Sie Cmd+↑ oder Cmd+↓, um sie in der Sequenz nach vorne oder hinten zu verschieben.
Best Practices
- Mit dem Hauptablauf beginnen - Modellieren Sie zuerst den erfolgreichen Ablauf, dann Alternativen hinzufügen
- Lesbar halten - Beschränken Sie sich auf 5-7 Teilnehmer pro Diagramm
- Aussagekräftige Namen verwenden - Beschriften Sie Nachrichten mit tatsächlichen Methodennamen oder Beschreibungen
- Rücknachrichten zeigen - Besonders bei synchronen Aufrufen, wenn der Rückgabewert wichtig ist
- Fragmente sparsam einsetzen - Zu viele verschachtelte Fragmente verringern die Lesbarkeit
- Notizen hinzufügen - Verwenden Sie Notizelemente, um komplexe Logik zu erklären
Beispiel: Benutzeranmeldungsablauf
Ein typischer Anmeldungsablauf könnte beinhalten:
- Benutzer gibt Anmeldedaten ein
- Client sendet Anmeldeanfrage an Server
- Server validiert mit Datenbank
- Datenbank gibt Benutzerdatensatz zurück
- Server erstellt Sitzung
- Server gibt Erfolg/Fehler an Client zurück
- Client aktualisiert die Benutzeroberfläche
Dieser Ablauf demonstriert synchrone Aufrufe, Rücknachrichten und mögliche Alt-Fragmente für Erfolgs-/Fehlerpfade.