Message Properties

To view or edit a message's properties, double-click its diagram symbol or Browser or list entry. The property sheet tabs and fields listed here are those available by default, before any customization of the interface by you or an administrator.

The General tab contains the following properties:

Property

Description

Name/Code/Comment

Identify the object. The name should clearly convey the object's purpose to non-technical users, while the code, which is used for generating code or scripts, may be abbreviated, and should not normally include spaces. You can optionally add a comment to provide more detailed information about the object. By default the code is generated from the name by applying the naming conventions specified in the model options. To decouple name-code synchronization, click to release the = button to the right of the Code field.

Stereotype

Extends the semantics of the object beyond the core UML definition. You can enter a stereotype directly in this field, or add stereotypes to the list by specifying them in an extension file.

Sender

Object the message starts from. Use the tools to the right of the list to create, browse for, or view the properties of the currently selected object.

Receiver

Object the message ends on. Use the tools to the right of the list to create, browse for, or view the properties of the currently selected object.. You can also reverse the direction of the message.

Note: You can right-click a message in the diagram and select Reverse to reverse its direction. You cannot reverse the direction of a Create or Destroy message.

Sequence number

Allows you to manually add a sequence number to the message. It is mainly used in communication diagrams to describe the order of messages, but can also be used in sequence diagrams

Keywords

Provide a way of loosely grouping objects through tagging. To enter multiple keywords, separate them with commas.

Detail tab

The Detail tab includes the following properties:

Property

Description

Action

Specifies the type of message action. You can choose between:
  • Create – the sender object instantiates and initializes the receiver object. A message with a create action is the first message between a sender and a receiver.

  • Destroy – the sender object destroys the receiver object. A large X is displayed on the lifeline of the receiver object. A message with a destroy action is the last message between a sender and a receiver.

  • Self-Destroy – (only available if the control flow property is set to "Return") the sender object warns the receiver object that it is destroying itself. A large X is displayed on the lifeline of the sender object. A message with a self-destroy action is the last message between a sender and a receiver.

Control flow

Specifies the mode in which messages are sent. You can choose between:
  • Asynchronous – the sending object does not wait for a result, it can do something else in parallel. No-wait semantics

  • Procedure Call – Call of a procedure. The sequence is complete before the next sequence resumes. The sender must wait for a response or the end of the activation. Wait semantics

  • Return – Generally associated with a Procedure Call. The Return arrow may be omitted as it is implicit at the end of an activation

  • Undefined – No control flow defined

Operation

Links the message to an operation of a class. If the receiver of a message is an object, and the object has a class, the message, as a dynamic flow of information, invokes an operation. You can therefore link a message to an existing operation of a class but also operations defined on parent classes, or you can create an operation from the Operation list in the message property sheet.

If an operation is linked to a message, you can replace the message name with the name of the method that one object is asking the other to invoke. This process can be very useful during implementation. To display the name of the operation instead of the name of the message, select the Replace by Operation Name display preference in the message category.

You can link a Create message to a Constructor operation of a class if you wish to further detail a relation between a message and an operation. You are not allowed however to link a message with a Return control flow to an operation.

If you change the generalization that exists between classes, the operation that is linked to the message may no longer be available. In this case, the operation is automatically detached from the message. The same occurs when you reverse the message direction, unless the new receiver object has the same class.

Arguments

Arguments of the operation

Return value

Function return value stored in a variable and likely to be used by other functions

Predecessor list

Made of a list of sequence numbers followed by "/ ", the predecessor list defines which messages must be exchanged before the current message could be sent. Example: sequence numbers 1, 2, 4 before 3 = "1,2,4/ 3"

Condition

Condition attached to the message. May be specified by placing Boolean expressions in braces on the diagram. Example: condition for timing: [dialing time < 30 sec]

Begin time

User-defined time alias, used for defining constraints. Example: Begin time = t1, End time = t2, constraint = {t2 - t1 < 30 sec}

End time

User-defined time alias, used for defining constraints.

Support delay

Specifies that the message may have duration. The message symbol may slant downwards.

If this option is not selected, the message is instantaneous, or fast, and the message symbol is horizontal.

You can specify Support delay as a default option in the Model Options dialog box.

Support delay is not available with a recursive message: it is selected and grayed out.

Control Flow

By default, a message has an Undefined control flow.

If you want to make a diagram more readable, you can draw the Return arrow to show the exact time when the action is returned back to the sender. It is an explicit return that results in returning a value to its origin.

In the example below, the explicit Return causes values to be passed back to the original activation.



You can combine message control flows and message actions according to the following table:

Control flow

Symbol

No action

Create

Destroy

Self-Destroy

Asynchronous



Yes

Procedure Call



Yes

Return



Yes

Yes

Undefined



Yes

Note: You can access the Action and Control flow values of a message by right clicking the message symbol in the diagram, and selecting Action/Control flow from the contextual menu.