domingo, 24 de junio de 2012

Diagramas de Colaboración


¿QUÉ ES UN DIAGRAMAS DE COLABORACIÓN?

Los diagramas de colaboración muestran la interacción de un conjunto de objetos en el
espacio. Esta descripción se centra en la  organización estructural de los objetos que  envían y reciben mensajes.
 
Gráficamente, un diagrama de colaboración es un grafo formado por conjunto de  vértices, los objetos, y de arcos, los enlaces, que conectan dichos vértices.
En que consiste un diagrama de colaboración?
Característica:
·         Muestra cómo las instancias específicas de las clases trabajan juntas para conseguir un objetivo común.
·         Implementa las asociaciones del diagrama de clases mediante el paso de mensajes de un objeto a otro. Dicha implementación es llamada "enlace".
Elementos del Diagrama de Colaboración

A continuación se enumeran los 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. Pueden darse varios niveles de subíndices para indicar anidamiento de operaciones. Se pueden utilizar estereotipos para indicar si el objeto que recibe el mensaje es un atributo, un parámetro de un mensaje anterior, si es un objeto local o global.
* 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.
* 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. Este diagrama contiene todos los elementos citados de un diagrama de colaboración, dejando 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 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.
* 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.



Simbología
Para representar un mensaje, dibujara una flecha cerca de la línea de asocia entre dos objetos , esta flecha apunta al objeto receptor.

Cambios de estado
En el rectángulo del objeto indica su estado y puede incorporar cambios de estados.
Varios objetos receptores en una clase
En ocasiones un objeto envía un mensaje a diversos objetos de la misma clase.










El UML representa el resultado de la siguiente manera, devuelve valor, seguido de “:=”, a continuación en el nombre de la operación y las cantidades.



Otro caso con el que puede encontrarse es que un objeto solo puede enviar un mensaje después de que otros mensajes han sido enviados, es decir, el objeto debe “Sincronizar” todos los mensajes en orden debido.
El UML representa la posición con la sintaxis de anteceder una lista de mensajes que se van completando, separado por una coma (,).

Adiciones del panorama


Para hacer un diagrama de colaboración
  • Colocar los objetos que participan en la interacción como los vértices en una gráfica.
  • Interpretar las ligas que conectan a estos objetos como los arcos de la gráfica.
  • Adornar estas ligas con los mensajes que los objetos envían y reciben.
  • Establecer una ruta, para indicar como un objeto es ligado a otro. Podemos unirle un estereotipo al final de una liga.
  • Establecer un número de secuencia, para indicar el orden de tiempo de un mensaje. Éste debe ser único.
Ejemplo de diagrama de colaboraciones
En este tipo de diagramas se muestra una interacción organizada, basándose en los objetos que toman parte en la interacción y los enlaces entre los mismos (en cuanto a la interacción se refiere). A diferencia de los diagramas de secuencia, los diagramas de colaboración muestran las relaciones entre los roles de los objetos. La secuencia de los mensajes y los flujos de ejecución concurrentes deben determinarse explícitamente mediante números de secuencia. Aunque se muestran los mensajes que se envían los objetos entre sí, por lo general se evita la multiplicidad de mensajes dado que podría ser fuente de confusión. En la representación de los mensajes, la flecha que se dibuja cerca de la línea de asociación entre dos objetos, apunta al objeto receptor. El mensaje finaliza con un par de paréntesis, dentro de los cuales se colocan los parámetros (en caso de haber alguno) con los que funcionará la operación.

Se puede convertir cualquier diagrama de secuencias en diagrama de colaboraciones y viceversa. Por medio de esto se puede representar la información de secuencia en un diagrama de colaboraciones. Para ello se agrega una cifra a la etiqueta de un mensaje, la cual corresponde a la secuencia propia del mensaje. La cifra y el mensaje se separan mediante dos puntos (:).
El ejemplo de diagrama de secuencias mostrado en la Figura 6, se convertirá ahora a un diagrama de colaboraciones, quedando de la siguiente manera:


Las colaboraciones representadas en la Figura 8 se dan de esta manera:
·         1. La GUI notifica al sistema operativo que se oprimió una tecla.
·         2. El sistema operativo le notifica a la CPU.
·         3. El sistema operativo actualiza la GUI.
·         4. La CPU notifica a la tarjeta de vídeo.
·         5. La tarjeta de vídeo envía un mensaje al monitor.
·         6. El monitor presenta el carácter alfanumérico en la pantalla, con lo que se hará evidente al usuario.
Resumen
Un diagrama de colaboraciones es otra forma de presentar la información en un diagrama de secuencias. Ambos tipos de diagramas son semánticamente equivalentes y se recomienda usar ambos cuando construya el modelo de un sistema. El diagrama de secuencias se organiza de acuerdo al tiempo, y el de colaboración de acuerdo al espacio. El diagrama de colaboraciones muestra las asociaciones entre objetos, así como los mensajes que pasan de un objeto a otro. El mensaje se representa con una flecha junto a la línea de asociación, y una etiqueta numerada que muestra el contenido del mensaje. El número representa el turno del mensaje en la secuencia. Las condicionales se representan como antes, mediante la colocación de la instrucción condicional entre corchetes. Para representar un ciclo "mientras", anteceda al corchete izquierdo con un asterisco. Algunos mensajes provienen de otros. El esquema de numeración de las etiquetas representa esto de forma muy similar a los manuales técnicos que muestran sus encabezados y subtítulos: con un sistema de numeración que utiliza puntos decimales para representarlos niveles del anidamiento.
Los diagramas de colaboraciones le permiten modelar varios objetos receptores en una clase, ya sea que los objetos reciban o no los mensajes en un orden específico. También podrá representar objetos activos que controlen el flujo de los mensajes, así como los mensajes que se sincronizan con otros.
Preguntas y respuestas
P; Realmente tengo que incluir a ambos diagramas (el de colaboraciones y el de secuencias) en la mayoría de los modelos UML que genere?
R. Se recomienda hacerlo. Ambos tipos de diagramas podrán estimular diversas ideas de los procesos durante el segmento de análisis en el proceso de desarrollo. El diagrama de colaboraciones clarifica las relaciones entre los objetos debido a que incluye los vínculos entre ellos. El de secuencia se enfoca en la secuencia de las interacciones. A su vez, la organización de su cliente podría incluir personas cuya idea de los procesos podría diferir entre ellos. Cuando tenga que presentar su modelo, un tipo de diagrama podría comprenderse mejor para ciertas personas.



ANEXO
CLICK AQUÍ--------> DIAGRAMA

No hay comentarios:

Publicar un comentario