¿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