Tool Analysis | Home

Statechart Tool Analysis >> XJCharts

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

Tool Analysis | Home