What is a state machine?

A state machine is a behavior model. It consists of a finite number of states and is therefore also called finite-state machine (FSM). Based on the current state and a given input the machine performs state transitions and produces outputs. There are basic types like Mealy and Moore machines and more complex types like Harel and UML statecharts.

What is itemis CREATE?

itemis CREATE, formerly known as YAKINDU Statechart Tools, is a modular toolkit for developing, simulating, and generating executable finite-state machines (FSM) or simply state machines.

Quick reference

This chapter gives an overview of the building blocks a statechart consists of and their semantics. It also shows the textual syntax used to express behavior inside the graphical model. If you are new to itemis CREATE, this is a good starting point to learn the main concepts. This reference also applies to former YAKINDU Statechart Tools version.

Editing statecharts

This section explains how you can edit statecharts using itemis CREATE, formerly known as YAKINDU Statechart Tools,.

Simulating statecharts

itemis CREATE, formerly known as YAKINDU Statechart Tools, supports model simulation.
Simulating a statechart model means to execute it, raise events manually, have time-based and other events being triggered automatically, and observe the model’s behavior.

Generating state machine code

Ultimately, you will need your state machine not only as a nice graphical statechart model. This chapter explains how to generate it as executable code.

Testing state machines

itemis CREATE, formerly known as YAKINDU Statechart Tools, supports you with testing of statecharts and generated state machines. Learn more about test-driven statechart modelling and how to use SCTUnit to develop your statechart model step by step using a test-driven approach.

Using C/C++ code in statecharts

The itemis CREATE, formerly known as YAKINDU Statechart Tools, comes with a Deep C/C++ Integration feature, which allows for using C/C++ types, variables, and operations directly within the statechart model. C/C++ header files located in your workspace are automatically recognized by the tool, and all contained type and operation declarations are made accessible in the statechart editor with all its editing features like code completion and validation. In addition to your custom C/C++ types, the C99 standard primitive types, like int16_t, are also available out of the box.

SCXML domain

itemis CREATE, formerly known as YAKINDU Statechart Tools, comes with an SCXML domain which allows to generate SCXML code from your statechart, as well as to simulate and test it in a way that is compliant to the SCXML execution semantics.

Statechart language reference

itemis CREATE, formerly known as YAKINDU Statechart Tools, provides a formal definition of statecharts which allows execution and code generation. This formalization is provided by the statechart language, which is used to describe statecharts. It consists both of graphical and of textual elements.

Multi state machine modeling

The behavior of large systems is often too complex to be captured by a single statechart. So if a statechart gets too large you should think about splitting it into two or more smaller parts. Beside the fact that the smaller state machines are easier to handle and maintain there are additional reasons for using multiple state machines instead of single monolithic ones:

Embedded Systems Integration Guide

This chapter demonstrates how to integrate generated C code from itemis CREATE, formerly known as YAKINDU Statechart Tools, on your device and ends up by referring to according examples for each scenario. State machine code generated by itemis CREATE can effectively be used on embedded systems. The integration contains different parts, but can mostly be described in a generic way, as most steps of the integration are platform independent.
The differences of the integration mostly stem from the selected execution semantics – cycle based or event driven – as well as the used functionalities, such as in, out and timed events. Other best practice implementation patterns can be based on whether a bare metal microcontroller or an operating system is used. So, there are different factors which may have an impact on the integration:

YET debugging and testing state machines on target using execution traces

itemis CREATE, formerly known as YAKINDU Statechart Tools, statechart models are executable. There are many use cases that require information about the execution itself. Examples are remote debugging of state machines, execution analysis, testing, co-simulation and others. This information may be provided live during the execution or it could be used post-mortem when the execution of the system already finished. In any case this information must be explicit and it must be possible to store it persistently and provide other tools access to this information.

Lab features

Researching, prototyping, and putting our ideas into code, aside from the day-to-day business, is an essential part of our development culture. itemis CREATE Labs, formerly known as YAKINDU Statechart Tools, is a collection of projects that are currently in beta phase and therefore not yet released with any itemis CREATE product bundles. As we love early feedback, we regularly blog about what’s going on behind the scenes. So try it, and get in touch with us!

Installing itemis CREATE

In order to start working with itemis CREATE, formerly known as YAKINDU Statechart Tools, you have to install the software on your computer. The installation process is pretty simple, just download the archive, unpack it, and start the executable.

Migration guide to 4.x

This chapter is about the migration from YAKINDU Statechart Tools 3.x and previous versions to YAKINDU Statechart Tools 4.x. These steps also apply if you migrate to current itemis CREATE versions 5.x .

Release notes

A list of new and noteworthy features as well as bugs we have tackled down in the particular releases.

Appendix Release 3.x specific topics

The user guide addresses all features up to the most recent tool version. Most topics covered are valid for all itemis CREATE including former YAKINDU Statechart Tools versions including 3.x and even 2.x releases. Nevertheless, there are some topics that are specific topics which are relevant for users of YAKINDU Statechart Tools 3.x releases.