|Previous||UML Classes||Table of Contents||UML Packages||Next|
The StateMachine package defines a set of concepts that can be used for modeling discrete behavior through finite state-transition
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 to here as behavioral state machines and protocol
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 enforces
legal usage scenarios of classifiers, interfaces, and ports can be associated to this kind of state machines.