UML Zustandsdiagramm: Unterschied zwischen den Versionen

Aus FI-Wiki
Die Seite wurde neu angelegt: „== UML Zustandsdiagramm == Ein '''Zustandsdiagramm''' (State Machine Diagram) zeigt, in welchen **Zuständen** sich ein Objekt befinden kann und **wie es von einem Zustand in einen anderen wechselt**. Es beschreibt das Verhalten eines einzelnen Objekts abhängig von Ereignissen. Zustandsdiagramme gehören zu den **Verhaltensdiagrammen** der UML. === Wofür nutzt man Zustandsdiagramme? === * Darstellung des Lebenszyklus eines Objekts * Beschreibung…“
 
Keine Bearbeitungszusammenfassung
 
(16 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== UML Zustandsdiagramm ==
Ein '''Zustandsdiagramm''' (State Machine Diagram) zeigt, in welchen '''Zuständen''' sich ein Objekt befinden kann und '''wie es von einem Zustand in einen anderen wechselt'''.   
 
Ein '''Zustandsdiagramm''' (State Machine Diagram) zeigt, in welchen **Zuständen** sich ein Objekt befinden kann und **wie es von einem Zustand in einen anderen wechselt**.   
Es beschreibt das Verhalten eines einzelnen Objekts abhängig von Ereignissen.
Es beschreibt das Verhalten eines einzelnen Objekts abhängig von Ereignissen.


Zustandsdiagramme gehören zu den **Verhaltensdiagrammen** der UML.
Zustandsdiagramme gehören zu den '''[[UML#Verhaltensdiagramme|Verhaltensdiagrammen]]''' der [[UML]].


=== Wofür nutzt man Zustandsdiagramme? ===
== Wofür nutzt man Zustandsdiagramme? ==
* Darstellung des Lebenszyklus eines Objekts   
* Darstellung des Lebenszyklus eines Objekts   
* Beschreibung von Abläufen, die stark von Bedingungen abhängen   
* Beschreibung von Abläufen, die stark von Bedingungen abhängen   
Zeile 12: Zeile 10:
* Verdeutlichung, wie Ereignisse den Zustand eines Objekts verändern   
* Verdeutlichung, wie Ereignisse den Zustand eines Objekts verändern   


=== Bestandteile ===
== Bestandteile ==


==== Zustand (State) ====
=== Zustand (State) ===
* dargestellt als abgerundetes Rechteck   
* dargestellt als abgerundetes Rechteck   
* beschreibt einen stabilen Zustand eines Objekts   
* beschreibt einen stabilen Zustand eines Objekts   
Beispiele: „Eingeloggt“, „Wartend“, „Bezahlvorgang aktiv“
Beispiele: „Eingeloggt“, „Wartend“, „Bezahlt“
 
[[Datei:Zd zustand.png|rahmenlos|links|upright=2|alternativtext=Zd zustand|Zd zustand]]
==== Startzustand ====
<br clear="all" />
=== Startzustand ===
* ausgefüllter schwarzer Kreis   
* ausgefüllter schwarzer Kreis   
* zeigt den ersten Zustand im Ablauf
* zeigt den ersten Zustand im Ablauf
[[Datei:Ad startknoten.png|rahmenlos|links|upright=2|alternativtext=Ad Startknoten|Ad Startknoten]]
<br clear="all" />


==== Endzustand ====
=== Endzustand ===
* Kreis mit Punkt darin   
* Kreis mit Punkt darin   
* markiert das Ende des Zustandsmodells
* markiert das Ende des Zustandsmodells
[[Datei:Ad ende.png|rahmenlos|links|upright=2|alternativtext=Ad Startknoten|Ad Startknoten]]
<br clear="all" />
=== Übergang (Transition) ===
* wird durch einen '''Pfeil zwischen zwei Zuständen''' dargestellt 
* beschreibt, unter welchen Bedingungen ein Objekt von einem Zustand in einen anderen wechselt
'''Beispiel:''' 
Durch vollständiges Bezahlen wechselt die Bestellung in den Zustand '''Bezahlt'''.
[[Datei:Zd transition.png|rahmenlos|links|upright=2|alternativtext=Zustandsdiagramm Übergang|Zustandsdiagramm Übergang]]
<br clear="all" />


==== Übergang (Transition) ====
{| class="wikitable" style="width:100%;"
* Pfeil zwischen zwei Zuständen 
! UML-Teil !! Heißt im Bestellungsbeispiel !! Kurze Erklärung
* wird durch ein Ereignis ausgelöst 
|-
Beispiel: Klick auf „Login“ → Wechsel zu „Eingeloggt“
| '''operation''' (Trigger) || <code>zahlungEingegangen</code> || Ereignis, das den Zustandswechsel auslöst
|-
| '''[bedingung]''' (Guard) || <code>[vollstaendigBezahlt]</code> || Voraussetzung, die erfüllt sein muss, damit der Übergang erfolgt
|-
| '''/verhalten''' (Aktion) || <code>/zahlungBuchen()</code> || Aktion, die während des Zustandswechsels ausgeführt wird
|}


==== Ereignis (Event) ====
=== Ereignis (Event) ===
* Aktion, Benutzerinteraktion oder interne Systemreaktion   
* Aktion, Benutzerinteraktion oder interne Systemreaktion   
* löst einen Zustandswechsel aus
* löst einen Zustandswechsel aus


=== Beispiel ===
== Beispiel ZD einer Bestellung ==
Bild folgt
[[Datei:Zd bestellung.png|rahmenlos|links|upright=3|alternativtext=Zd bestellung|Zd bestellung]]
<br clear="all" />
 
=== Beschreibung des Zustandsdiagramms ===
 
Das Zustandsdiagramm zeigt den '''Lebenszyklus einer Bestellung''' von der Erstellung bis zum Abschluss.
 
Der Ablauf beginnt mit dem '''Startknoten''', von dem aus die Bestellung in den Zustand '''Neu''' übergeht.
 
==== Zustand „Neu“ ====
Im Zustand '''Neu''' wurde die Bestellung angelegt, jedoch noch nicht bezahlt. 
Geht eine Zahlung ein und ist die Bestellung vollständig bezahlt, wechselt der Zustand durch den Übergang
 
<code>zahlungEingegangen [vollstaendigBezahlt] / zahlungBuchen()</code>
 
in den Zustand '''Bezahlt'''. 
Dabei wird die Zahlung verbucht.
 
==== Zustand „Bezahlt“ ====
Im Zustand '''Bezahlt''' wurde der vollständige Rechnungsbetrag beglichen. 
Durch das Ereignis '''wareVersenden''' wechselt die Bestellung in den Zustand '''Versendet'''.
 
==== Zustand „Versendet“ ====
Im Zustand '''Versendet''' wurde die Ware an den Kunden verschickt. 
Nach Abschluss der Lieferung erfolgt der Übergang
 
<code>lieferungAbgeschlossen / bestellungArchivieren()</code>
 
in den Zustand '''Abgeschlossen'''. 
Dabei wird die Bestellung archiviert.


==== Zustand „Abgeschlossen“ ====
Der Zustand '''Abgeschlossen''' kennzeichnet eine vollständig abgewickelte Bestellung. 
Nach diesem Zustand endet der Lebenszyklus der Bestellung mit dem '''Endknoten'''.


=== Vorteile ===
== Vorteile ==
* übersichtliche Darstellung komplexer Abläufe   
* übersichtliche Darstellung komplexer Abläufe   
* ideal für objektorientierte Modellierung   
* ideal für objektorientierte Modellierung   
Zeile 46: Zeile 96:
* sehr gut geeignet für Verhaltensanalyse und UI-Logik
* sehr gut geeignet für Verhaltensanalyse und UI-Logik


=== Kurzmerksatz ===
== Kurzmerksatz ==
'''Ein Zustandsdiagramm zeigt, wie ein Objekt durch Ereignisse von einem Zustand in den nächsten wechselt.'''
'''Ein Zustandsdiagramm zeigt, wie ein Objekt durch Ereignisse von einem Zustand in den nächsten wechselt.'''

Aktuelle Version vom 27. Januar 2026, 13:10 Uhr

Ein Zustandsdiagramm (State Machine Diagram) zeigt, in welchen Zuständen sich ein Objekt befinden kann und wie es von einem Zustand in einen anderen wechselt. Es beschreibt das Verhalten eines einzelnen Objekts abhängig von Ereignissen.

Zustandsdiagramme gehören zu den Verhaltensdiagrammen der UML.

Wofür nutzt man Zustandsdiagramme?

  • Darstellung des Lebenszyklus eines Objekts
  • Beschreibung von Abläufen, die stark von Bedingungen abhängen
  • Modellierung dynamischer Systeme (z. B. Automaten, UI-Zustände, Workflow-Schritte)
  • Verdeutlichung, wie Ereignisse den Zustand eines Objekts verändern

Bestandteile

Zustand (State)

  • dargestellt als abgerundetes Rechteck
  • beschreibt einen stabilen Zustand eines Objekts

Beispiele: „Eingeloggt“, „Wartend“, „Bezahlt“

Zd zustand
Zd zustand


Startzustand

  • ausgefüllter schwarzer Kreis
  • zeigt den ersten Zustand im Ablauf
Ad Startknoten
Ad Startknoten


Endzustand

  • Kreis mit Punkt darin
  • markiert das Ende des Zustandsmodells
Ad Startknoten
Ad Startknoten


Übergang (Transition)

  • wird durch einen Pfeil zwischen zwei Zuständen dargestellt
  • beschreibt, unter welchen Bedingungen ein Objekt von einem Zustand in einen anderen wechselt

Beispiel: Durch vollständiges Bezahlen wechselt die Bestellung in den Zustand Bezahlt.

Zustandsdiagramm Übergang
Zustandsdiagramm Übergang


UML-Teil Heißt im Bestellungsbeispiel Kurze Erklärung
operation (Trigger) zahlungEingegangen Ereignis, das den Zustandswechsel auslöst
[bedingung] (Guard) [vollstaendigBezahlt] Voraussetzung, die erfüllt sein muss, damit der Übergang erfolgt
/verhalten (Aktion) /zahlungBuchen() Aktion, die während des Zustandswechsels ausgeführt wird

Ereignis (Event)

  • Aktion, Benutzerinteraktion oder interne Systemreaktion
  • löst einen Zustandswechsel aus

Beispiel ZD einer Bestellung

Zd bestellung
Zd bestellung


Beschreibung des Zustandsdiagramms

Das Zustandsdiagramm zeigt den Lebenszyklus einer Bestellung von der Erstellung bis zum Abschluss.

Der Ablauf beginnt mit dem Startknoten, von dem aus die Bestellung in den Zustand Neu übergeht.

Zustand „Neu“

Im Zustand Neu wurde die Bestellung angelegt, jedoch noch nicht bezahlt. Geht eine Zahlung ein und ist die Bestellung vollständig bezahlt, wechselt der Zustand durch den Übergang

zahlungEingegangen [vollstaendigBezahlt] / zahlungBuchen()

in den Zustand Bezahlt. Dabei wird die Zahlung verbucht.

Zustand „Bezahlt“

Im Zustand Bezahlt wurde der vollständige Rechnungsbetrag beglichen. Durch das Ereignis wareVersenden wechselt die Bestellung in den Zustand Versendet.

Zustand „Versendet“

Im Zustand Versendet wurde die Ware an den Kunden verschickt. Nach Abschluss der Lieferung erfolgt der Übergang

lieferungAbgeschlossen / bestellungArchivieren()

in den Zustand Abgeschlossen. Dabei wird die Bestellung archiviert.

Zustand „Abgeschlossen“

Der Zustand Abgeschlossen kennzeichnet eine vollständig abgewickelte Bestellung. Nach diesem Zustand endet der Lebenszyklus der Bestellung mit dem Endknoten.

Vorteile

  • übersichtliche Darstellung komplexer Abläufe
  • ideal für objektorientierte Modellierung
  • zeigt klar, wann welcher Zustand gültig ist
  • sehr gut geeignet für Verhaltensanalyse und UI-Logik

Kurzmerksatz

Ein Zustandsdiagramm zeigt, wie ein Objekt durch Ereignisse von einem Zustand in den nächsten wechselt.