Tool Analysis | Home

The following is a chart describing features present in several statechart editing tools. Many aspects of the tools will be examined including:

Components:
Hierarchy support (Y/N) Does the statechart environment support hierarchy. That is, can states be placed within other states?
Orthogonality support (Y/N) Does the statechart environment support orthogonal components?
Guard support (Y/N) Does the statechart environment support boolean expression guards?
Hyperedge support (Y/N) Does the statechart environment support hyperedges. That is, is it possible to add transition with source and destination sets in several orthogonal regions?
History support (Y/N) Does the statechart environment support the history construct (the pseudo state with a 'H' in the middle)?
Deep history support (Y/N) Does the statechart environment support the deep history construct (the pseudo state with a 'H*' in the middle)?
Conditional component present (Y/N) Does the statechart environment support the conditional construct (the pseudo state with a 'C' in the middle)?
Select component present (Y/N) Does the statechart environment support the select construct (the pseudo state with a 'S' in the middle)?
Forks (Y/N) Does the statechart environment support hyperedges. That is, is it possible to add a fork and create a transition with a destination set in several orthogonal regions?
Joins (Y/N) Does the statechart environment support hyperedges. That is, is it possible to add a fork and create a transition with a source set in several orthogonal regions?
Synch states (Y/N) Does the statechart environment support the use of synch states?
Environment Features:
Hierarchical zoom capability (Y/N) Can the environment zoom in and out of states, effectively exposing or hiding their inside implementation?
API functions (function list) A list of API function should be provided here such as IN().
Simulation capability (Y/N) Does the statechart environment allow for the statechart model to be simulated?
Code generation (Y/N) Does the statechart environment allow for portable code generation from the statechart model?
Semantics:
Self-triggering, causality (Y/N) Does the statechart environment support causality? Causality indicates that other events can be generated from the actions executed on transitions which ultimately fired because of an external transition.
Negated triggers (Y/N) Does the statechart environment support negated triggers? That is, can one specify a trigger as being the absence of an event?
Contradictory actions allowed (Y/N) Does the statechart environment allow transitions to be labeled e/!e (where !e indicates the 'NOT e' event)? That is does the environment allow actions to be contradictory to their cause?
Inter-level transitions (Y/N) Does the environment allow transitions to pass over state boundaries?
State references allowed (Y/N) Can references be made to other states at run-time? One example of making such a reference is using the in() function, which checks if the one of the current states is .
Compositional semantics (Y/N) Does the statechart environment support compositional statecharts?
Instantaneous states (Y/N) Does the statechart environment allow for instantaneous states? That is, can a state be entered and exited in the same step?
Event durability Are the existence of events instantaneous or non-instantaneous?
Determinism (Deterministic/Non-Deterministic) Does the statechart environment support deterministic and/or non-deterministic statecharts?
Transition priorities (description of priority scheme) What is the priority scheme for conflicting transitions?
Interrupts (preemptive/non-preemptive) Does the statechart environment support preemptive and/or non-preemptive interrupts?

Tool Analysis | Home