A State represents a situation where some invariant condition holds; this condition can be static (waiting for an event) or dynamic (performing a set of activities). State modeling is usually related to Classes, and describes the enable-able states a Class or element can be in and the transitions that enable the element to move there. There are two types of State: Simple States and Composite States, both created from the 'State' icon from the Toolbox.
Furthermore, there are pseudo-states, resembling some aspect of a State but with a pre-defined implication. Pseudo-states model complex transitional paths, and classify common State Machine behavior.
You can define entry, internal and exit actions for a State using operations.
If a State element has features such as attributes or operations, the depiction of the element in a diagram has a line under the element name. This line persists if the features are hidden. The line also displays if the 'Show State Compartment' checkbox is selected on the 'Objects' page of the 'Options' dialog ('Tools | Options | Objects').
- State Machine Diagram
- Define Properties of Operations
- Composite State
OMG UML Specification
The OMG UML specification (UML Superstructure Specification, v2.1.1, p.546) states:
A state models a situation during which some (usually implicit) invariant condition holds. The invariant may represent a static situation such as an object waiting for some external event to occur. However, it can also model dynamic conditions such as the process of performing some activity (i.e., the model element under consideration enters the state when the activity commences and leaves it as soon as the activity is completed).