Statecharts/Hierarchische Zustandsmaschinen in C++



  • Hallo liebe Leute,

    hat jemand von euch eine Idee, wie man eine hierarchische Zustandsmaschine (Statechart nach Harel) in C++ implmentiert? Die Zustandsmaschine sollte mit Shallow und DeepHistory umgehen.

    Vielleicht weiß ja jemand ein tolles Buch, in dem verschiedene Herangehensweisen erläutert werden.

    Viele Gürße
    carlchen



  • Ich kenne die Harel-Statecharts nicht aber ich nehme mal an, dass es sich hierbei nur um eine Spezialisierung einer Zustandsmaschine handelt. Und diese lässt sich doch recht einfach implementieren, indem man einen Zustand als Klasse modelliert und ihm für die Transitionen einen Vektor mit Zeigern auf andere Zustände übergibt.

    Simples Beispiel:

    struct State {
        std::vector<State*> transitions;
    };
    
    State begin;
    State end;
    
    begin.transitions.push_back(&end);
    

    ... natürlich sollte man das noch ordentlich kapseln.


Anmelden zum Antworten