State Machines
Overview
The StateMachine package defines a set of concepts that can be used for
modeling discrete behavior through finite statetransition systems. In
addition to expressing the behavior of a part of
the system, state machines can also be used to express the usage
protocol of part of a system. These two kinds of
state machines are referred here as behavioral state machines
and protocol state machines.
Behavioral state machines
State machines can be used to specify behavior of various model
elements. For example, they can be used to model the behavior of
individual entities (e.g., class instances). The state
machine formalism described in this section is an object-based variant
of Harel statecharts.
Protocol State machines
Protocol state machines are used to express usage protocols.
Protocol
state machines express the legal transitions that a classifier can
trigger. The state machine notation is a convenient way
to define a lifecycle for objects, or an order of the invocation of its
operation. Because protocol state machines do not
preclude any specific behavioral implementation, and inforces legal
usage scenarios of classifiers, interfaces and ports can
be associated to this kind of state machines.