I collaboration diagrams rappresentano un tipo di diagramma molto simile a quello appena visto nei sequence diagram. Infatti, essi mostrano come interagiscono gli oggetti tra di loro, mettendo in risalto gli oggetti attraverso i quali viaggiano i messaggi che gli stessi oggetti si scambiano tra di loro. Sorge allora spontanea la domanda: Ma se già i sequence diagrams realizzano tali operazioni, perché l'UML ha bisogno di un altro diagramma dello stesso tipo? Non svolgono le stesse funzioni?
In effetti, il sequence diagram e il collaboration diagram sono simili. In particolare, si può dire che essi sono semanticamente equivalenti. Ovvero, i due diagrammi presentano la stessa informazione ed è facile convertire un sequence diagram in un collaboration diagram e viceversa.
La principale distinzione tra i due diagrammi, è che il sequence diagram è costruito seguendo come filo conduttore il tempo mentre il collaboration diagram si basa sullo spazio.
Un collaboration diagram è un'estensione di un diagramma di oggetti. In più, oltre alle associazioni tra gli oggetti, esso consente di mostrare i messaggi che essi inviano per interagire tra di loro.
I messaggi tra gli oggetti sono rappresentati con delle frecce che puntano all'oggetto che riceve il messaggio stesso. Tali frecce sono posizionate vicino la linea di associazione tra gli oggetti. Una label vicino la freccia indica la specifica di un messaggio.
Un messaggio, tipicamente, richiede all'oggetto ricevente di eseguire una delle sue operazioni. Una coppia di parentesi terminano il messaggio; al loro interno si trovano gli eventuali parametri con cui le operazioni lavorano.
Come detto, i collaboration diagrams possono essere convertiti in sequence diagrams e viceversa. Per far ciò, però, si deve tenere presente che è necessario aggiungere un numero alla label di un messaggio che corrisponda all'ordine in cui il messaggio appare nella sequenza. Il segno dei due punti separa il numero dal messaggio.