Using the Graphic Editors : Working with Charts and Diagrams : Statecharts

Statecharts

Statecharts describe the system's behavior over time, including the dynamics of activities, their control and timing behavior, the states and modes of the system, and the conditions and events that cause modes to change and other occurrences to take place. It thus also provides answers to questions about causality, concurrency, and synchronization.

Statecharts constitute an extensive generalization of state-transition diagrams. They allow for multi-level states, decomposed in an and/or fashion, and thus support economical specification of concurrency and encapsulation. They incorporate a broadcast communication mechanism, timeout, and delay operators for specifying synchronization and timing information, and a means for specifying transitions that depend on the history of the system's behavior.

You can set transition priority by adding a priority value (positive integer number) and assigning it to a transition. This creates a graphical notion of the transition priority.

Each element in the statechart has properties, which can contain additional information. For example, an event element can be used to define a compound event by an expression involving other events and conditions.

Note: Rational Statemate supports a special type of statechart known as a Procedural Statechart, Used for implementation of a Subroutine. A Procedural Statechart is a specialized derivative of a statechart that does the following:

– Is executed entirely in one step.

– Must contain a termination connector.

– When called, runs from the default to the termination connector (including any loops) within a single step.

The following sections describe in more detail how to use statecharts.