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