lunes, 27 de abril de 2015

UML Capítulo 16: La Vista de Interacción

¡Hola de nuevo internauta!,

      En la entrada de hoy veremos la vista de interacción y sus diagramas de secuencia. Esta vista permite mostrar a las personas que correspondan la secuencia de intervalos de los mensajes que se envían los distintos objetos entre sí para poder interaccionar unos con otros y hacer que el sistema funcione.

Así que sin más vamos al meollo del asunto.
1. ¿Qué es una interacción?

Se conoce como interacción a un conjunto de mensajes que son intercambiados por objetos a través de conectores modelando de este modo la ejecución de un caso de uso u otra entidad de comportamiento. Dichos mensajes se muestran en los diagramas de secuencia y de comunicación y son unidireccionales.

2. Diagrama de secuencia

Los diagramas de secuencia se usan para explicar cómo interaccionan los objetos entre sí. Dependiendo de lo que queramos documentar podemos usar alguno o todos los diagramas de secuencia existentes:

  • Diagrama de secuencia.
  • Diagrama de secuencia con especificación de ejecución.
  • Diagrama de secuencia con estructuras de control.
1. Diagrama de secuencia.

Se explica la interacción entre objetos a través de mensajes en un intervalo de tiempo no especificado.

Secuencia de Diagrama Basico
Ejemplo de Diagrama de Secuencia
En este ejemplo podemos ver como se relacionan los distintos objetos que forman el sistema realizarCompra mediante mensajes. Creo que el diagrama es bastante auto-explicativo, pero en caso de duda, por favor hacérmelo saber.

2. Diagrama de secuencia con especificación de ejecución.

En este tipo de diagrama de secuencia se incluye el tiempo de ejecución de los procesos anidados que usan los objetos para el envío de sus mensajes.

Ejemplo Diagrama de Secuencia con Especificación de Ejecución
Ejemplo Diagrama de Secuencia con Especificación de Ejecución


El anterior diagrma vemos que es parecido a un diagrama de secuencia normal pero vemos unas sutiles diferencias:
  • Los objetos (o roles) tienen su propia especificación de flujo (representadas con las "columnas" debajo de los objetos. Vemos que en el objeto :BBDDProductos posee dos especificaciones, una perteneciente a su vida total, y otra más pequeña, que pertenece a un procedimiento anidado. Lo cual representa una ejecución distinta en el tiempo.
  • Las líneas de vida (las columnas de líneas discontinuas) representan a nivel gráfico la vida total del sistema indicando sobre la cual se indica la especificación de flujo que tiene el propio objeto.
  • Las flechas con líneas discontinuas representan llamadas asíncronas, y aquellas con punta de flecha triangular rellena y línea contínua representan llamadas síncronas.
  • La cruz grande representa la destrucción de todos los objetos del sistema debido a la finalización del mismo.
Podemos observar así que se especifica la llamada y envío de mensajes en periodos de tiempo distintos.

3. Diagrama de secuencia con construcciones estructuradas de control
 En este tipo de diagramas no sólo se indica la ejecución en el tiempo, sino también las estructuras de control usadas en el mismo. Las estructuras de control se diferencian entre sí por el uso de los siguientes fragmentos combinados:

Ejemplo Diagrama de Secuencia con Estructuras de Control
Ejemplo Diagrama de Secuencia con Estructuras de Control


[Atención]: El siguiente documento contiene los distintos fragmentos combinados que pueden usarse.

3. Diagrama de comunicación

En este tipo de diagrama sólo se modelan los objetos y enlaces involucrados en la interacción ignorando el resto. Cada mensaje tiene:
  • Una secuencia que indica su orden.
  • Una condición si procede (no es obligatoria).
  • Lista de argumentos.
  • Nombre del valor de retorno (no es obligatorio).
Ejemplo de Diagrama de Comunicación
Ejemplo de Diagrama de Comunicación
4. Diagrama de secuencia vs diagrama de comunicación

¿Cuándo usar uno u otro?, ¿cuál es mejor?. Son preguntas fáciles de responder. Ateniéndonos a los ejemplos de más arriba deducimos lo siguiente:
  • Los diagramas de secuencia muestran secuencias temporales en las cuales se envían los mensajes pero no se especifican las relaciones entre objetos. Por lo que son más adecuado para una vista donde prime el detalle.
  • Los diagramas de comunicación muestran relaciones entre objetos y el roden de ejecución de sus mensajes. Es algo más abstracto por lo que son útiles para la planificación de los detalles de control.
Podemos ver así que ambos se complementan por lo que hay que usarlos aunque dependiendo de lo que queramos informar mostraremos uno u otro, por ejemplo a un equipo de desarrollo podemos mostrarles el diagrama de secuencia mientras que al equipo de análisis o gestión (o incluso el cliente) podemos mostrarle el diagrama de comunicación.

Y hasta aquí la entrada de hoy que nos ha quedado un poco larga. Si tenéis alguna duda indicádmelo en los comentarios por favor.

¡Gracias por leerme!

No hay comentarios:

Publicar un comentario