Our vision is to create a whole ecosystem around the core library yasmine. This paragraph presents the vision of the completed yasmine ecosystem. The page In development and planned features describes the current state of our development efforts and the page Core library features reveals details about the core library itself.
The core of the yasmine ecosystem is formed by the yasmine library which delivers the actual state machine features. Applications are built on top of this library.
QA of yasmine is implemented in the yasmine test suite. It contains a test utility library, unit and integration tests.
To design state machines the yasmine editor is used. UML state machines can be designed using this graphical tool. For data exchange yasmine models can be saved and loaded.
Two parts make up the yasmine model:
a JSON-based file format to persist the model
a library which contains a C++-implementation to save and load model files using RapidJSON
For a quick and easy transition of a model into an implementation the generator is used. It generates the code frame of the state machine. After the generation process the developer can jump right in and connect the state machine to the business logic.
In the development process a visual debugger can be utilized. This graphical tool enables the developer to monitor the current state configuration and the transitions. Also break points can be set to pause the state machine execution at certain points.