El diagrama mostrado en la portada de este artículo podría ser identificado como un diagrama de colaboración; sin embargo, es un diagrama de comunicación.
Actualmente, me he dado con la sorpresa de la existencia de un "Diagrama de Colaboración" en UML. Y créanme , dicho diagrama no está especificado en la versión actual de UML (2.5). Sin embargo, me parece que los diagramas de colaboración son usados e identificados por profesionales relacionados a la Ingeniería de Software, Ingeniería de Sistemas y relacionados. Creo que la confusión proviene de versiones antiguas de UML en la cual se definía un diagrama de colaboración (Aunque no estoy realmente seguro de eso); y al parecer, se sigue enseñando los diagramas de comunicación pero cambiándole el nombre a diagrama de colaboración, algo que realmente es desconcertante.
En UML, los diagramas están divididos en diagramas de estructura y comportamiento. Los diagramas de estructura representan los elementos de un sistema y sus relaciones, mientras que los de comportamiento representan las relaciones de los elementos del sistema a través de acciones específicas.
Taxonímia de diagramas de estructura y comportamiento. Adaptado de : OMG Unified Modeling Language TM (OMG UML) - v2.5
Como se podrán dar cuenta, en la taxonomía de diagramas de UML, no existe un diagrama de colaboración. Sin embargo, las colaboraciones se encuentran definidas dentro de los clasificadores de estructura, en pocas palabras permiten la descripción de la estructura del sistema. Una colaboración, se representa como un óvalo con líneas punteadas y en su interior se representan los roles y la relación necesaria entre los roles para cumplir la colaboración. En el siguiente gráfico se puede visualizar un ejemplo básico de colaboración:
El propósito de una colaboración es explicar como los elementos de comunicación de un sistema trabajan colectivamente para completar una tarea específica o conjunto de tareas sin necesidad de incorporar detalles relevantes para explicarlo (OMG 2015). Para entender mejor lo antes dicho, una colaboración permite representar los roles y las relaciones entre los roles que son necesarios para cumplir una tarea o conjunto de tareas. Por ejemplo, en la colaboración venta, es necesario contar con 2 roles para poder realizarla, un Comprador y un Vendedor:
La colaboración Vender, define que deben haber 2 roles, el Vendedor que debe tener los atributos nombres y apellidos, y el Comprador que debe tener los atributos Nombres, Apellidos y Código. Como podrán notar, esta colaboración sólo define un patrón (abstracción), ya que define los roles necesarios para una venta, pero no representa una venta realizada.
Finalmente, estas colaboraciones son representadas en un diagrama de estructura compuesta.
Fuentes:
OMG (2015). OMG Unified Modeling Language TM (OMG UML) Version 2.5