This commit is contained in:
David Schirrmeister 2024-05-08 09:56:40 +02:00
parent 253abc8e0e
commit 6856fddc56
14 changed files with 98 additions and 1 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 515 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -21,6 +21,7 @@
<toc-element topic="UML.md">
<toc-element topic="UMLKlassenDiagramme.md"/>
<toc-element topic="UMLSequenzDiagramme.md"/>
<toc-element topic="UMLStateDiagramme.md"/>
</toc-element>
</toc-element>
</toc-element>

View File

@ -15,7 +15,7 @@
- Kann Verhalten detailliert definieren
- Bestimmt, wie sich der Zustand eines Elements über Zeit verändert
- **State Machine Diagram**
- **[State Machine Diagram](UMLStateDiagramme.md)**
- **Use Case Diagram**
- Activity Diagram
- Interaction Diagram

View File

@ -0,0 +1,96 @@
# State Machine Diagrams
## Introduction
- Beschreiben den Zustand von Objekten oder des Systems
### Introduction Example
- Light can be on / off
- ![image_117.png](image_117.png)
## 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
![image_118.png](image_118.png)
- 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
![image_119.png](image_119.png)
### Internal Pseudostate
![image_121.png](image_121.png)
- **nur einmalig**
- Markieren den Start eines Maschinen-Diagramms
- Keine eingehenden Pfeile
- Ein ausgehender Pfeil zum ersten _richtigen_ Zustand
- ohne Events
### Final State
![image_120.png](image_120.png)
- **können mehrere existieren**
- Objekte können permanent in einem End-Status sein
## State Transitions
### External Transitions
![image_122.png](image_122.png)
- 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
![image_123.png](image_123.png)
#### 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
- ![image_124.png](image_124.png)
### 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
- ![image_125.png](image_125.png)
- ![image_126.png](image_126.png)
- ![image_127.png](image_127.png)