Uživatelské nástroje

Nástroje pro tento web


Statecharts as a tool for managing application state


FIXME links to Harel and UML, our early papers.

Statecharts tool

We have developed a statecharts engine capable of running the hierarchical statecharts and a visual editor capable of defining the statechart using a visual language. Combination of these tools allows us to use the statecharts as a part of the model/viewmodel layer to control the application run according to complex rules and conditions.

Here is an example of a simulator used in our First Aid Game.

The Statecharts IDE allows creating hierarchical statecharts with actions in states and on transitions, with transition conditions and other features as junctions, history and implicit events (although implicit events are disabled in the current release). The language used to specify the actions and conditions is C#. The source code of the actions is generated as a partial class. That is suitable if one can control visual controls of an application since they are usually private members of a Form. Along the actions source the statechart structure is generated and compiled as na .NET assembly. To be used in a project the Runtime.dll assembly with the statecharts runtime must be linked as well.


The source code of the Statecharts IDE together with the Statecharts Runtime can be downloaded here FIXME.

The old version of the Statecharts tool without the editor but with full support of implicit events can be found on http://patf-biokyb.lf1.cuni.cz/projects/statecharts/.

Future development

  • Design of a DSL (probably an internal DSL) for defining statecharts in the source code
  • Converting the WinForms IDE into WPF designer application
  • Clearing the runtime not to use one thread for every statechart (or optionally)
  • Separation of the abstract representation from the code related issues.
  • Multiple back-ends – C#, C (using Miro Samek's library), …
statecharts.txt · Poslední úprava: 2008/09/23 20:26 autor: stod