|Previous||UML Classes||Table of Contents||UML Packages||Next|
InteractionFragment (from BasicInteractions , Fragments ) on page 505
A StateInvariant is a runtime constraint on the participants of the interaction. It may be used to specify a variety of different
kinds of constraints, such as values of attributes or variables, internal or external states, and so on.
A StateInvariant is an InteractionFragment and it is placed on a Lifeline .
• invariant: Constraint A Constraint that should hold at runtime for this StateInvariant .
The Constraint is assumed to be evaluated during runtime. The Constraint is evaluated immediately prior to the execution of
the next OccurrenceSpecification such that all actions that are not explicitly modeled have been executed. If the Constraint
is true, the trace is a valid trace; if the Constraint is false, the trace is an invalid trace. In other words all traces
that have a StateInvariant with a false Constraint are considered invalid.
The possible associated Constraint is shown as text in curly brackets on the lifeline.
See example in Figure 14.24 on
A StateInvariant can optionally be shown as a Note associated with an OccurrenceSpecification.
The state symbol represents the equivalent of a constraint that checks the state of the object represented by the Lifeline .
This could be the internal state of the classifierBehavior of the corresponding Classifier, or it could be some external state
based on a black-box view of the Lifeline . In the former case, and if the classifierBehavior is described by a state machine,
the name of the state should match the hierarchical name of the corresponding state of the state machine.
The regions represent the orthogonal regions of states. The identifier need only define the state partially. The value of
the constraint is true if the specified state information is true.
The example in Figure 14.24 also shows
this presentation option.