Verwendung
Fachliche Spezifikation
- Spezifikation der Zustände und Zustandsübergänge vno Geschäftsobjekten
- Spezifikation der Auslöser von Zustandsübergängen, z.B. Aktionen die auf Objekte angewendet werden können
technischer Entwurf
- Spezifikation des Verhaltens von Objekten, interne Zustände und Übergänge
- Spezifikation des Zugriffsprotokolls zur Nutzung von Objekten
- Reihenfolge der Operationen
- Protokollzustandsautomaten
beantwortet zentrale Frage
- Welche Zustände kann ein Objekt, eine Schnittstelle, ein Use-Case etc. bei welchen Ereignissen annehmen?
Nutzen des Diagramms / Stärken
- präzise Abbildung eines Zustandsmodells mit Zuständen
- Ereignissen
- Nebenläufigkeit
- Bedingungen
- Ein und Austrittsaktionen
- Schachtelung möglich
- präzise Abbildung eines Zustandsmodells mit Zuständen
Zustandsdiagramme
- Das System befindet sich zu jedem Zeitpunkt in genau einem Zustand
- Eine Transition ist der Übergang von einem Ausgangs- zu einem Folgezustand
- Der Übergang (Transition) von einem Zustand in den nächsten erfolgt ohne zeitlich Verzögerung
- Es können parallele Abläufe modelliert werden
Anwendung
- Beschreibung des Verhaltens von Use-Cases
- formale Modellierung von Use-Cases
- eindeutig und bietet weniger Interpretationsspielraum
- es können Testfälle abgeleitet werden
- formale Modellierung von Use-Cases
- Beschreibung des Verhaltens von Klassen
- Attribut einer Klasse wird im Allgemeinen ein Datentyp zugeordnet
- Wenn Datentyp eine endliche Menge von Werten besitzt
- ergeben sich verschiedene Zustände der Klasse aus möglichen Kombinationen der Zustandsvariablen
Elemente
Notationselemente
- Zustand wird durch Rechteck mit abgerundeten Ecken dargestellt
- Bezeichnung des Zustands steht über der horizontalen Linie
- Aktivitäten mit Auslösern definiert
- entry: Eintrittsaktivität
- exit: Austrittsaktivität
- do: Andauernde Aktivität
- benötigen Startzustand und Endzustand
- nur ein Startzustand je Diagramm!
- Zustandsautomaten sind in Rahmen mit Angabe des Namens untergebracht
- smd = state machine Diagramm, auch sm
- Trigger sind Auslöser für Transitionen
- Guard ist Bedingungen die wahr sein muss damit Transition ausgelöst wird
- Aktivität ist die Aktion die bei Durchlauf der Transition ausgelöst wird
Pseudozustände zeigen komplexe Beziehungen zwischen Zuständen einfacher
System kann nicht im Pseudozustand bleiben, kein Zeitverbraucht
Entscheidung ermöglicht Auswahl der Transition von aktuellem Ergebnis abhängig zu machen
- Kreuzung ermöglicht Zustände hintereinander zu schalten
- Entscheidung steht vor Beginn der Transition fest
- Gabelung teilt eingehende Transitionen auf parallele Ziele auf
- Guards und Trigger an ausgehenden Verbindungen nicht erlaubt
- Vereinigung führ aufgeteilte Transitionen zusammen
- Guards und Trigger an eingehenden Verbindungen nicht erlaubt
Zustand
- Definition
- Grundlage: Zustand eines Objekts als Menge von Attributen und Assoziationen
- Zustände im Zustandsdiagramm: Explizite Definition von Zuständen für gleiche Situation mit speziellen Bedingungen
- Voraussetzung: Objekt zeit in definierten Zustand gleiches Verhalten auf Eintritt von Ereignissen hin
- Transitionen definieren Übergänge zwischen Zuständen
- Spezielle Zustände
- Anfangszustand: kennzeichnet Start, einen pro Diagramm ohne Spezifikationen
- Endzustand: kennzeichnet finalen Zustand im Zustandsdiagramm, keiner, einer oder mehrere pro Diagramm
Zustandsarten in der fachlichen Spezifikation
- Warten auf Ausführung einer Tätigkeit
- Definition: Zeitraum, in dem auf Beginn einer Tätigkeit durch Akteur gewartet wird
- Ziel: Auslöser für Akteur, tätig zu werden
- Beispiel
- ME eingegangen: Mitarbeiter soll dieses in Bestand einarbeiten
- Ausführung einer Tätigkeit
- Definition: Zeitraum, in dem ein Akteur eine zusammenhängende Tätigkeit ausführt
- Ziel: Ausschließen paralleler Ausführung - Akteur, der Zustand betritt, führt längere Tätigkeit aus; kein anderer
- Einschränkung: nicht notwendig, wenn nur ein Akteur für Tätigkeit infrage kommt - dann genügen Zustände von Typ 1
Transition
- Übergänge zwischen zwei Zuständen
- optionale Spezifikation
- Trigger: Angabe eines Ereignisses, das Transition aktiviert
- Guard: Angabe einer Bedingung die für Aktivierung erfüllt sein muss
- Effect: Angabe einer Aktion die bei Aktivierung ausgeführt wird
- Beispiel:
- Trigger: Status ändern
- Guard: Ausleihwunsch liegt vor
Ereignis
Definition: Auslöser eines Zustandsübergangs
Anwendung: Aktion eines Akteurs mit Bezug auf Objekt
Beispiel
- Bearbeiter zuweisen, Antwort senden, Rückfrage stellen, Rückfrage beantworten
Ereignistypen
- SignalEvent: Empfangen eine Signals durch ein Objekt, asynchrone Nachricht
- CallEvent: Aufruf einer Operation auf ein Objekt
- TimeEvent: Eintritt eines Zeitpunkts nach absoluter oder relativer Spezifikation
- ChangeEvent: Änderung von Attributwerten des Objekts, das spezifizierte Bedingungen wahr sind
Entscheidung
- Verwendung: Alternative Zustandsübergänge je nach Ergebnis eines Triggers
- Vorgehen
- Entscheidung
- Angabe des Triggers für Transition zwischen Ausganszustand und Entscheidung
- Angabe von Guards für Transitionen zwischen Entscheidungen und Zielzuständen
Abbildung von Zuständen im Klassenmodell
Zusammengesetze Zustände
- Definition
- Unterzustände
- eingehende und ausgehende Transitionen können aus zusammengesetzten Zuständen bestehen
- bei eingehender Transition muss zusammengesetzter Zustand den Anfangszustand definieren
- Verwendung
- Zusammenfassung ähnlicher Zustände
- häufig solcher mit gleich ausgehenden Transitionen