|Previous||UML Classes||Table of Contents||UML Packages||Next|
Class (from Kernel ) on page 48
Behavior is a specification of how its context classifier changes state over time. This specification may be either a definition
of possible behavior execution or emergent behavior, or a selective illustration of an interesting subset of possible executions.
The latter form is typically used for capturing examples, such as a trace of a particular execution.
A classifier behavior is always a definition of behavior and not an illustration. It describes the sequence of state changes
an instance of a classifier may undergo in the course of its lifetime. Its precise semantics depends on the kind of classifier.
For example, the classifier behavior of a collaboration represents emergent behavior of all the parts, whereas the classifier
behavior of a class is just the behavior of instances of the class separated from the behaviors of any of its parts.
When a behavior is associated as the method of a behavioral feature, it defines the implementation of that feature (i.e.,
the computation that generates the effects of the behavioral feature).
As a classifier, a behavior can be specialized. Instantiating a behavior is referred to as invoking the behavior, an instantiated
behavior is also called a behavior execution. A behavior may be invoked directly or its invocation may be the result of invoking
the behavioral feature that specifies this behavior. A behavior can also be instantiated as an object in virtue of it being
The specification of a behavior can take a number of forms, as described in the subclasses of Behavior. Behavior is an abstract
metaclass factoring out the commonalities of these different specification mechanisms.
When a behavior is invoked, its execution receives a set of input values that are used to affect the course of execution,
and as a result of its execution it produces a set of output values that are returned, as specified by its parameters. The
observable effects of a behavior execution may include changes of values of various objects involved in the execution, the
creation and destruction of objects, generation of communications between objects, as well as an explicit set of output values.
Issue 9191 -add default value
• isReentrant: Boolean  Tells whether the behavior can be invoked while it is still executing from a previous invocation.
Default value is false.
• specification: BehavioralFeature [0..1] Designates a behavioral feature that the behavior implements. The behavioral feature
must be owned by the classifier that owns the behavior or be inherited by it. The parameters of the behavioral feature and
the implementing behavior must match. If a behavior does not have a specification, it is directly associated with a classifier
(i.e., it is the behavior of the classifier as a whole).
Issue 8993 -make ‘context’ derived and replace ‘owner’ with ‘context’
• redefinedBehavior: Behavior References a behavior that this behavior redefines. A subtype of Behavior may redefine any other subtype of Behavior. If the behavior implements a behavioral feature, it replaces the redefined behavior. If the behavior is a classifier behavior, it extends the redefined behavior.
• precondition: Constraint An optional set of Constraints specifying what must be fulfilled when the behavior is invoked. (Subsets Namespace ::constraint and Constraint::context.)
• postcondition: Constraint An optional set of Constraints specifying what is fulfilled after the execution of the behavior is completed, if its precondition was fulfilled before its invocation. (Subsets Namespace ::constraint and Constraint::context.)
• /context: BehavioredClassifier [0..1] The classifier that is the context for the execution of the behavior. If the behavior is owned by a BehavioredClassifier, that classifier is the context. Otherwise, the context is the first BehavioredClassifier reached by following the chain of owner relationships. For example, following this algorithm, the context of an entry action in a state machine is the classifier that owns the state machine. The features of the context classifier as well as the elements visible to the context classifier are visible to the behavior. (Subsets RedefinableElement ::redefinitionContext.)
• ownedParameter: Parameter References a list of parameters to the behavior that describes the order and type of arguments that can be given when the behavior is invoked and of the values that will be returned when the behavior completes its execution. (Subsets Namespace ::ownedMember.)
 The parameters of the behavior must match the parameters of the implemented behavioral feature.
 The implemented behavioral feature must be a feature (possibly inherited) of the context classifier of the behavior.
 If the implemented behavioral feature has been redefined in the ancestors of the owner of the behavior, then the behavior
must realize the latest redefining behavioral feature.
 There may be at most one behavior for a given pairing of classifier (as owner of the behavior) and behavioral feature
(as specification of the behavior).
The detailed semantics of behavior is determined by its subtypes. The features of the context classifier and elements that
are visible to the context classifier are also visible to the behavior, provided that is allowed by the visibility rules.
When a behavior is invoked, its attributes and parameters (if any) are created and appropriately initialized. Upon invocation,
the arguments of the original invocation action are made available to the new behavior execution corresponding to its parameters
with direction ‘in’ and ‘inout,’ if any. When a behavior completes its execution, a value or set of values is returned corresponding
to each parameter with direction ‘out,’ ‘inout,’ or ‘return,’ if any. If such a parameter has a default value associated and
the behavior does not explicitly generate a value for this parameter, the default value describes the value that will be returned
corresponding to this parameter. If the invocation was synchronous, any return values from the behavior execution are returned
to the original caller, which is unblocked and allowed to continue execution.
The behavior executes within its context object, independently of and concurrently with any existing behavior executions.
The object that is the context of the behavior manages the input pool holding the event occurrences to which a behavior may
respond (see 13.3.4, BehavioredClassifier (from BasicBehaviors , Communications ), on page 451). As an
object may have a number of behaviors associated, all these behaviors may access the same input pool. The object ensures that
each event occurrence on the input pool is consumed by only one behavior.
When a behavior is instantiated as an object, it is its own context.
The means by which requests are transported to their target depend on the type of requesting action, the target, the properties
of the communication medium, and numerous other factors. In some cases, this is instantaneous and completely reliable while
in others it may involve transmission delays of variable duration, loss of requests, reordering, or duplication. (See also
the discussion on
How the parameters of behavioral features or a behavior match the parameters of a behavioral feature is a semantic
variation point (see BehavioralFeature on page 449).
Changes from previous UML
This metaclass has been added. It abstracts the commonalities between the various ways that behavior can be implemented in
the UML. It allows the various ways of implementing behavior (as expressed by the subtypes of Behavior) to be used interchangeably.