Hola,
Según lo que aprendí de Uml, elaboras diferentes diagramas, el primero de ellos es el de casos de uso. Le sigue el modelo conceptual que es la antesala del diagrama de clases. Cuando depuras cada caso de uso, surge un diagrama de secuencia . Esto es, un diagrama de secuencia para cada diferente escenario del caso de uso. Como reconocemos que un caso de uso da origen a escenarios diferentes? Pues si un caso de uso modifica su comportamiento de acuerdo a distintos usuarios, entonces son escenarios diferentes.
Ahora, cuando tienes un diagrama de secuencia, cada una de las flechitas, constituyen los contratos. Por cada contrato, surge una responsabilidad (o varias) que el software debe cumplir. Es así como surge, para cada contrato, un diagrama de colaboración.
Un diagrama de colaboración representa el comportamiento de los objetos en tiempo de ejecución, por medio de paso de mensajes, para así cumplir con un contrato específico. Sirven para ir depurando el diagrama de clases, porque irán surgiendo métodos nuevos y tal vez atributos necesarios, que antes no los vislumbrabas. Es importante que al elaborar el diagrama de colaboración te guíes por los principios de bajo acoplamiento y máxima cohesión.
Para mayor información, visita este enlace, aquí lo explican bien.
http://www.dcc.uchile.cl/~luguerre/cc40b/clase8.html
Espero haberte ayudado.