Previous UML Classes Table of Contents UML Packages Next

13.3.22 Operation




    Operation (from Kernel , Interfaces ) on page 105 (merge increment)


   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.