A Practical Guide to SysML: The Systems Modeling Language

This chapter describes how to model behavior in terms of the response of blocks to internal and external events, using state machines.
State machines typically are used in SysML to describe the state-dependent behavior of a block throughout its life cycle in terms of its states and the transitions between them. A state machine for a block may be started, for example, when it initiates power up, transitions through multiple states in response to different stimuli, and terminates when it completes power down. In each state, the block may perform different sets of actions. Thus, the state machine defines how the block's behavior changes as it transitions through different states. State machines in SysML can be used to describe a wide range of state-related behavior, from the behavior of a simple lamp switch, to the complex modes of an advanced aircraft.
Although a state machine is a behavior, and therefore can be called from an activity or referenced by an interaction, the semantics of these combinations are not completely clear, so they should be used with care.
State machines are normally owned by blocks and execute within the context of an instance of that block. (It is possible for a state machine to be owned by a package, but its usefulness is much restricted so that particular use will not be covered here.) The behavior of a state machine is specified by a set of regions, each of which defines a set of states. The states in any...