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 P, um das Teilnehmerwerkzeug zu aktivieren, und klicken Sie dann auf das Canvas, um Teilnehmer zu platzieren.

Sequenzdiagramm mit Teilnehmern

Teilnehmertypen

Teilnehmer können verschiedene Entitätstypen darstellen:

  • Akteur - Ein Benutzer oder externes System (Strichmännchen-Symbol)
  • Objekt - Eine Instanz einer Klasse (Rechteck)
  • Komponente - Eine Systemkomponente (Rechteck mit Stereotyp)
  • Grenze - UI- oder Systemgrenze
  • Steuerung - Prozess- oder Controller-Logik
  • Entität - Daten- oder Domänenobjekt

Konfigurieren Sie den Teilnehmertyp im Inspektorpanel.

Nachrichten erstellen

Mit dem Nachrichtenwerkzeug

Drücken Sie M, um das Nachrichtenwerkzeug zu aktivieren, dann:

  1. Klicken Sie auf die Lebenslinie des Quellteilnehmers
  2. Ziehen Sie zur Lebenslinie des Zielteilnehmers
  3. Lassen Sie los, um die Nachricht zu erstellen

Nachrichtentypen

TypPfeilstilBeschreibung
SynchronDurchgezogene Linie, gefüllter PfeilSender wartet auf Antwort
AsynchronDurchgezogene Linie, offener PfeilSender fährt fort, ohne zu warten
RücknachrichtGestrichelte Linie, offener PfeilAntwort auf einen synchronen Aufruf
ErstellenGestrichelte Linie, offener Pfeil zur BoxErstellt einen neuen Teilnehmer
ZerstörenLinie endend mit XBeendet einen Teilnehmer

Nachrichtentypen

Nachrichtenbeschriftungen

Doppelklicken Sie auf eine Nachricht, um ihre Beschriftung zu bearbeiten. Gängige Formate:

  • methodName() - Einfacher Methodenaufruf
  • methodName(param1, param2) - Aufruf mit Parametern
  • result := 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

  1. Wählen Sie eine Nachricht aus
  2. Aktivieren Sie im Inspektor „Aktivierung anzeigen"
  3. Die Aktivierungsbox erscheint auf der Lebenslinie des empfangenden Teilnehmers

Verschachtelte Aktivierungen

Wenn ein Teilnehmer sich selbst aufruft (rekursiver Aufruf) oder mehrere verschachtelte Aufrufe verarbeitet, können Aktivierungsboxen gestapelt werden.

Aktivierungsboxen

Fragmente

Fragmente gruppieren Nachrichten, um bedingte Logik, Schleifen oder anderen Kontrollfluss darzustellen.

Fragmenttypen

TypSchlüsselwortZweck
AlternativealtIf-Else-Verzweigung
OptionoptOptionale Ausführung (If ohne Else)
SchleifeloopWiederholte Ausführung
AbbruchbreakAusstieg aus umschließender Schleife
ParallelparGleichzeitige Ausführung
KritischcriticalAtomarer/kritischer Abschnitt

Fragmente erstellen

  1. Wählen Sie die Nachrichten aus, die Sie gruppieren möchten
  2. Rechtsklicken Sie und wählen Sie „Fragment hinzufügen" oder verwenden Sie das Fragmentwerkzeug
  3. Wählen Sie den Fragmenttyp
  4. Fügen Sie Bedingungen/Wächter nach Bedarf hinzu

Fragmentbeispiel

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

Ziehen Sie Nachrichten vertikal, um ihre Reihenfolge in der Sequenz zu ändern. Dies beeinflusst die Zeitfolge/Reihenfolge der Interaktion.

Best Practices

  1. Mit dem Hauptablauf beginnen - Modellieren Sie zuerst den erfolgreichen Ablauf, dann Alternativen hinzufügen
  2. Lesbar halten - Beschränken Sie sich auf 5-7 Teilnehmer pro Diagramm
  3. Aussagekräftige Namen verwenden - Beschriften Sie Nachrichten mit tatsächlichen Methodennamen oder Beschreibungen
  4. Rücknachrichten zeigen - Besonders bei synchronen Aufrufen, wenn der Rückgabewert wichtig ist
  5. Fragmente sparsam einsetzen - Zu viele verschachtelte Fragmente verringern die Lesbarkeit
  6. Notizen hinzufügen - Verwenden Sie Notizelemente, um komplexe Logik zu erklären

Beispiel: Benutzeranmeldungsablauf

Ein typischer Anmeldungsablauf könnte beinhalten:

  1. Benutzer gibt Anmeldedaten ein
  2. Client sendet Anmeldeanfrage an Server
  3. Server validiert mit Datenbank
  4. Datenbank gibt Benutzerdatensatz zurück
  5. Server erstellt Sitzung
  6. Server gibt Erfolg/Fehler an Client zurück
  7. Client aktualisiert die Benutzeroberfläche

Dieser Ablauf demonstriert synchrone Aufrufe, Rücknachrichten und mögliche Alt-Fragmente für Erfolgs-/Fehlerpfade.