update
This commit is contained in:
99
Writerside/topics/02/OOAD/UMLStateDiagramme.md
Normal file
99
Writerside/topics/02/OOAD/UMLStateDiagramme.md
Normal file
@ -0,0 +1,99 @@
|
||||
# State Machine Diagrams
|
||||
## Introduction
|
||||
- Beschreiben den Zustand von Objekten oder des Systems
|
||||
|
||||
### Introduction Example
|
||||
- Light can be on / off
|
||||
- 
|
||||
|
||||
## 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](#state-transitions) 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
|
||||
- Handhaben Events innerhalb eines States
|
||||
- 
|
||||
|
||||
## 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_
|
||||
|
||||
## State Transition Examples
|
||||
- 
|
||||
- 
|
||||
- 
|
||||
|
||||
## Möglicher Spicker
|
||||

|
Reference in New Issue
Block a user