Conceptos avanzados en un Diagrama de Secuencia

Tiempos de transición

En un ambiente de objetos concurrentes o de demoras en la recepción de mensajes, es útil agregar nombres a los tiempos de salida y llegada de mensajes. Analizando la recepción de una llamada telefónica puede tenerse un diagrama como el siguiente:

Diagrama de secuencia con tiempos de transicion

En este diagrama se tienen tres objetos concurrentes, el que hace la llamada, la central telefónica y el que recibe la llamada. se nombran los tiempos de los mensajes que envía o recibe el caller (a para descolgar, b para el tono de la llamada, c para la marcación, d para el inicio del enrutamiento de la llamada, d' para la finalización del enrutamiento). Estos nombres o tiempos de transición permiten describir restricciones de tiempo ( por ejemplo b-a < 1sec. ) o demoras entre el envío y la recepción (entre d y d').

Condiciones caminos alternativos de ejecución. Concurrencia

En algunos casos sencillos pueden expresarse en un diagrama de secuencia alternativas de ejecución. Estas alternativas pueden representar condiciones en la ejecución o diferentes hilos de ejecución (threads).

Diagrama de secuencia con caminos alternativos

En el diagrama anterior se muestran dos casos. ob1 muestra una condición al enviar un mensaje a ob3 o a ob2, dependiendo de si x>0 o x<0. Estas dos líneas de ejecución se vuelven a unir más adelante, indicando el fin del condicional. Por otra parte ob4 muestra dos posibles operaciones dependiendo de si se siguió la condición x>0 o x<0. Ya que se presentan en el mismo instante de tiempo, se requiere dividir la linea del objeto en dos (esta misma representación se utiliza para el caso de dos hilos de ejecución).

Destrucción de un objeto

Se representa como una X al final de la línea de ejecución del objeto. Por ejemplo, en el diagrama anterior se muestra el final de ob2 y de ob1.

Métodos recursivos

Un ejemplo de un método recursivo es el método more en ob1. Es un rectángulo un poco salido de la activación principal y con líneas de llamado de mensajes, que indican la entrada y salida de la recursión.



Pablo Figueroa
Versión 1.1