zusammenfassungen/Writerside/topics/OOAD/UMLStateDiagramme.md
David Schirrmeister ce02d02007 update
2024-05-29 11:32:17 +02:00

3.2 KiB

State Machine Diagrams

Introduction

  • Beschreiben den Zustand von Objekten oder des Systems

Introduction Example

  • Light can be on / off
  • 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

  • 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

Internal Pseudostate

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

  • können mehrere existieren
  • Objekte können permanent in einem End-Status sein

State Transitions

External Transitions

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

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

  • Handhaben Events innerhalb eines States
  • 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_126.png
  • image_127.png

Möglicher Spicker

image_270.png