Definition

Zustandsmaschine (State Machine)

Im Allgemeinen ist eine Zustandsmaschine (State Machine) beziehungsweise ein endlicher Automat oder Zustandsautomat ein Gerät, das den Status von etwas zu einem bestimmten Zeitpunkt speichert und auf Eingaben reagieren kann, um den Status zu ändern und/oder eine Aktion oder Ausgabe für eine bestimmte Änderung zu veranlassen. Ein Computer ist im Grunde ein Zustandsautomat, und jeder Maschinenbefehl ist eine Eingabe, die einen oder mehrere Zustände ändert und andere Aktionen auslösen kann.

Das Datenregister eines Computers speichert einen Zustand. Der Nur-Lese-Speicher (Festwertspeicher oder Read-only Memory), aus dem ein Boot-Programm geladen wird, speichert einen Zustand (das Boot-Programm selbst ist ein Anfangszustand). Das Betriebssystem ist selbst ein Zustand, und jede Anwendung, die ausgeführt wird, beginnt mit einem Anfangszustand, der sich ändern kann, wenn sie beginnt, Eingaben zu verarbeiten.

Somit kann ein Computersystem zu jedem Zeitpunkt als eine komplexe Menge von Zuständen und jedes Programm darin als eine Zustandsmaschine betrachtet werden. In der Praxis werden Zustandsautomaten jedoch zur Entwicklung und Beschreibung spezifischer Geräte- oder Programminteraktionen verwendet.

Zusammenfassend lässt sich eine Zustandsmaschine wie folgt beschreiben:

  • ein Ausgangszustand oder eine Aufzeichnung von etwas, das irgendwo gespeichert ist
  • eine Menge möglicher Eingabeereignisse
  • eine Reihe von neuen Zuständen, die sich aus der Eingabe ergeben können
  • eine Menge möglicher Aktionen oder Ausgabeereignisse, die sich aus einem neuen Zustand ergeben

In ihrem Buch Real-time Object-oriented Modeling betrachten Bran Selic und Garth Gullekson eine Zustandsmaschine als:

  • eine Menge von Eingabeereignissen
  • eine Menge von Ausgangsereignissen
  • eine Menge von Zuständen
  • eine Funktion, die Zustände und Eingaben auf Ausgaben abbildet
  • eine Funktion, die Zustände und Eingaben auf Zustände abbildet (die als Zustandsübergangsfunktion bezeichnet wird)
  • eine Beschreibung des Anfangszustands

Ein endlicher Zustandsautomat hat eine begrenzte oder endliche Anzahl von möglichen Zuständen (ein unendlicher Zustandsautomat ist zwar denkbar, aber nicht praktikabel). Ein endlicher Zustandsautomat kann sowohl als Entwicklungswerkzeug für das Herangehen an und die Lösung von Problemen als auch als formale Methode zur Beschreibung der Lösung für spätere Entwickler und Systembetreuer verwendet werden. Es gibt eine Reihe von Möglichkeiten, Zustandsautomaten darzustellen, von einfachen Tabellen bis hin zu grafisch animierten Illustrationen.

Diese Definition wurde zuletzt im März 2022 aktualisiert

Erfahren Sie mehr über Softwareentwicklung

ComputerWeekly.de
Close