itemis Blog

Welches Werkzeug brauche ich für die Modellierung mit Zustandsautomaten?

Geschrieben von Svenja Wendler | 04.05.2017

In meinem letzten Artikel habe ich euch von Emil erzählt. Er und sein Entwicklerteam kamen mit der Weiterentwicklung in ihrem Projekt nicht mehr weiter. Ihr Modellierungswerkzeug behinderte ihre Arbeit bei der Entwicklung einer selbstregulierenden Steuerung für Ampelsysteme mehr als es sie unterstützte.

Nun setzten sie sich zusammen und definierten die Anforderungen an ihr Modellierungswerkzeug neu – denn klar definierte Anforderungen sind die notwendige Grundlage für die Wahl eines Modellierungswerkzeug, welches das Team unterstützt und voranbringt.

Modellierungswerkzeuge gibt es reichlich. Es gibt die großen und teuren, die alles können (möchten). Kleinere Programme haben meist weniger Features. Doch wenn dies genau diejenigen Features sind, die unser Projekt braucht, was wollen wir mehr?

Für Zustandsautomaten ist vielleicht YAKINDU Statechart Tools das richtige Werkzeug. Diese Software bündelt Modellierung, Simulation und Codegenerierung von Finite-StateMachines zu einem schlanken, robusten Werkzeug. Sowohl UML-2.0-, Harel-, Mealy- und Moore-Automaten sind möglich. Die großen Stärken der Statechart Tools sind der Simulator und die anpassbare Codegenerierung für verschiedene Zielsprachen wie C, C++ oder Java. Auch ein selbst geschriebener Generator für eine eigene Zielsprache (vgl. domänenspezifische Sprachen) ist realisierbar. 

Was kann YAKINDU Statechart Tools, das andere nicht können?

Seit nunmehr zehn Jahren wird YAKINDU Statechart Tools entwickelt, so dass wir es zu den ausgereiften Werkzeugen zählen dürfen, ähnlich Enterprise Architect, Matlab Simulink oder Stateflow. Enterprise Architect besitzt jedoch keine formale Ausdruckssprache und als Konsequenz daraus keine Möglichkeit der Validierung, keine Code Completion und keine Typsicherheit bei allen formalen Ausdrücken. Die Fähigkeit der adäquaten Simulation und Validierung wird dadurch ebenfalls beschränkt. Hier liegt die Stärke von YAKINDU Statechart Tools. 

Für Embedded-Entwickler bietet YAKINDU Statechart Tools die Möglichkeit, auf eigenen C-Variablen, -Konstanten oder -Funktionen direkt aus dem Zustandsautomaten heraus zuzugreifen. Arbeitet ein Team mit anderen Werkzeugen, die eine derart weitreichende C-Integration nicht bieten, werden sie zahlreiche Arbeitsstunden in die Verknüpfung von Modell und C-Code stecken. Diese Zeit lässt sich sinnvoller nutzen…

Das Headless-Build-Feature ermöglicht es, den Codegenerator in den automatischen Build-Prozess einzubinden – ebenfalls ohne wertvolle Arbeitsstunden in das manuelle Anstoßen der Codegenerierung über die grafische Oberfläche des Werkzeugs  stecken zu müssen. Die Codegenerierung erfolgt ohne weiteres Zutun automatisch innerhalb des Build-Prozesses.

Welche Anforderungen müssen erfüllt werden?

Ein Werkzeug muss nicht umfassend, groß und monolithisch sein. Es muss nur genau die richtigen Features bieten, welche die Entwicklung heute voranbringen. Was zählt, ist die Entwicklung hier und jetzt, nicht Projekte und Themen, die vielleicht in Zukunft auch noch kommen werden.

Emils Team hat seine Anforderungen noch einmal überarbeitet. Das größte Problem des Modellierungswerkzeugs ist der Generator. Er macht dem Team mehr Probleme, als er löst. Das für Emils Team perfekte Modellierungstool…

… unterstützt UML 2.0-Zustandsautomaten,

… kann verlässlich validieren und simulieren,

… besitzt einen leistungsstarken, konfigurierbaren Generator für C, der vorhersehbaren Quellcode produziert,

… lässt sich einfach in den bestehenden Build-Prozess integrieren.

Wenn man sich die oben beschriebenen Features anschaut, könnte es sein, dass YAKINDU Statechart Tools eine passende Lösung ist. Denn vor allem die Typsicherheit ermöglicht eine verlässliche Modellvalidierung. Sie bietet eine belastbare Basis für Codegenerierung. Dass sich YAKINDU Statechart Tools einfach in den Build-Prozess integrieren lässt, spart Arbeitszeit der Entwickler und diese können sich auf das eigentliche Entwicklungsziel konzentrieren und sind weniger durch Aufgaben abgelenkt, die nicht direkt zum Produkt beitragen.

Ich bin gespannt, was mir Emil demnächst berichtet. Für welches Werkzeug entscheidet sich das Team? Wie wird die Migration? Ich werde berichten.

Übrigens: Wenn ihr YAKINDU Statechart Tools selbst einmal ausprobieren möchtet, ladet es euch einfach auf unserer Website herunter.