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:

  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ückgabeGestrichelte Linie, offener PfeilAntwort auf einen synchronen Aufruf
ErstellenGestrichelte Linie, offener Pfeil zur BoxErstellt einen neuen Teilnehmer
ZerstörenLinie endend mit XBeendet einen Teilnehmer
SelbstaufrufPfeil, der zur gleichen Lebenslinie zurückführtEin 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 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 Aktivierung aus dem Menü UML der Werkzeugleiste
  2. Ziehen Sie entlang der Lebenslinie eines Teilnehmers über die Zeitspanne, in der er aktiv ist
  3. 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

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
NegativnegUngültige Interaktion
ZusicherungassertErforderliche Interaktion
IgnorierenignoreNachrichten, die ignoriert werden dürfen
BerücksichtigenconsiderNachrichten, die berücksichtigt werden müssen
ReferenzrefVerweis auf eine andere Interaktion

Fragmente erstellen

  1. Wählen Sie Fragment aus dem Menü UML der Werkzeugleiste
  2. Ziehen Sie ein Rechteck über die Teilnehmer und Nachrichten, die Sie gruppieren möchten
  3. Wählen Sie das Fragment aus und legen Sie seinen Fragmenttyp im Abschnitt UML des Inspektors fest
  4. 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

  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.