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( |
| 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? |