jueves, 2 de abril de 2015

Diagramas de colaboraciones - Parte 1 de 3



Ahora veremos lo correspondiente a un diagrama que es similar al que vimos en la hora anterior. Este también muestra la colaboración entre los objetos, pero de una forma significativamente diferente del diagrama de secuencras.

En esta hora se tratarán los siguientes temas:
  • Qué es un diagrama de colaboraciones
  • Cómo aplicar un diagrama de colaboraciones
  • Uso de “si” y “mientras”
  • Anidamíento
  • Objetos activos y concurrencia
  • Sincronización
  • Dónde encajan los diagramas de colaboraciones en el UML

Los diagramas de colaboraciones muestran la forma en que los objetos colaboran entre sí, tal como sucede con un diagrama de secuencias. Muestran los objetos junto con los mensajes que se envían entre ellos. Si el diagrama de secuencias hace eso, ¿por qué el UML requeriría otro diagrama?, ¿qué no son lo mismo?, ¿no es una pérdida de tiempo? 

Ambos tipos de diagrama son similares. De hecho, son semánticamenle equivalentes.
Esto significa que representan la misma información. y podrá convenir un diagrama de secuencias en un diagrama de colaboraciones equivalente y viceversa. 

Como se infiere, es útil contar con ambas formas. Los diagramas de secuencias destacan la sucesión de las interacciones. Los diagramas de colaboraciones destacan el contexto y organización general de los objetos que interactúan. He aquí otra forma de encontrar la diferencia: el diagrama de secuencias se organiza de acuerdo al tiempo, y el de colaboración de acuerdo al espacio.


Qué es un diagrama de colaboraciones

Un diagrama de objetos muestra a los objetos como tales y sus relaciones entre si. Un diagrama de colaboraciones es una extensión de uno de objetos. Además de las relaciones entre objetos, el diagrama de colaboraciones muestra los mensajes que se envían los objetos entre sí. Por lo general, evitará la multiplicidad dado que podría ser fuente de confusión.

Para representar un mensaje, dibujará una flecha cerca de la línea de asociación entre dos objetos, esta flecha apunta al objeto receptor. El tipo de mensaje se mostrará en una etiqueta cerca de la flecha; por lo general, el mensaje le indicará al objeto receptor que ejecute una de sus operaciones. El mensaje finalizará con un par de paréntesis, dentro de los cuales colocará los parámetros (en caso de haber alguno) con los que funcionará la operación.

Mencioné que podrá convenir cualquier diagrama de secuencias en diagrama de colaboraciones y viceversa. Por medio de esto podrá representar la información de secuencia en un diagrama de colaboraciones. Para ello, agregará una cifra a la etiqueta de un mensaje, misma que corresponderá a la secuencia propia del mensaje. La cifra y el mensaje se separan mediante dos puntos (z).

La siguiente imagen le muestra la simbología del diagrama de colaboraciones.

Aprovechemos la equivalencia de ambos tipos de diagramas. Para desarrollar los conceptos de los diagramas de colaboraciones volveremos a ver los ejemplos que revisamos la hora anterior. Conforme lo haga, verá más conceptos.

Simbología del diagrama de colaboraciones.

La GUI

Este ejemplo es el caso más directo. Un actor inicia la secuencia de interacción al oprimir una tecla, con lo que los mensajes ocurrirán de manera secuencial. Tal secuencia (a partir de la hora anterior) es:

1. La GUI notifica a! 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.

La siguiente imagen muestra la forma de representar esta secuencia de interacciones en un diagrama de colaboraciones. El diagrama muestra la figura agregada que representa al usuario que inicia la secuencia, aunque esta figura no es parte de la simbología de este diagrama.

Un diagrama de colaboraciones para el ejemplo de la GUI.

Cambios de estado

Puede mostrar los cambios de estado en un objeto en un diagrama de colaboraciones.
En el rectángulo del objeto indique su estado. Agregue otro rectángulo al diagrama que haga las veces del objeto e indique el estado modificado. Conecte a los dos con una línea discontinua y etiquete la línea con un estereotipo «se toma».

La siguiente ilustra un cambio de estado para la GUI, que muestra que el estado de inicialización se convierte en el estado operativo.

Un diagrama de colaboraciones puede incorporar cambios de estado


Espero haber ayudado en algo. Hasta la próxima oportunidad!









No hay comentarios:

Publicar un comentario en la entrada