UML Sequenzdiagramm: Unterschied zwischen den Versionen
Aus FI-Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (23 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Ein '''Sequenzdiagramm''' zeigt den zeitlichen Ablauf der Kommunikation zwischen Objekten oder Systemkomponenten. | Ein '''Sequenzdiagramm''' zeigt den zeitlichen Ablauf der Kommunikation zwischen Objekten oder Systemkomponenten. | ||
Es stellt dar, '''welche Nachrichten''' in '''welcher Reihenfolge''' zwischen den Beteiligten ausgetauscht werden. | Es stellt dar, '''welche Nachrichten''' in '''welcher Reihenfolge''' zwischen den Beteiligten ausgetauscht werden. Bei den Nachrichten handelt es sich meistens um '''Methodenaufrufe'''. | ||
Sequenzdiagramme gehören zu den '''Verhaltensdiagrammen''' der [[UML]]. | Sequenzdiagramme gehören zu den '''Verhaltensdiagrammen''' der [[UML]]. | ||
| Zeile 7: | Zeile 7: | ||
=== Lebenslinien (Lifelines) === | === Lebenslinien (Lifelines) === | ||
* | * stellen beteiligte Objekte, Akteure oder Systeme dar | ||
* vertikale gestrichelte Linie zeigt | * die vertikale gestrichelte Linie zeigt den zeitlichen Verlauf von oben nach unten | ||
[[Datei:Sd lebenslinie.png|rahmenlos|links|upright=2|alternativtext=Sd lebenslinie|Sd lebenslinie]] | [[Datei:Sd lebenslinie.png|rahmenlos|links|upright=2|alternativtext=Sd lebenslinie|Sd lebenslinie]] | ||
<br clear="all" /> | <br clear="all" /> | ||
=== Aktivierungsbalken === | === Aktivierungsbalken === | ||
* schmale Rechtecke auf der Lebenslinie | * schmale Rechtecke auf der Lebenslinie | ||
* zeigen aktive Ausführung einer Methode oder Aktion | * zeigen aktive Ausführung einer Methode oder Aktion | ||
[[Datei:Sd aktivitaetsbalken.png|rahmenlos|links|upright=2|alternativtext=Sd aktivitaetsbalken|Sd aktivitaetsbalken]] | |||
<br clear="all" /> | |||
=== Nachrichten (Messages) === | === Nachrichten (Messages) === | ||
* horizontale Pfeile zwischen Lebenslinien | * horizontale Pfeile zwischen Lebenslinien | ||
* zeigen Methodenaufrufe oder Rückgaben | * zeigen Methodenaufrufe oder Rückgaben | ||
[[Datei:Sd sync nachricht.png|rahmenlos|links|upright=2|alternativtext=Sd sync nachricht|Sd sync nachricht]] | |||
<br clear="all" /> | |||
Arten von Nachrichten: | Arten von Nachrichten: | ||
| Zeile 27: | Zeile 35: | ||
* '''Rückgabemessage''' → gestrichelte Linie zurück | * '''Rückgabemessage''' → gestrichelte Linie zurück | ||
=== Zeitverlauf | === Selbstaufruf (Self Call) === | ||
* Zeit verläuft | * Eine Nachricht, die ein Objekt an sich selbst sendet | ||
* wird verwendet, wenn eine Methode innerhalb desselben Objekts eine weitere Methode aufruft | |||
* dargestellt als Pfeil, der zur eigenen Lebenslinie zurückführt | |||
* erzeugt einen verschachtelten Aktivierungsbalken | |||
[[Datei:Sd selfcall.png|rahmenlos|links|upright=2|alternativtext=Sd selfcall|Sd selfcall]] | |||
<br clear="all" /> | |||
=== Kombinierte Fragmente === | |||
* strukturieren den Ablauf im Sequenzdiagramm | |||
* werden als Rahmen mit einer Bedingung oder Steueranweisung dargestellt | |||
==== alt (Alternative) ==== | |||
* stellt eine Verzweigung dar (if / else) | |||
* enthält mindestens zwei Bereiche | |||
* jeder Bereich besitzt eine Bedingung | |||
* nur der Bereich mit erfüllter Bedingung wird ausgeführt | |||
[[Datei:Sd alt fragment.png|rahmenlos|links|upright=2|alternativtext=Sd alt fragment|Sd alt fragment]] | |||
<br clear="all" /> | |||
==== opt (Optional) ==== | |||
* stellt einen optionalen Ablauf dar | |||
* wird nur ausgeführt, wenn die Bedingung erfüllt ist | |||
* entspricht einer einfachen if-Bedingung ohne else-Zweig | |||
[[Datei:Sd opt fragment.png|rahmenlos|links|upright=2|alternativtext=Sd opt fragment|Sd opt fragment]] | |||
<br clear="all" /> | |||
==== loop ==== | |||
* stellt eine Wiederholung dar | |||
* wird ausgeführt, solange eine Bedingung erfüllt ist | |||
* entspricht einer while- oder for-Schleife | |||
[[Datei:Sd loop fragment.png|rahmenlos|links|upright=2|alternativtext=Sd loop fragment|Sd loop fragment]] | |||
<br clear="all" /> | |||
==== loop (5) ==== | |||
* spezielle Form der Wiederholung | |||
* wird eine feste Anzahl von Malen ausgeführt | |||
* Beispiel: loop (5) bedeutet, dass die enthaltenen Nachrichten fünf wiederholt werden | |||
[[Datei:Sd loop5 fragment.png|rahmenlos|links|upright=2|alternativtext=Sd loop5 fragment|Sd loop5 fragment]] | |||
<br clear="all" /> | |||
== Zeitverlauf == | |||
* Zeit verläuft '''von oben nach unten''' | |||
* alle Ereignisse werden chronologisch dargestellt | * alle Ereignisse werden chronologisch dargestellt | ||
== Einfaches Beispiel == | == Einfaches Beispiel == | ||
* Ein Kunde gibt eine Bestellung auf. | |||
* Das System prüft zunächst intern die Eingaben. | |||
* Anschließend fragt das System die Verfügbarkeit in der Datenbank ab. | |||
* Falls der Artikel verfügbar ist, wird eine Bestellung erzeugt. | |||
* Falls nicht, wird eine Fehlermeldung angezeigt. | |||
[[Datei:Sd beispiel Bestellung.png|rahmenlos|links|upright=3|alternativtext=Sd beispiel Bestellung|Sd beispiel Bestellung]] | |||
<br clear="all" /> | |||
== Wofür verwendet man Sequenzdiagramme? == | == Wofür verwendet man Sequenzdiagramme? == | ||
Aktuelle Version vom 15. Februar 2026, 12:07 Uhr
Ein Sequenzdiagramm zeigt den zeitlichen Ablauf der Kommunikation zwischen Objekten oder Systemkomponenten. Es stellt dar, welche Nachrichten in welcher Reihenfolge zwischen den Beteiligten ausgetauscht werden. Bei den Nachrichten handelt es sich meistens um Methodenaufrufe.
Sequenzdiagramme gehören zu den Verhaltensdiagrammen der UML.
Bestandteile
Lebenslinien (Lifelines)
- stellen beteiligte Objekte, Akteure oder Systeme dar
- die vertikale gestrichelte Linie zeigt den zeitlichen Verlauf von oben nach unten

Aktivierungsbalken
- schmale Rechtecke auf der Lebenslinie
- zeigen aktive Ausführung einer Methode oder Aktion

Nachrichten (Messages)
- horizontale Pfeile zwischen Lebenslinien
- zeigen Methodenaufrufe oder Rückgaben

Arten von Nachrichten:
- synchron → Empfänger muss antworten
- asynchron → Empfänger verarbeitet unabhängig
- Rückgabemessage → gestrichelte Linie zurück
Selbstaufruf (Self Call)
- Eine Nachricht, die ein Objekt an sich selbst sendet
- wird verwendet, wenn eine Methode innerhalb desselben Objekts eine weitere Methode aufruft
- dargestellt als Pfeil, der zur eigenen Lebenslinie zurückführt
- erzeugt einen verschachtelten Aktivierungsbalken

Kombinierte Fragmente
- strukturieren den Ablauf im Sequenzdiagramm
- werden als Rahmen mit einer Bedingung oder Steueranweisung dargestellt
alt (Alternative)
- stellt eine Verzweigung dar (if / else)
- enthält mindestens zwei Bereiche
- jeder Bereich besitzt eine Bedingung
- nur der Bereich mit erfüllter Bedingung wird ausgeführt

opt (Optional)
- stellt einen optionalen Ablauf dar
- wird nur ausgeführt, wenn die Bedingung erfüllt ist
- entspricht einer einfachen if-Bedingung ohne else-Zweig

loop
- stellt eine Wiederholung dar
- wird ausgeführt, solange eine Bedingung erfüllt ist
- entspricht einer while- oder for-Schleife

loop (5)
- spezielle Form der Wiederholung
- wird eine feste Anzahl von Malen ausgeführt
- Beispiel: loop (5) bedeutet, dass die enthaltenen Nachrichten fünf wiederholt werden

Zeitverlauf
- Zeit verläuft von oben nach unten
- alle Ereignisse werden chronologisch dargestellt
Einfaches Beispiel
- Ein Kunde gibt eine Bestellung auf.
- Das System prüft zunächst intern die Eingaben.
- Anschließend fragt das System die Verfügbarkeit in der Datenbank ab.
- Falls der Artikel verfügbar ist, wird eine Bestellung erzeugt.
- Falls nicht, wird eine Fehlermeldung angezeigt.

Wofür verwendet man Sequenzdiagramme?
- Darstellung von Abläufen in Use Cases
- Analyse komplexer Interaktionen zwischen Objekten
- Dokumentation der Reihenfolge von Nachrichten
- Planung von Systemlogik und Schnittstellen
- Kommunikation zwischen Entwicklern und Architekten
Vorteile
- sehr klarer zeitlicher Ablauf
- gute Darstellung von Verantwortlichkeiten
- geeignet für API-, Service- und Objektinteraktionen
- hilft beim Debuggen und Testen
Kurzmerksatz
Ein Sequenzdiagramm zeigt, welche Objekte in welcher Reihenfolge miteinander kommunizieren.
