3.2 KiB
3.2 KiB
State Machine Diagrams
Introduction
- Beschreiben den Zustand von Objekten oder des Systems
Introduction Example
States
-
Diskretes, durchgehendes Segment von Zeit, während der das Verhalten des Objekts stabil ist
-
Kann eine passive Qualität haben
- Licht an / aus
-
Kann auch eine aktive Qualität haben / Was das Objekt tut
- Kaffeemaschine mahlt Kaffee
-
Objekt bleibt in dem Zustand bis es von einem Event stimuliert wird
-
States sind nicht:
- Objekte oder Komponenten des Systems
- Aktivitäten des Systems
Internal Activities of States
- 3 Aktivitäten die an einem definierten Moment ausgeführt werden
- entry behavior
- do-activity behavior
- kann unterbrochen werden
- exit behavior
- entry- und exit behavior können nicht unterbrochen werden
Activities Example
Internal Pseudostate
- nur einmalig
- Markieren den Start eines Maschinen-Diagramms
- Keine eingehenden Pfeile
- Ein ausgehender Pfeil zum ersten richtigen Zustand
- ohne Events
Final State
- können mehrere existieren
- Objekte können permanent in einem End-Status sein
State Transitions
External Transitions
- Repräsentiert eine Änderung des Zustands von einem Ursprungs-Zustand zu einem Ziel-Zustand
- Eine Transition braucht keine Zeit
- Das System ist immer in einem Zustand, nie in einer Transition
Syntax of Description: trigger[guard] / behavior
- Alles optional:
- Trigger (Event), dass eine Transition hervorruft
- Guard (Condition), welche die Ausführung der Transition aktiviert
- Sobald das Event stattfindet, muss der Guard erfüllt werden
- Falls dasselbe Event mehrere Transitions eines einzigen States hervorruft
- Die Guards müssen sich gegenseitig ausschließen
- Falls nicht: EIne Transition wird zufällig ausgesucht
- Behavior (Effects) wird während der Transition ausgeführt
Internal Transition
Types of Events
Call Events
- Operation calls inklusive der Parameter
- occupy(user, LectureHall)
Time Events
- Zeitbasierter Zustandsübergang (relativ / absolut)
- relative: after(5 sec)
- absolute: when(time == 16:00)
Change Events
- Permanente Überwachung, ob eine Bedingung wahr wird
- when (registration == numberOfSeats)
Any Receive Events
- Zur Spezifikation einen Typ eines else Übergangs
- Falls ein Event auftritt, welches keine Übergänge für den aktiven Zustand auslöst
- the object transitions to S4 without any event that is not e1 or e2
Completion Events
- Falls alle Verhaltensweisen eines States vollständig sind
- once A1 is completed completion event triggers transition to S2