Blog

UMTSM — Von Zustandsmaschinen zu deterministischen reaktiven Ausführungsplattformen

Veröffentlicht am 2026-04-18

In eingebetteten Systemen, Robotik und autonomen Plattformen muss Steuerungslogik eine strikte Anforderungsmenge erfüllen: Determinismus, Vorhersagbarkeit, Testbarkeit, Echtzeit-Verhalten und Wartbarkeit im großen Maßstab.

Klassische Endliche Zustandsmaschinen (FSM) werden seit langem zur Modellierung dieser Logik eingesetzt. Doch wenn Systeme komplexer werden, versagt das klassische FSM-Modell — und wenn es versagt, tut es das mit gravierenden Folgen. Dieser Beitrag erklärt, was UMTSM ist, warum es gebraucht wurde und wie es die Rolle von Zustandsmaschinen in modernen reaktiven Systemen neu definiert.


Das Problem mit klassischen FSMs

Es gibt ein weit verbreitetes Missverständnis, das direkt angesprochen werden sollte:

"Zustandsmaschinen modellieren Verhalten."

Das tun sie — aber nur teilweise. Und diese teilweise Abdeckung verursacht bei großem Maßstab echte Probleme.

Zustandsorientiertes Denken führt zur Zustandsexplosion

Die meisten FSMs werden entworfen, indem man mit Zuständen beginnt — Leerlauf, Laufend, Fehler, Wiederherstellung — und dann Verhalten darin einfügt. Mit der Zeit werden Zustände überlastet, Übergänge verfilzen sich und Logik breitet sich unkontrolliert aus:

  • Hohe zyklomatische Komplexität
  • Schwieriges Testen und Verifizieren
  • Fragile, brüchige Systeme

Keine strukturierte Datenbewusstsein

Traditionelle FSMs arbeiten nach der Ereignis → Übergang-Logik. Aber reale Systeme hängen stark von Datenbedingungen ab:

wenn Temperatur > 30 UND Batterie < 20 → handeln

Ohne strukturierte Datenintegration verstecken FSMs Logik in Zustandshandlern, stützen sich auf implizite Bedingungen und werden mit der Zeit zunehmend undurchsichtig.

Undefinierte Ausführungssemantik

Vielleicht das gefährlichste Problem: In vielen FSM-Implementierungen haben Fragen wie „wann werden Guards ausgewertet?", „was passiert, wenn mehrere Übergänge passen?" oder „was ist die Ausführungsreihenfolge?" implizite Antworten — oder gar keine. Das führt zu Nichtdeterminismus, inkonsistentem Verhalten und Systemen, die sich kaum debuggen lassen.


Was ist UMTSM?

UMTSM (Unified Modeling Technologies State Machine) wird definiert als:

Eine deterministische, ereignisgesteuerte, hierarchische erweiterte Zustandsmaschinenplattform mit expliziter Ausführungssemantik und Code-Generierungsfähigkeiten.

Es ist nicht nur ein Zustandsmaschinenframework. Es erweitert klassische FSMs um hierarchische Modellierung (UML-Zustandsdiagramme), datenbewusste Guards, ein explizites und formales Ausführungsmodell, ein starkes Typsystem, deterministische Übergangslösung und produktionsreife Code-Generierung.

Die FSM-Evolution von klassisch zu UMTSM sieht so aus:

UMTSM FSM-Evolution
UMTSM FSM-Evolution

Kerndesignprinzipien

1. Ereignisgesteuert, nicht datenabfragend

UMTSM folgt strikt:

Ereignis → Auswertung → Übergang

Statt Zustände in einer Schleife abzufragen, werden Daten außerhalb der Zustandsmaschine verarbeitet. Ereignisgeneratoren — die selbst Zustandsmaschinen sein können — erzeugen bedeutungsvolle, semantisch reiche Ereignisse:

temperatur_schwelle_überschritten
batterie_niedrig
gps_verloren

Diese Entkopplung führt zu geringerem CPU-Verbrauch, besserer Trennung von Belangen und einer klareren Systemarchitektur.

2. Deterministisches Ausführungsmodell

UMTSM definiert einen formalen, sechsstufigen Ausführungszyklus:

UMTSM Ausführungszyklus
UMTSM Ausführungszyklus
  1. Ereignisse erfassen
  2. Guards im innersten aktuellen Zustand auswerten, von oben nach unten
  3. Guards in Elternzuständen auswerten, von innen nach außen
  4. Den ersten Übergang auswählen, dessen Guard fehlt oder wahr ergibt
  5. Genau einen Übergang auslösen
  6. Zustand aktualisieren

Die zentrale Garantie: Bei gleichen Eingaben und gleicher Zeitsteuerung erzeugt das System stets dieselben Ausgaben.

3. Hierarchische und nebenläufige Modellierung

UMTSM unterstützt vollständig UML-Zustandsdiagramm-Semantik:

  • Verschachtelte und zusammengesetzte Zustände
  • Orthogonale Regionen (echte Parallelausführung)
  • Fork/Join-Synchronisation
  • Tiefe und flache Historie
  • Eintritts-/Austrittspunkte
  • End- und Terminierungszustände

Dies ermöglicht die Modellierung komplexer Workflows, nebenläufiger Subsysteme und mehrschichtiger Steuerungslogik, die sonst Dutzende flacher Zustände erfordern würde.

4. Guardbasierte Entscheidungsfindung

Übergänge in UMTSM folgen einer vollständigen, ausdrucksstarken Syntax:

ereignis_a, ereignis_b [temperatur > 30 && ist_tag] -> überwachung / fenster_öffnen(), lüftung_starten();

Guards sind reine Ausdrücke, arbeiten auf gemeinsamen Daten und werden deterministisch ausgewertet. Keine versteckten Seiteneffekte, keine implizite Reihenfolge.

5. Kontrollierte Ausführung mit do und complete

UMTSM führt ein leistungsstarkes Muster für selbstauswertende Zustände ein:

state temperatur_prüfen
{
    do / temperatur_auswerten;
    [ist_hoch] --> temperatur_prüfen / kühlung_starten();
    [ist_niedrig] --> temperatur_prüfen / heizung_starten();
}

Die do-Aktion läuft, sendet ein implizites complete-Ereignis aus, Guards werden ausgewertet und der Zustand kann sich selbst wieder betreten. Dies erzeugt eine kontrollierte Ausführungsschleife ohne unkontrollierte Abfrage — eine kritische Unterscheidung für Echtzeitsysteme.


Architekturüberblick

Ein typisches UMTSM-basiertes System folgt einer sauberen geschichteten Architektur:

UMTSM Architektur
UMTSM Architektur

Die Trennung ist explizit:

BelangOrt
DatenverarbeitungEreignisgeneratoren
SteuerungslogikZustandsmaschine
AusführungsmodellUMTSM-Engine
EffekteAktionen / Ausgaben

Starkes Typsystem und Code-Generierung

UMTSM integriert sich eng mit C/C++ und unterstützt eingebaute primitive Typen, Structs, Unions, Enums, externe Typen, Namespaces und globale/gemeinsame Daten. Dies ermöglicht:

  • Nahtlose, typsichere Code-Generierung
  • Direkte Integration mit bestehenden Codebasen
  • Keine Typlöschung zur Laufzeit oder versteckte Konvertierungen

Determinismus und Konfliktlösung

UMTSM erzwingt eine strikte Regel:

Pro Auswertungszyklus darf höchstens ein Übergang ausgelöst werden.

Konfliktlösungsstrategien sind explizit und konfigurierbar:

  • Strikt — Kompilierzeitfehler bei Mehrdeutigkeit
  • Prioritätsbasiert — explizite numerische Priorität pro Übergang
  • Erste Übereinstimmung — geordnete Auswertung, erste passende Guard gewinnt

Dies eliminiert die Fehlerklasse, die aus nichtdeterministischen FSM-Implementierungen entsteht.


Vergleich mit anderen Ansätzen

MerkmalKlassischer FSMUML-ZustandsdiagrammeUMTSM
Hierarchie
Datenbewusste Guards
Formale AusführungssemantikTeilweise
DeterminismusgarantieTeilweise
KonfliktlösungspolitikImplizitUndefiniertExplizit
Produktions-Code-GenerierungBegrenztBegrenzt
EchtzeittauglichkeitTeilweise
Ereignisgesteuertes Modell

Die zentrale Erkenntnis

UMTSM vollzieht einen grundlegenden architektonischen Wandel, der leicht zu formulieren, aber schwer zu verinnerlichen ist:

Zustandsmaschinen sind nicht dafür verantwortlich, alle Daten zu verfolgen.

Stattdessen erzeugen Datenänderungen Ereignisse, und Ereignisse steuern die Zustandsmaschine. Dies verhindert das häufigste Versagensmuster in FSM-basierten Systemen: die Zustandsmaschine mit Datenbewusstsein zu überladen, für das sie nie ausgelegt war, und dabei implizite Abhängigkeiten und versteckte Kopplung zu schaffen, die sich kaum testen lassen.


Zukunftsausblick

UMTSM entwickelt sich zu einer einheitlichen reaktiven Plattform. Geplante Features:

  • Ausdrucks-Engine — funktionsbasierte Guards durch Inline-Ausdrücke ersetzen
  • Parametrisierte Ereignisse — Ereignisse, die typisierte Nutzlasten direkt in Guard-Ausdrücke tragen
  • Datenflusmodellierung — reaktive Datenpipelines mit Ereigniserzeugung integrieren
  • Kompilierzeitanalyse — statische Verifikation von Erreichbarkeit, Deadlock-Freiheit und Guard-Abdeckung
  • Reaktive Pipeline-Integration — UMTSM mit strombasierten Architekturen verbinden

Fazit

UMTSM ersetzt keine Zustandsmaschinen. Es definiert ihre Rolle neu — von statischen Verhaltensdiagrammen zu deterministischen Ausführungssystemen, die Modellierung, Implementierung und Echtzeit-Deployment überbrücken.

Das Leitprinzip ist einfach:

Ihre Zustandsmaschine sollte nicht versuchen, die gesamte Welt zu verstehen. Sie sollte auf bedeutungsvolle Ereignisse reagieren — deterministisch.

UMTSM ist genau dafür gebaut.