Diagrama de Colaboración
Integrantes: Gonzalo Colque Ramos
Edson Rios Hamachi
Carla Ortiz Cori
Diagrama de Colaboración
Un diagrama de colaboración muestra como
las instancias trabajan juntas para
conseguir un objetivo en común,
implementa las asociaciones del diagrama
de clases mediante el paso de mensajes
de un objeto a otro.
Introducción
Los diagramas UML de secuencia y de colaboración (llamados
diagramas de interacción) se utilizan para modelar los aspectos
dinámicos de un sistema.
Un diagrama de interacción consiste en un conjunto de objetos
y sus relaciones, incluyendo los mensajes que se pueden enviar
entre ellos.
Los diagramas de secuencia destacan el orden temporal de los
mensajes. Los diagramas de colaboración destacan la organización estructural de los objetos que envían y reciben mensajes.
Ejemplos
Diagrama de secuencia:
destaca el orden temporal
de los mensajes.
objetoA:A
objetoB:B
objetoC:C
<<create>>
m ens aje1( )
objetos
m ens aje2( )
tiempo
m ens aje3( )
m ens aje4( )
objetoA:A
<<destroy>>
1: <<create>>
2: m ens aje1( )
3: <<destroy>>
objetoB:B
objetoC:C
2.1: m ens aje2( )
2.2: m ens aje3( )
Diagrama de colaboración:
destaca la relación estructural
entre los objetos que interactúan
Conceptos
Ambos diagramas (secuencia y colaboración) equivalentes.
Se puede pasar de uno a otro sin pérdida
de información.
En los diagramas de secuencia, la linea de vida de un objeto
es la línea discontinua vertical, que representa la existencia
de un objeto a lo largo de un periodo de tiempo. El foco de
control es un rectángulo delgado que representa el periodo de
tiempo durante el cual un objeto ejecuta una acción.
Conceptos Fundamentales de un
Diagrama de Colaboración

Objeto: Se representa con un rectángulo que contiene el nombre y
la clase del objeto en un formato nombreObjeto : nombreClase.

Enlaces: Un enlace es una instancia de una asociación en un
diagrama de clases. Se representa como una línea continua que
une a dos objetos, acompañada por un número que indica el orden
dentro de la interacción..

Flujo de mensajes: Expresa el envío de un mensaje. Se
representa mediante una flecha dirigida cerca de un enlace.

Marcadores de creación y destrucción de objetos: Puede
mostrarse en la gráfica qué objetos son creados y destruidos,
agregando una restricción con la palabra new o delete
respectivamente.
Conceptos Fundamentales de un
Diagrama de Colaboración

Objeto compuesto: Es una representación alternativa de un objeto
y sus atributos. En esta representación se muestran los objetos
contenidos dentro del rectángulo que representa al objeto que los
contiene.

Patrón de diseño: Un diagrama de colaboración puede especificar
un contrato entre objetos, parte esencial para la descripción de un
patrón de diseño. Una ``instanciación'' del patrón se representa
como una elipse unida mediante flechas punteadas a los objetos o
clases que participan realmente en el patrón. Estas flechas pueden
tener roles, indicando cuál es el papel de cada elemento dentro del
patrón.
Conceptos Fundamentales de un
Diagrama de Colaboración

Contexto: Un contexto es una vista de uno o más elementos dentro
del modelo que colaboran en el desarrollo de una acción. Se usa
para separar los demás elementos en el modelo de este problema
en particular y darle énfasis. Puede mostrar sólo los detalles
relevantes de las clases u objetos que contiene, para resaltar su
utilidad.

Objeto activo: Un objeto activo es el que contiene su propio flujo
de control, a diferencia de un objeto pasivo que encapsula datos y
sólo reacciona al enviarle mensajes. Un objeto activo se representa
con un rectángulo de bordes gruesos. Puede contener otros objetos
pasivos o activos.
Usos
Un uso de un diagrama de comunicació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.
Tipos
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}).
Mensajes
Los mensajes se muestran como flechas etiquetadas unidas a los
enlaces. Cada mensaje tiene un número de secuencia, una lista
opcional de mensajes precedentes, una condición opcional de
guarda, un nombre y una lista de argumentos y un nombre de valor
de retorno opcional.
Flujos


Flujo "become“ se dibuja como una flecha de línea discontinua con
el estereotipo "become" y puede ser etiquetado con un número de
serie para mostrar
Un flujo de conversión también se utiliza para mostrar la migración
de un objeto a partir de una localización a otra distinta para otro
lugar.
Notación
Los diagramas de colaboración explican gráficamente
las interacciones entre las instancias del modelo (objetos).
Por ejemplo:
Notación
Secuencia de los mensajes en un diagrama de colaboración:
Los mensajes entre objetos pasivos se denotan mediante una flecha
completa, mientras que los mensajes entre objetos activos se denotan
con una media flecha. Los hilos de ejecución se denotan con las letras
A y B antes del número de orden del mensaje.
Ejemplo 1
Ejemplo: Se quiere modelar una llamada a través de una
central telefónica.
Para esto se tienen cuatro objetos involucrados: dos interlocutores
(s y r), una central y una conversación. La secuencia empieza
cuando un interlocutor envía un mensaje a la central al descolgar
el auricular. La central da el tono de llamada, y el interlocutor marca
el número al que desea llamar. El tiempo de marcado debe ser
menor que 30 segundos.
Ejemplo
s:Interlocutor
:Central
r:Interlocutor
descolgarAuricular( )
{marcando.tiempoEjecucion < 30 segs}
darTonoDeLlamada( )
*marcarDigito( )
marcando
enrutarLlamadas(s,n)
<<create>>
c:Conversación
llamar( )
descolgarAuricular( )
conectar(r,s)
conectar(r)
conectar(s)
Los interlocutopres r y s pueden
intercambiar información después
de conectarse.
Ejemplo 2
Ejemplo: Matricular un nuevo estudiante en la universidad.
Hay cuatro objetos involucrados: un encargado de matrícula,
un estudiante, un curso y la universidad. La acción comienza
cuando el encargado de matrícula crea un objeto estudiante,
lo añade a la universidad, y le pide al objeto estudiante que
se matricule. El objeto estudiante obtiene (de sí mismo) su
plan de estudio, e identifica los cursos que quiere matricular.
Ejemplo
2: agregarEstudiante(s)
r:EncargadoMatricula
1: <<create>>
3: matricular( )
:Universidad
3.1: obtenerPlanEstudios( )
s:Estudiante
matriculado = False
3.2: agregar(s)
s:Estudiante
3.4: <<become>>
3.3: agregar(s)
c1:Curso
{asociación}
c2:Curso
{asociación}
matriculado = True
Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.
Caso de uso: Comprar productos
Actores:
Cliente, cajero
Tipo:
Primario
Descripción: Un Cliente llega a la caja registradora con los artículos que
va a comprar. El Cajero registra los artículos y cobra el importe.
Al terminar la operación, el Cliente se marcha con los productos.
Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.
Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.
Def.: Un evento es una acción externa de entrada, que un actor produce
en el sistema. En el ejemplo anterior, se tienen tres eventos: pasarProducto,
terminarVenta y efectuarPago. Una vez que se identifican los eventos, se
registran en la entidad que corresponda. Por ejemplo:
Uso de diagramas
Ejemplo: caso de uso para compra de productos en un supermercado.
Para cada evento que se produce en el sistema, se debe hacer un
diagrama de colaboración. Ejemplo:
Descargar

Diagrama de Colaboración