Sequenzdiagramme (UML)

Was du heute lernst:

  • Den Zweck von Sequenzdiagrammen zur Darstellung zeitlicher Abläufe verstehen.
  • Die wichtigsten Notationselemente (Lebenslinien, Aktivierungsbalken, Nachrichtentypen) korrekt interpretieren und anwenden.
  • Interaktionsflüsse zwischen Akteuren und Systemkomponenten logisch modellieren.

Einleitung: Wer spricht wann mit wem?

Sequenzdiagramme sind das Tool der Wahl, um die dynamische Interaktion zwischen Objekten und Systemkomponenten zu visualisieren. Sie zeigen, welche Nachrichten in welcher Reihenfolge zwischen den Beteiligten ausgetauscht werden. Wie bei einem Filmprotokoll, das jede Szene und jeden Dialog festhält, helfen Sequenzdiagramme uns, den genauen Ablauf von Operationen zu verstehen.

Merksatz: Ein Sequenzdiagramm ist ein UML-Verhaltensdiagramm, das den Austausch von Nachrichten zwischen Objekten in einer zeitlichen Abfolge darstellt.

Schlüsselkomponenten

Komponente Darstellung Bedeutung
AkteurStrichmännchenExterne Entität (Person oder System).
LebenslinieVertikale gestrichelte LinieRepräsentiert die Existenz eines Objekts über die Zeit.
AktivierungSchmaler vertikaler BalkenZeigt an, dass ein Objekt gerade eine Operation ausführt.
Synchrone NachrichtDurchgezogener Pfeil, volle SpitzeSender wartet auf Antwort des Empfängers.
Asynchrone NachrichtDurchgezogener Pfeil, offene SpitzeSender setzt Arbeit fort, ohne auf Antwort zu warten.
AntwortnachrichtGestrichelter Pfeil, offene SpitzeGibt das Ergebnis einer synchronen Nachricht zurück.

Beispiel: Benutzeranmeldung

Ein einfacher Ablauf für das Anmelden eines Benutzers:

  1. Ein Benutzer (Akteur) interagiert mit einer Benutzeroberfläche (ui:UI).
  2. Die Benutzeroberfläche sendet eine synchrone Nachricht login(benutzername, passwort) an den Authentifizierungsdienst (auth:AuthService).
  3. Der Authentifizierungsdienst prüft die Anmeldedaten und sendet eine synchrone Nachricht verifyCredentials(benutzername, passwort) an die Benutzerdatenbank (db:UserDB).
  4. Die Benutzerdatenbank antwortet mit dem Ergebnis der Überprüfung (z.B. true/false) an den Authentifizierungsdienst.
  5. Der Authentifizierungsdienst sendet eine Antwortnachricht (success/failure) an die Benutzeroberfläche.
  6. Die Benutzeroberfläche leitet den Benutzer entsprechend weiter oder zeigt eine Fehlermeldung an.

Übungsaufgabe: Kinoticket buchen

Aufgabenstellung:
Erstelle ein Sequenzdiagramm, das den Prozess der Buchung eines Kinotickets auf einer fiktiven Online-Plattform darstellt. Berücksichtige dabei die folgenden Elemente und deren Interaktionen:

  • Akteur: Kunde
  • Objekte: ui:WebInterface, bookingSystem:BookingSystem, paymentGateway:PaymentGateway
  • Ablauf:
    1. Der Kunde wählt einen Film aus und klickt auf "Ticket buchen" in der ui:WebInterface.
    2. Die ui:WebInterface sendet eine Nachricht an das bookingSystem:BookingSystem, um die Buchung zu initiieren (z.B. initiateBooking(filmId, sitzplatz)).
    3. Das bookingSystem:BookingSystem prüft die Verfügbarkeit des Sitzplatzes und sendet ggf. eine Bestätigungsnachricht an die ui:WebInterface zurück.
    4. Die ui:WebInterface fordert den Kunden auf, die Zahlung zu tätigen.
    5. Nach Bestätigung durch den Kunden sendet die ui:WebInterface eine Nachricht an das paymentGateway:PaymentGateway, um die Zahlung abzuwickeln (z.B. processPayment(betrag)).
    6. Das paymentGateway:PaymentGateway verarbeitet die Zahlung und sendet eine Erfolgs- oder Fehlermeldung zurück an das bookingSystem:BookingSystem.
    7. Das bookingSystem:BookingSystem erstellt basierend auf dem Zahlungsergebnis die Buchung und sendet die Ticketinformationen an die ui:WebInterface.
    8. Die ui:WebInterface zeigt dem Kunden die Buchungsbestätigung und die Ticketdetails an.
Nutze synchrone und asynchrone Nachrichten sowie Antwortnachrichten, wo es angemessen ist. Stelle sicher, dass die zeitliche Reihenfolge der Nachrichten korrekt dargestellt wird.

Hinweise zur Lösung:

  • Beginne mit dem Akteur Kunde und der ersten Interaktion mit ui:WebInterface.
  • Die Nachrichten zwischen den Objekten sollten logisch aufeinander aufbauen.
  • Überlege, welche Nachrichten synchron (eine Antwort wird erwartet) und welche asynchron (keine sofortige Antwort nötig) sind.
  • Die Lebenslinien der Objekte sollten den gesamten Zeitraum abdecken, in dem sie aktiv an der Sequenz beteiligt sind.

Schwierigkeitsgrad: mittel

Erwartete Bearbeitungszeit: 30 Minuten


Nächster Schritt

Nachdem wir die wichtigsten Diagrammtypen kennengelernt haben, wenden wir unser Wissen in komplexen Praxisszenarien an.

Weiter zu: Komplexaufgaben →