YAKINDU SCT - Domain-Specific Statecharts
The Yakindu open-source project, hosted at EclipseLabs (see http://www.yakindu.org and http://code.google.com/a/eclipselabs.org/p/yakindu/), aims at providing a modular workbench for the model-based development of embedded systems. It so far supports the modeling of state chart and block diagrams in terms of its SCT (Statechart Tools) and DAMOS (Dynamical Systems Modeler) modules. Additional tool modules are under development and may be expected in the near future.
Within this talk we will present Yakindu SCT, which provides support for modeling and simulation of state charts, as well as code generation for C, C++, and Java. While it is already quite nice to have an end-user ready open-source modeling tool right out of the box, the major innovation behind Yakindu SCT may be seen in the fact that it is dedicated to domain-specific state charts. That is, it allows domain experts to model state charts based on well known abstractions like states, transitions, triggers, and guards, which are concretized by domain concepts (e.g. menu states in the domain of user interface specifications). This enables the seamless integration of Yakindu SCT in larger domain-specific modeling workbenches.
In order to enable this approach, the definition of Yakindu SCT is based on two formalisms, sgraph as well as stext, where the former defines the abstract graph-like structures of every state machine (i.e. states, transitions, etc.), while the latter defines a textual expression language that is used to specify all details beyond (i.e. trigger, guard, and action expressions). Customization may be performed by deriving domain-specific concretizations from those concepts defined by sgraph on the one hand, and by extending or replacing stext by a domain-specific expression language on the other. From the tooling perspective, Yakindu SCT provides reusable base implementations for a graphical editor, a simulation environment, as well as a code generation infrastructure that is based on sgraph and may thus be easily reused.
We will demonstrate both usage scenarios by presenting the default configuration of Yakindu SCT compared to a customized domain-specific solution derived from it.