Comments:
XJCharts is a solid environment for creating executable code in C++ or Java from statechart models.
It suffers from a huge drawback, however. It is not possible to add orthogonal components in
XJCharts. This fact alone makes them fairly unusable. But, if you do not need any orthogonal
components in your model, then XJCharts may be a viable option.
Components: | |
Hierarchy (Y/N) | Yes |
Orthogonality (Y/N) | No |
Guards (Y/N) | Yes |
Hyperedges (Y/N) | No |
History (Y/N) | Yes |
Deep history (Y/N) | Yes |
Conditional component (Y/N) | Yes |
Select component (Y/N) | No |
Forks (Y/N) | No |
Joins (Y/N) | No |
Synch states (Y/N) | No |
Environment Features: | |
Hierarchical zoom (Y/N) | No |
API functions |
> FireEvent([event]) - Generates an internal event. > GetCurrentState() - Returns the current basic state. > waitTimeout([seconds]) - Causes transition to fire after [seconds] amount of time. > waitDynamicEvent([event]) - Causes a transition to fire when [event] occurs. > etc. These methods are all present in the required superclass, CStatechart in C++ or Statechart in java. All are well documented. |
Simulation (Y/N) | Yes. Also provides classes for quickly turning your statechart into a java applet (for java only). |
Code generation (Y/N) | Yes. Tightly integrated with code generation in Java and C++. |
Semantics: | |
Causality (Y/N) | Yes |
Negated triggers (Y/N) | No |
Contradictory actions (Y/N) | No checking mechanisms. |
Inter-level transitions (Y/N) | Yes |
State references (Y/N) | Yes |
Compositional semantics (Y/N) | No |
Instantaneous states (Y/N) | Yes |
Event durability | Instantaneous |
Determinism (Deterministic/Non-deterministic) | Deterministic |
Transition priorities | UML priority scheme |
Interrupts | Non-preemptive |