Previous UML Classes Table of Contents UML Packages Next


11.3.10 CallOperationAction

BasicActions


*Generalizations

   

    CallAction (from BasicActions ) on page 254

*Description

   CallOperationAction is an action that transmits an operation call request to the target object, where it may cause the invocation of associated behavior. The argument values of the action are available to the execution of the invoked behavior. If the action is marked synchronous, the execution of the call operation action waits until the execution of the invoked behavior completes and a reply transmission is returned to the caller; otherwise execution of the action is complete when the invocation of the operation is established and the execution of the invoked operation proceeds concurrently with the execution of the calling behavior. Any values returned as part of the reply transmission are put on the result output pins of the call operation action. Upon receipt of the reply transmission, execution of the call operation action is complete.

*Attributes

   No additional attributes

*Associations

• operation: Operation [1] The operation to be invoked by the action execution.

Issue 8154 - add subsets constraint

• target: InputPin [1] The target object to which the request is sent. The classifier of the target object is used to dynamically determine a behavior to invoke. This object constitutes the context of the execution of the operation. {Subsets Action::input}

*Constraints

   [1] The number of argument pins and the number of owned parameters of the operation of type in and in-out must be equal.

   [2] The number of result pins and the number of owned parameters of the operation of type return, out, and in-out must be equal.

   [3] The type, ordering, and multiplicity of an argument or result pin is derived from the corresponding owned parameter of the operation.

   [4] The type of the target pin must be the same as the type that owns the operation.

*Semantics

   The inputs to the action determine the target object and additional actual arguments of the call.

   [1] When all the prerequisites of the action execution are satisfied, information comprising the operation and the argument pin values of the action execution is created and transmitted to the target object. The target objects may be local or remote. The manner of transmitting the call, the amount of time required to transmit it, the order in which the transmissions reach the various target objects, and the path for reaching the target objects are undefined.

   [2] When a call arrives at a target object, it may invoke a behavior in the target object. The effect of receiving such call is specified in Chapter 13, Common Behaviors. Such effects include executing activities and firing state machine transitions.

   [3] If the call is synchronous, when the execution of the invoked behavior completes, its return results are transmitted back as a reply to the calling action execution. The manner of transmitting the reply, the time required for transmission, the representation of the reply transmission, and the transmission path are unspecified. If the execution of the invoked behavior yields an exception, the exception is transmitted to the caller where it is reraised as an exception in the execution of the calling action. Possible exception types may be specified by attaching them to the called Operation using the raisedException association.

   [4] If the call is asynchronous, the caller proceeds immediately and the execution of the call operation action is complete. Any return or out values from the invoked operation are not passed back to the containing behavior. If the call is synchronous, the caller is blocked from further execution until it receives a reply from the invoked behavior.

   [5] When the reply transmission arrives at the invoking action execution, the return result values are placed on the result pins of the call operation action, and the execution of the action is complete.

*Semantic Variation Points

   The mechanism for determining the method to be invoked as a result of a call operation is unspecified.

*Notation

   See CallOperationAction (as specialized) on page 364

*Presentation Options

   See CallOperationAction (as specialized) on page 364

   Calls an operation on a specified target object.

*Changes from previous UML

   Same as UML 1.5.