Class UML 2.4.1::StateMachine

Description:

State machines can be used to express the behavior of part of a system.
Behavior is modeled as a traversal of a graph of state nodes interconnected
by one or more joined transition arcs that are triggered by the dispatching
of series of (event) occurrences. During this traversal, the state machine
executes a series of activities associated with various elements of the
state machine.

Constraints:

Signature: method() : Boolean;Description: A state machine as the method for a behavioral feature cannot have entry/exit
connection points.Expression: specification->notEmpty() implies connectionPoint->isEmpty()

Signature: context_classifier() : Boolean;Description: The context classifier of the method state machine of a behavioral feature
must be the classifier that owns the behavioral feature.Expression: specification->notEmpty() implies (context->notEmpty() and specification->featuringClassifier->exists (c | c = context))

Signature: classifier_context() : Boolean;Description: The classifier context of a state machine cannot be an interface.Expression: context->notEmpty() implies not context.oclIsKindOf(Interface)

Operations:

Signature: isRedefinitionContextValid(redefined : StateMachine; ) : Boolean;Description: The query isRedefinitionContextValid() specifies whether the redefinition
contexts of a statemachine are properly related to the redefinition contexts
of the specified statemachine to allow this element to redefine the other.
The containing classifier of a redefining statemachine must redefine the
containing classifier of the redefined statemachine.Expression: result = true

Signature: isConsistentWith(redefinee : RedefinableElement; ) : Boolean;Description: The query isConsistentWith() specifies that a redefining state machine
is consistent with a redefined state machine provided that the redefining
state machine is an extension of the redefined state machine: Regions are
inherited and regions can be added, inherited regions can be redefined.
In case of multiple redefining state machines, extension implies that the
redefining state machine gets orthogonal regions for each of the redefined
state machines.Expression: result = true