|Previous||UML Classes||Table of Contents||UML Packages||Next|
Operation (from Kernel , Interfaces ) on page 105
An operation may invoke both the execution of method behaviors as well as other behavioral responses.
If an operation is not mentioned in a trigger of a behavior owned or inherited by the behaviored classifier owning the operation,
then upon occurrence of a call event (representing the receipt of a request for the invocation of this operation) a resolution
process is performed that determines the method behavior to be invoked, based on the operation and the data values corresponding
to the parameters of the operation transmitted by the request. Otherwise, the call event is placed into
the input pool of the object (see BehavioredClassifier on page 451). If a behavior is triggered by this event, it begins with
performing the resolution process and invoking the so determined method. Then the behavior continues its execution as specified.
Operations specify immediate or triggered effects (see BehavioredClassifier on page 451).
Semantic Variation Points
Resolution specifies how a particular behavior is identified to be executed in response to the invocation of an operation,
using mechanisms such as inheritance. The mechanism by which the behavior to be invoked is determined from an operation and
the transmitted argument data is a semantic variation point. In general, this mechanism may be complicated to include languages
with features such as before-after methods, delegation, etc. In some of these variations, multiple behaviors may be executed
as a result of a single call. The following defines a simple object-oriented process for this semantic variation point.
• Object-oriented resolution When a call request is received, the class of the target object is examined for an owned operation
with matching parameters (see BehavioralFeature
on page 449). If such operation is found, the behavior associated as
method is the result of the resolution. Otherwise the parent classifier is examined for a matching operation, and so on up
the generalization hierarchy until a method is found or the root of the hierarchy is reached. If a class has multiple parents,
all of them are examined for a method. If a method is found in exactly one ancestor class, then that method is the result
of the resolution. If a method is found in more than one ancestor class along different paths, then the model is ill formed
under this semantic variation.
If no method by the resolution process, then it is a semantic variation point what is to happen.