© Liashko/Shutterstock.com
Entwickler Magazin
Mit Zustandsautomaten erfolgreich Systeme modellieren

Automat mit Ablaufdatum

Die Welt ist voller Vorgänge, deren Verhalten in Modi eingeteilt werden können. Informatiker fassen auf diesem Pattern basierende Programme unter dem Begriff Zustandsautomaten oder Finite State Machines zusammen. In diesem Artikel stellen wir Ihnen Prinzip und Funktionsweise solcher Zustandsautomaten vor.

Tam Hanna


Es gibt kaum einen Programmierer, der im Rahmen seiner Tätigkeit noch nie Kontakt mit Finite State Machines (FSMs) hatte. Das Design Pattern ist bei der Realisierung von Parsern, dem Bearbeiten von Netzwerkanfragen und dem Modellieren realer Systeme von gleichermaßen hoher Bedeutung. Aufgrund des vergleichsweise einfachen inneren Aufbaus bringt die Nutzung eines Zustandsautomaten wesentliche Vorteile. Programme lassen sich in einzelne Stufen unterteilen, jeder Zustand ist im Idealfall von seinen Kollegen unabhängig. Im Rahmen der Erstellung der Zustandstabelle ist eine gewisse Einarbeitung in die zu lösende Aufgabe notwendig: Wer den zu erledigenden Job nicht versteht, scheitert meist schon bei der Definition der Zustände. Zu guter Letzt ist die Implementierung alles andere als komplex – eine FSM stellt in vielen Fällen den kürzesten Weg zum funktionsfähigen Programm dar.

Eine Frage der Begrifflichkeiten

Systemtechnische Themen lassen sich oft am einfachsten verstehen, wenn man sich ihnen schrittweise nähert und sie anhand konkreter Beispiele illustriert. Wir wollen uns in den folgenden Schritten mit der Modellierung einer Kaffeemaschine auseinandersetzen, die zweistufigen Milchkaffee zusammenbaut. Die Definition des Begriffs Automat lässt sich aus der theoretischen Informatik übernehmen. Es handelt sich dabei um ein System, das auf eine Eingabefolge mit Zustandsänderungen reagiert. Die primäre Rolle des Automaten besteht darin, unter Berücksichtigung von Eingabe und Jetzt-Zustand in einen Folgezustand zu wechseln. Für die folgenden Schritte wollen wir einen Zustand als eine Art Betriebsmodus auffassen. Unsere Kaffeemaschine kann schlafen, Kaffee brauen, Milch schäumen und nach Fertigstellung des Getränks piepsen. Jeder dieser Modi bedingt seine ureigene Konfiguration der Hardware und der dazugehörenden Betriebssoftware.

Ereignisse lösen Zustandswechsel (engl. Transitions) aus. Im Fall unserer Kaffeemaschine wäre dies beispielsweise das Drücken des Einschaltknopfs, der das Gerät aus seinem Schlummer reißt und zum Anfertigen von Espresso animiert. Mit diesem Wissen können wir uns an die Realisierung des Zustandsdiagramms unserer Kaffeemaschine wagen (Abb. 1). Kreise beschreiben Zustände, während die Pfeile die dazugehörigen Transitionen festlegen.

Abb. 1: Eine Kaffeemaschine als Zustandsautomat

In den USA werden Zustandsautomaten gern in Analogie zur objektorientierten Programmierung (OOP) gesetzt. Die Idee dahinter ist, dass ein auf den Prinzipien der OOP ba...

Entwickler Magazin
Mit Zustandsautomaten erfolgreich Systeme modellieren

Automat mit Ablaufdatum

Die Welt ist voller Vorgänge, deren Verhalten in Modi eingeteilt werden können. Informatiker fassen auf diesem Pattern basierende Programme unter dem Begriff Zustandsautomaten oder Finite State Machines zusammen. In diesem Artikel stellen wir Ihnen Prinzip und Funktionsweise solcher Zustandsautomaten vor.

Tam Hanna


Es gibt kaum einen Programmierer, der im Rahmen seiner Tätigkeit noch nie Kontakt mit Finite State Machines (FSMs) hatte. Das Design Pattern ist bei der Realisierung von Parsern, dem Bearbeiten von Netzwerkanfragen und dem Modellieren realer Systeme von gleichermaßen hoher Bedeutung. Aufgrund des vergleichsweise einfachen inneren Aufbaus bringt die Nutzung eines Zustandsautomaten wesentliche Vorteile. Programme lassen sich in einzelne Stufen unterteilen, jeder Zustand ist im Idealfall von seinen Kollegen unabhängig. Im Rahmen der Erstellung der Zustandstabelle ist eine gewisse Einarbeitung in die zu lösende Aufgabe notwendig: Wer den zu erledigenden Job nicht versteht, scheitert meist schon bei der Definition der Zustände. Zu guter Letzt ist die Implementierung alles andere als komplex – eine FSM stellt in vielen Fällen den kürzesten Weg zum funktionsfähigen Programm dar.

Eine Frage der Begrifflichkeiten

Systemtechnische Themen lassen sich oft am einfachsten verstehen, wenn man sich ihnen schrittweise nähert und sie anhand konkreter Beispiele illustriert. Wir wollen uns in den folgenden Schritten mit der Modellierung einer Kaffeemaschine auseinandersetzen, die zweistufigen Milchkaffee zusammenbaut. Die Definition des Begriffs Automat lässt sich aus der theoretischen Informatik übernehmen. Es handelt sich dabei um ein System, das auf eine Eingabefolge mit Zustandsänderungen reagiert. Die primäre Rolle des Automaten besteht darin, unter Berücksichtigung von Eingabe und Jetzt-Zustand in einen Folgezustand zu wechseln. Für die folgenden Schritte wollen wir einen Zustand als eine Art Betriebsmodus auffassen. Unsere Kaffeemaschine kann schlafen, Kaffee brauen, Milch schäumen und nach Fertigstellung des Getränks piepsen. Jeder dieser Modi bedingt seine ureigene Konfiguration der Hardware und der dazugehörenden Betriebssoftware.

Ereignisse lösen Zustandswechsel (engl. Transitions) aus. Im Fall unserer Kaffeemaschine wäre dies beispielsweise das Drücken des Einschaltknopfs, der das Gerät aus seinem Schlummer reißt und zum Anfertigen von Espresso animiert. Mit diesem Wissen können wir uns an die Realisierung des Zustandsdiagramms unserer Kaffeemaschine wagen (Abb. 1). Kreise beschreiben Zustände, während die Pfeile die dazugehörigen Transitionen festlegen.

Abb. 1: Eine Kaffeemaschine als Zustandsautomat

In den USA werden Zustandsautomaten gern in Analogie zur objektorientierten Programmierung (OOP) gesetzt. Die Idee dahinter ist, dass ein auf den Prinzipien der OOP ba...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang