Hoch📊 58% Prüfungs-Häufigkeit🎯 ~64 Punkte kumuliert
Sequenzdiagramm
Zeitlicher Nachrichtenaustausch zwischen Objekten.
Warum Priorität „Hoch"? Häufig Teil der Prüfung (60–79%) oder bringt viele Punkte.
Lernziele
- Sequenzdiagramme lesen und aus Anwendungsfällen ableiten
- Synchrone und asynchrone Nachrichten unterscheiden
- Aktivierungsbalken, Lifelines und Rückgabepfeile korrekt einzeichnen
1. Bausteine
- Lifeline (Lebenslinie): Kopf mit Objektname, gestrichelte senkrechte Linie.
- Aktivierungsbalken: schmales Rechteck auf der Lifeline – Objekt ist aktiv.
- Nachricht (synchron): durchgezogener Pfeil mit gefüllter Spitze.
- Antwort: gestrichelter Pfeil mit offener Spitze.
- Nachricht (asynchron): durchgezogener Pfeil mit offener Spitze (kein Warten).
- Selbstaufruf: Pfeil, der auf dieselbe Lifeline zurückgeht.
2. Struktur-Fragmente
alt– Alternative (if/else)opt– optionaler Block (if ohne else)loop– Wiederholungpar– parallele Abläufe
3. Beispiel – Login
User → LoginController : login(u, p)
LoginController → UserRepo : findByName(u)
LoginController ← UserRepo : User
LoginController → User : checkPassword(p)
LoginController ← User : boolean
alt [passwort ok]
LoginController → SessionService : create(user)
LoginController ← SessionService : token
User ← LoginController : {token}
else [nicht ok]
User ← LoginController : 401 Unauthorized
end4. Tipps fürs Zeichnen
- Zuerst die beteiligten Objekte horizontal anordnen.
- Pfeile immer vom Absender zum Empfänger.
- Zeit läuft von oben nach unten.
- Aktivierungsbalken nur so lang, wie das Objekt wirklich arbeitet.
Übungen
Eine AntwortWas kennzeichnet eine asynchrone Nachricht?
Eine AntwortWelches Struktur-Fragment modelliert eine if/else-Entscheidung?