Previous UML Classes Table of Contents UML Packages Next


11.3.9 CallBehaviorAction

BasicActions


*Generalizations

   

    CallAction (from BasicActions ) on page 254

*Description

Issue 8736 - reword for clarity about synchronous vs asynchronous effects

   CallBehaviorAction is a call action that invokes a behavior directly rather than invoking a behavioral feature that, in turn, results in the invocation of that behavior. The argument values of the action are available to the execution of the invoked behavior. For synchronous calls the execution of the call behavior action waits until the execution of the invoked behavior completes and a result is returned on its output pin. The action completes immediately without a result, if the call is asynchronous.

*Attributes

   No additional attributes

*Associations

   • behavior : Behavior [1..1] The invoked behavior. It must be capable of accepting and returning control.

*Constraints

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

   [2] The number of result pins and the number of parameters of the behavior 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 parameter of the behavior.

*Semantics

   [1] When all the prerequisites of the action execution are satisfied, CallBehaviorAction invokes its specified behavior with the values on the input pins as arguments. When the behavior is finished, the output values are put on the output pins. Each parameter of the behavior of the action provides output to a pin or takes input from one. No other implementation specifics are implied, such as call stacks, and so on. See Pin (from BasicActions ) on page 275.

   [2] If the call is asynchronous, the action completes immediately. Execution of the invoked behavior proceeds without any further dependency on the execution of the behavior containing the invoking action. Once the invocation of the behavior has been initiated, execution of the asynchronous action is complete.

   [3] An asynchronous invocation completes when its behavior is started, or is at least ensured to be started at some point. Any return or out values from the invoked behavior are not passed back to the containing behavior. When an asynchronous invocation is done, the containing behavior continues regardless of the status of the invoked behavior. For example, the containing behavior may complete even though the invoked behavior is not finished.

   [4] If the call is synchronous, execution of the calling action is blocked until it receives a reply from the invoked behavior. The reply includes values for any return, out, or inout parameters.

   [5] If the call is synchronous, when the execution of the invoked behavior completes, the result values are placed on the result pins of the call behavior action, and the execution of the action is complete (StructuredActions , ExtraStructuredActivities ). If the execution of the invoked behavior yields an exception, the exception is transmitted to the call behavior action to begin search for a handler. See RaiseExceptionAction .

*Notation

   See specialization of CallBehaviorAction (as specialized) on page 362.

*Presentation Options

   See specialization of CallBehaviorAction (as specialized) on page 362.

   Invokes a behavior directly without the need for a behavioral feature.

*Changes from previous UML

   Same as UML 1.5