Be sure to visit the Trace Modeler website for updates and UML sequence diagram resources!


All communication in an interaction happens by message passing (i.e. message calls) between targets.

A message call consists of three elements :

  1. the message call itself
  2. the activation in the receiver of the message
  3. the return from the message, optionally with a returned value

Message calls are shown as arrows on the diagram, different arrows are used to distinguish the different kinds of messages. The message return is also shown with an arrow.

UML sequence diagram showing the parts of a message call, created with Trace Modeler

Trace Modeler lays out message arrows and activations automatically based on the positions of sender and receiver and the 'Message spacing', 'Activation width', 'Layout direction' and 'Found call length' properties of a diagram style.

Note that the message return arrow may be hidden depending on the 'Empty returns' diagram style setting. Such hidden arrows will be invisible when the diagram is exported to a graphics file or exported the clipboard, but they will be drawn very faintly on-screen to allow you to interact with them.

Message sender

At any given time in a control flow, only one target can possibly send a message.

Trace Modeler will automatically determine a message's sender (i.e. the target where the message originates) based on the time at which the message is sent. This feature ensures that all interactions are well-formed.

If there is no flow of control at the time the message is sent, it will be displayed as a found message.

Found message call

If a found message has no call or return label, its call and return arrows will be hidden.

A hidden call arrow will be invisible when the diagram is exported to a graphics file or exported to the clipboard, but is drawn very faintly on-screen. This allows you to recognize it as such and interact with it (e.g. select it, edit its text, etc.).

a UML sequence diagram showing several found calls, created with Trace Modeler

Message receiver

The message receiver is the target that receives the message.


Message call label

A call usually has a label to indicate what message is being sent including any parameters that are passed along with it.

Message return label

A return from a message can have a label to record the optional returned value. You might want to hide empty return arrows to reduce the clutter on your diagram.

Message kind

Each message is of a certain kind, it is either a regular message call, a constructor message, a destructor message or a signal.

Naturally, when these kinds of messages are sent to the same target in an interaction there is an inherent ordering

UML sequence diagram showing the different kinds of calls

Trace Modeler will automatically enforce the following constraints


Message delivery

The delivery of a message from its sender to its receiver can be characterized as follows :

(A)synchronous message

Messages can be sent either synchronously or asynchronously and are shown with different arrowheads.

UML sequence diagram of synchronous and asynchronous calls

A synchronous message call blocks the sender until the receiver has finished handling the message.

An asynchronous message call lets the sender continue its work immediately without waiting for the receiver to finish with the message. In effect, this creates a new flow of control in the receiver. In general, showing two simultaneous flows of control on a single sequence diagram is difficult.

(Non-)instantaneous message

Messages can be transmitted either instantaneously or not.

UML sequence diagram showing a instantaneous and non-instantaneous call

Messages are often considered to be instantaneous, i.e. the time it takes to arrive at the receiver is negligible. For example, an in-process method call. Such messages are drawn as a horizontal arrow. To indicate that it takes a certain while before the receiver actually receives a message, a slanted arrow is used.

Related topics