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.
Schlüsselkomponenten
| Komponente | Darstellung | Bedeutung |
|---|---|---|
| Akteur | Strichmännchen | Externe Entität (Person oder System). |
| Lebenslinie | Vertikale gestrichelte Linie | Repräsentiert die Existenz eines Objekts über die Zeit. |
| Aktivierung | Schmaler vertikaler Balken | Zeigt an, dass ein Objekt gerade eine Operation ausführt. |
| Synchrone Nachricht | Durchgezogener Pfeil, volle Spitze | Sender wartet auf Antwort des Empfängers. |
| Asynchrone Nachricht | Durchgezogener Pfeil, offene Spitze | Sender setzt Arbeit fort, ohne auf Antwort zu warten. |
| Antwortnachricht | Gestrichelter Pfeil, offene Spitze | Gibt das Ergebnis einer synchronen Nachricht zurück. |
Beispiel: Benutzeranmeldung
Ein einfacher Ablauf für das Anmelden eines Benutzers:
- Ein Benutzer (Akteur) interagiert mit einer Benutzeroberfläche (
ui:UI). - Die Benutzeroberfläche sendet eine synchrone Nachricht
login(benutzername, passwort)an den Authentifizierungsdienst (auth:AuthService). - Der Authentifizierungsdienst prüft die Anmeldedaten und sendet eine synchrone Nachricht
verifyCredentials(benutzername, passwort)an die Benutzerdatenbank (db:UserDB). - Die Benutzerdatenbank antwortet mit dem Ergebnis der Überprüfung (z.B.
true/false) an den Authentifizierungsdienst. - Der Authentifizierungsdienst sendet eine Antwortnachricht (
success/failure) an die Benutzeroberfläche. - 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:
- Der
Kundewählt einen Film aus und klickt auf "Ticket buchen" in derui:WebInterface. - Die
ui:WebInterfacesendet eine Nachricht an dasbookingSystem:BookingSystem, um die Buchung zu initiieren (z.B.initiateBooking(filmId, sitzplatz)). - Das
bookingSystem:BookingSystemprüft die Verfügbarkeit des Sitzplatzes und sendet ggf. eine Bestätigungsnachricht an dieui:WebInterfacezurück. - Die
ui:WebInterfacefordert denKundenauf, die Zahlung zu tätigen. - Nach Bestätigung durch den
Kundensendet dieui:WebInterfaceeine Nachricht an daspaymentGateway:PaymentGateway, um die Zahlung abzuwickeln (z.B.processPayment(betrag)). - Das
paymentGateway:PaymentGatewayverarbeitet die Zahlung und sendet eine Erfolgs- oder Fehlermeldung zurück an dasbookingSystem:BookingSystem. - Das
bookingSystem:BookingSystemerstellt basierend auf dem Zahlungsergebnis die Buchung und sendet die Ticketinformationen an dieui:WebInterface. - Die
ui:WebInterfacezeigt demKundendie Buchungsbestätigung und die Ticketdetails an.
- Der
Hinweise zur Lösung:
- Beginne mit dem Akteur
Kundeund der ersten Interaktion mitui: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