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

Diagrama de Colaboración que describe un patron

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:

Ejemplo de un contexto

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.

Ejemplo de objetos activos

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