El Diagrama de Colaboración presenta una
alternativa al diagrama de secuencia para modelar interacciones entre objetos
en el sistema. Mientras que el diagrama de secuencia se centra en la secuencia
cronológica del escenario que estamos modelando, el diagrama de colaboración se
centra en estudiar todos los efectos de un objeto dado durante un escenario.
Los objetos se conectan por medio de
enlaces, cada enlace representa una instancia de una asociación entre las
clases implicadas. El enlace muestra los mensajes enviados entre los objetos,
el tipo de mensaje (sincrónico, asincrónico, simple, blanking, y 'time-out'), y
la visibilidad de un objeto con respecto a los otros.
Un uso de un diagrama de colaboración es
mostrar la implementación de una operación. La comunicación muestra los
parámetros y las variables locales de la operación, así como asociaciones más
permanentes. Cuando se implementa el comportamiento, la secuencia de los
mensajes corresponde a la estructura de llamadas anidadas y el paso de señales
del programa.
Un diagrama de secuencia muestra
secuencias en el tiempo como dimensión geométrica, pero las relaciones son
implícitas. Un diagrama de comunicación muestra relaciones entre roles
geométricamente y relaciona los mensajes con las relaciones, pero las
secuencias temporales están menos claras.
Es útil marcar los objetos en cuatro
grupos: los que existen con la interacción entera; los creados durante la
interacción (restricción {new}); los destruidos durante la interacción
(restricción {destroyed}); y los que se crean y se destruyen durante la
interacción (restricción {transient}).
Aunque las comunicaciones muestran
directamente la implementación de una operación, pueden también mostrar la
realización de una clase entera. En este uso, muestran el contexto necesario
para implementar todas las operaciones de una clase. Esto permite que el
modelador vea los roles múltiples que los objetos pueden desempeñar en varias
operaciones.
Ejemplo de diagrama de colaboración:
Los diagramas colaboración tienen dos
características que los distinguen de los diagramas de secuencia, el primero
para indicar cómo se enlaza un objeto a otro, se puede asociar un objeto al
extremo más lejano de un enlace con la palabra local que indica que el objeto
designado es local al emisor. En segundo lugar está el número de secuencia,
para indicar la ordenación temporal de los mensajes, se precede de un número
iniciando con el numeral 1, que se incrementa secuencialmente por cada nuevo
mensaje en el flujo de control.
Diagramas de
secuencia
Un diagrama de Secuencia muestra una
interacción ordenada según la secuencia temporal de eventos. En particular,
muestra los objetos participantes en la interacción y los mensajes que
intercambian ordenados según su secuencia en el tiempo. El eje vertical
representa el tiempo, y en el eje horizontal se colocan los objetos y actores
participantes en la interacción, sin un orden prefijado. Cada objeto o actor
tiene una línea vertical, y los mensajes se representan mediante flechas entre
los distintos objetos. El tiempo fluye de arriba abajo. Se pueden colocar
etiquetas (como restricciones de tiempo, descripciones de acciones, etc.) bien
en el margen izquierdo o bien junto a las transiciones o activaciones a las que
se refieren.
Los diagramas de secuencia tienen 2
características que los distinguen de los diagramas de colaboración, en primer
lugar está la línea de vida de un objeto que es la línea discontinua vertical
que representa la existencia de un objeto a lo largo de un periodo de tiempo. La
mayoría de los objetos que aparecen en un diagrama de secuencia existirán
mientras dure la interacción, los objetos se colocan en la parte superior del
diagrama con sus líneas de vida dibujadas de arriba hasta abajo. Pueden crearse
objetos durante la interacción, sus líneas de vida comienzan con la recepción
de mensajes estereotipado como créate. Los objetos pueden destruirse durante la
interacción, sus líneas de vida acaban con la recepción del mensaje
estereotipado como destroy, además, se muestra la señal visual de una gran X
que marca el final de sus vidas.
Entre las ventajas que tiene la
elaboración de un diagrama de secuencias están las siguientes:
Elementos
de un Diagrama de Secuencias
Rol de la Clase
El rol de la clase describe la manera en
que un objeto se va a comportar en el contexto. No se listan los atributos del
objeto.
Objeto de una clase
Activación
Los cuadros de activación representan
el tiempo que un objeto necesita para completar una tarea.
Activación de una clase
Mensajes:
Los mensajes son flechas que representan comunicaciones
entre objetos. Las medias flechas
representan mensajes asincrónicos.
Los mensajes asincrónicos son enviados desde un objeto que
no va a esperar una respuesta del receptor para continuar con sus tareas.
Líneas de Vida
Las líneas de vida son
verticales y en línea de puntos, ellas indican la presencia del objeto durante
el tiempo.
Destrucción de
Objetos
Los objetos pueden ser
eliminados tempranamente usando una flecha etiquetada
“<<destruir>>” que apunta a una X.
Una repetición o loop en
un diagrama de secuencias, es representado como un rectángulo. La
condición para abandonar el loop se coloca en la parte inferior entre
corchetes [ ].
El diagrama de
secuencia muy similar al diagrama de colaboración con la diferencia que en este
diagrama de colaboración no muestra los intervalos de tiempos.
En este ejercicio se interpreta de la siguiente manera, al llegar el proveedor
tiene interacción con la encargada para que lo registre, a su vez la encargada
los guarda en la base de datos y le devuelve un mensaje con los datos
registrados con su código, luego el proveedor le ofrece los productos a la
empresa mediante el catálogo para verificar los productos necesitados, seguido
de eso la encargada gestiona el pedido con si respectivo mensaje de
verificación de productos.
Para el cliente es casi
lo mismo, el cliente tiene interacción con la encargada para que lo registre, a
su vez el guarda en la base de datos y le devuelve un mensaje con los datos ya
registrados con su código. Así mismo el cliente tiene interacción con el
catálogo para ver los productos solicitados para la compra de productos
también la encargada gestiona el pedido del cliente y le dice la disponibilidad
de los productos en un mensaje.
Para
aprender más del diagrama de secuencia y colaboración: