YAKINDU Statechart Tools features an intuitive combination of graphical and textual notation for modelling state diagrams. While states, transitions and state hierarchies are graphical elements, all declarations and actions are specified using a textual notation.
The usability of the statechart editor is simply fascinating.
The validation of state machines includes syntax and semantic checks of the full model. Examples of built in validation rules are the detection of unreachable states, dead ends and references to unknown events. These validation constraints are checked live during editing.
The simulation of state machine models allows the dynamic semantics to be checked. Also breakpoints can be set on transitions and states. Using conditional expressions allows for a more fine-grained control of the simulation run. Additionally the execution state of a simulation can be stored as a snapshot, which comprises all active and variable states. They can be restored any time to avoid repetitive manual debugging steps and thereby saving time.
YAKINDU Statechart Tools includes code generators for state machines in Java, C and C++ out of the box. The code generators follow a code-only approach and do not rely on any additional runtime library. The generated code provides a well-defined interface and can be integrated easily with any client code.
C declarations from header files can be directly accessed in a state machine model. This includes custom types, like structs, unions and enumerations as well as functions and variables. The generated code directly includes the used header files.
Recently we had a discussion about Test Driven Development. Is it really important or just a buzzword. We agreed quickly: it is not a Buzzword. TDD is a skill....Read more
We released YAKINDU Statechart Tools Standard and Professional Edition version 3.1.0 today! Apart from several bug fixes we added the following main features:...Read more
After we have discovered the implementation of state machines by means of switch statement and table, let's take a look at an object-oriented implementation...Read more