If the lifeline is that of an object, it demonstrates a role. Leaving the instance name blank can represent anonymous and unnamed instances. → Messages, written with horizontal
arrows with the message name written above them, display interaction. Solid arrow heads represent synchronous calls, open arrow heads represent
asynchronous messages, and dashed lines represent reply messages. If a caller sends a synchronous message, it must wait until the message is done, such as invoking a subroutine. If a caller sends an asynchronous message, it can continue processing and need not wait for a response. Asynchronous calls are present in multithreaded applications, event-driven applications, and in
message-oriented middleware. Activation boxes, or
method-call boxes, are opaque rectangles drawn on top of lifelines to represent that processes are being performed in response to the message (ExecutionSpecifications in
UML). Objects calling methods on themselves use messages and add new activation boxes on top of any others to indicate a further level of
processing. If an object is
destroyed (removed from
memory), an X is drawn below the lifeline, and the dashed line ceases to be drawn below it. It should be the result of a message, either from the object itself, or another. A message sent from outside the diagram can be represented by a message originating from a filled-in circle (
found message in UML) or from a border of the sequence diagram (
gate in UML). UML has introduced significant improvements to the capabilities of sequence diagrams. Most of these improvements are based on the idea of
interaction fragments which represent smaller pieces of an enclosing interaction. Multiple interaction fragments are combined to create a variety of
combined fragments, which are then used to model interactions that include parallelism, conditional branches, and optional interactions. == See also ==