Buena vida
Slide # 2
Slide # 3

Diagrama de interacción





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.


Loops

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 [ ].


Ejemplo de diagrama de secuencia:





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: