Conceptos avanzados en un Diagrama de Colaboración
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. Este diagrama contiene todos los elementos citados de
un diagrama de colaboración, dejándo libres posiblemente
los tipos exactos de algunos objetos o con nombres genéricos para
los mensajes. Una "instanciación" del patrón se representa
como una elipse unida mediante flechas puenteadas 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.
Por ejemplo, una instanciación del patrón de observador puede
verse como
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 solo los detalles relevantes de las
clases u objetos que contiene, para resaltar su utilidad. Un ejemplo es
la definición del siguiente tipo:
Se representa como un contexto un tipo Registro de Dinero y se muestran
los detalles relevantes de Producto, Item y Venta para este tipo. Las relaciones
de las clases con otras no visibles dentro del contexto pueden omitirse
o conectarse al borde del contexto.
Objeto activo
Un objeto activo es el que contiene su propio flujo de control, a diferencia
de un objeto pasivo que encapsula datos y solo reacciona al enviarle mensajes.
Un objeto activo se representa con un rectángulo de bordes gruesos.
Puede contener otros objetos pasivos o activos. Se presenta a continuación
un ejemplo en el contexto de una producción en línea robotizada.
Se tiene un ente administrador, un robot y un horno (tres objetos activos)
que interactúan para desarrollar su tarea.
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 trheads de ejecución se denotan con las letras A
y B antes del número de orden del mensaje. La sincronización
entre threads se muestra mediante un '/ ' y el nuevo númoer
de orden. Por ejemplo en A2, B2 / 2: completed( job ).
Pablo
Figueroa
Versión 1.1