Earlier this year I had an interesting talk about sequence diagrams. The topic was asynchronous messages and how UML models them. As I find the topic interesting, I thought I will write a bit about that.
So how does UML models asynchronous messages, and how can you tell from a sequence diagram if a message is asynchronous? During the talk there were four signs mention that shows that a call is asynchronous:
- There are dashed arrows showing the return calls.
- The activity boxes are not continuous on the main lifeline
- The arrowhead is not filled for the asynchronous message
- The asynchronous message is not horizontal but diagonal.
My favourite one is the diagonal message, and I first I intended to write only about that, but then I thought better and decided to write bout all four statements above.
I will show you which ones are false statements, and why the last one – which was called simply nonsense – is actually true.