UML Sequenzdiagramm: Unterschied zwischen den Versionen
Aus FI-Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (15 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 === | ||
| Zeile 41: | Zeile 40: | ||
* dargestellt als Pfeil, der zur eigenen Lebenslinie zurückführt | * dargestellt als Pfeil, der zur eigenen Lebenslinie zurückführt | ||
* erzeugt einen verschachtelten Aktivierungsbalken | * erzeugt einen verschachtelten Aktivierungsbalken | ||
[[Datei:Sd selfcall.png|rahmenlos|links|upright=2|alternativtext=Sd selfcall|Sd selfcall]] | [[Datei:Sd selfcall.png|rahmenlos|links|upright=2|alternativtext=Sd selfcall|Sd selfcall]] | ||
| Zeile 54: | Zeile 54: | ||
* jeder Bereich besitzt eine Bedingung | * jeder Bereich besitzt eine Bedingung | ||
* nur der Bereich mit erfüllter Bedingung wird ausgeführt | * 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) ==== | ==== opt (Optional) ==== | ||
| Zeile 59: | Zeile 63: | ||
* wird nur ausgeführt, wenn die Bedingung erfüllt ist | * wird nur ausgeführt, wenn die Bedingung erfüllt ist | ||
* entspricht einer einfachen if-Bedingung ohne else-Zweig | * 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 ==== | ==== loop ==== | ||
| Zeile 64: | Zeile 72: | ||
* wird ausgeführt, solange eine Bedingung erfüllt ist | * wird ausgeführt, solange eine Bedingung erfüllt ist | ||
* entspricht einer while- oder for-Schleife | * 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) ==== | ==== loop (5) ==== | ||
| Zeile 71: | Zeile 83: | ||
=== Zeitverlauf | [[Datei:Sd loop5 fragment.png|rahmenlos|links|upright=2|alternativtext=Sd loop5 fragment|Sd loop5 fragment]] | ||
* Zeit verläuft | <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.
