Archyno
UMLDiagramas de comportamiento

Diagramas de tiempos UML

El estado trazado contra un eje de tiempo real. El diagrama de interacción al que recurrir cuando el plazo, la duración o el solapamiento son todo el asunto.

6 min de lecturaUML 2.5.128 de 35

La respuesta corta

  • El eje vertical de un diagrama de secuencia es la secuencia, no el tiempo. El de uno de tiempos es real y escalado: solo uno de los dos puede decir en menos de 200 milisegundos.
  • Recurre a él cuando el asunto real sea un plazo, una duración o un solapamiento entre participantes: embebidos, protocolos, cualquier cosa con un tiempo de espera.
  • Una restricción de duración acota un intervalo; una de tiempo acota un instante. Ambas se escriben entre llaves en el diagrama.
  • La línea de vida en onda se lee mejor con dos o tres estados; la forma compacta de línea de estado escala más.
Un diagrama de tiempos UML. La línea de vida Payment está Pendiente hasta los 200 milisegundos, Autorizado hasta los 500, y luego Capturado. La línea de vida Card gateway está Inactiva hasta los 200, Procesando hasta los 450, y luego Inactiva de nuevo. Las marcas del eje muestran la petición de autorización a los 200 milisegundos y la captura a los 500.
Un pago y la pasarela de tarjeta de la que depende, a lo largo de 800 milisegundos. El eje horizontal es tiempo real y está a escala, que es toda la diferencia con cualquier otro diagrama de interacción.

01Qué muestra#

Un diagrama de tiempos representa el estado de uno o más participantes frente al tiempo. El tiempo corre de izquierda a derecha y, a diferencia de cualquier otro diagrama UML, está a escala. El doble de distancia significa el doble de duración.

Esa única propiedad es la razón de que el diagrama exista. Un diagrama de secuencia te dice que un mensaje ocurre después de otro y no dice nada sobre cuánto tarda nada. Si tu pregunta es «¿cabe esto en el presupuesto de 300 ms?» o «¿sigue ocupada la pasarela cuando salta el reintento?», ninguna cantidad de diagrama de secuencia la responderá.

Cada línea de vida recibe una banda. Sus estados posibles se listan a la izquierda de esa banda, y una línea va escalonando entre ellos, saltando en vertical en cada cambio y manteniéndose plana entre medias. Leerlo es la misma destreza que leer una traza de analizador lógico o una gráfica de estado de servidor.

02La notación#

ElementoNotaciónQué significa
Línea de vidauna banda horizontalUn participante. Su nombre va a la izquierda; sus estados son las filas de la banda.
Cronograma de estadouna línea escalonadaEl valor sostenido en el tiempo. Los saltos verticales son transiciones; los tramos planos son el estado que se mantiene.
Eje de tiemporegla a lo largo de la baseTiempo real y proporcional, con unidades. Es lo que lo convierte en diagrama de tiempos.
Restricción de duración{0..300ms} entre dos marcasCuánto puede durar un tramo. El requisito, dibujado.
Restricción de tiempo{t..t+50ms} en un puntoCuándo debe ocurrir un evento, en relación con otro.
Mensajeflecha entre bandasUna comunicación de una línea de vida a otra, dibujada en el instante en que ocurre.

03Las restricciones son la carga#

Un diagrama de tiempos sin restricciones es la imagen de lo que pasó una vez. Un diagrama de tiempos con ellas es una especificación, y esa es la versión que merece dibujarse.

Una restricción de duración abarca dos puntos y declara cuánto puede valer el hueco: {0..300ms} de la petición a la respuesta. Una restricción de tiempo fija un evento a un momento relativo a otro: {t..t+50ms}. Entre las dos expresan casi cualquier requisito de tiempo real que vayas a tener, y lo expresan en una forma contra la que se puede escribir una prueba directamente.

La otra cosa que hay que dibujar es el solapamiento. Dos bandas apiladas en vertical hacen inmediatamente obvio si un participante sigue ocupado cuando otro lo espera libre: la clase de fallo casi invisible en un diagrama de secuencia y obvia aquí.

04Cuándo dibujar uno#

Úsalo cuando

  • Hay un presupuesto de latencia, un tiempo de espera o un plazo que el diseño debe cumplir
  • Sistemas embebidos, protocolos o trabajo cercano al hardware, donde el tiempo es la especificación
  • Diagnosticar una condición de carrera: dos bandas hacen visible el solapamiento
  • Explicar por qué un reintento, un antirrebote o un backoff se comporta como lo hace

Usa otra cosa cuando

  • Importa el orden pero no la duración: usa un diagrama de secuencia
  • Describes estados y los eventos entre ellos, no su tiempo: usa una máquina de estados
  • No hay tiempos medidos ni especificados que dibujar; un diagrama con números inventados es peor que ninguno
  • Más de unas cuatro líneas de vida en la forma trazada

Los diagramas de tiempos son el más raro de los catorce en software de gestión corriente, e imprescindibles en los dominios que los necesitan. Si trabajas en sistemas embebidos, protocolos de red o cualquier cosa con un requisito de tiempo real duro, este es el diagrama en el que tus requisitos se escriben con más naturalidad. Si no, puedes pasar una carrera entera sin dibujar uno, y no pasa nada.

En una línea cada uno

  1. 01El único diagrama UML cuyo eje está a escala: la distancia significa duración.
  2. 02Cada línea de vida es una banda; sus estados son filas, y una línea escalonada muestra el valor sostenido.
  3. 03Las restricciones de duración y de tiempo convierten una grabación en una especificación.
  4. 04Las bandas apiladas hacen el solapamiento - y por tanto las carreras - inmediatamente visible.
  5. 05Úsalo cuando haya un presupuesto o un plazo reales; si no, la herramienta correcta es un diagrama de secuencia.

05Preguntas frecuentes#

¿Para qué sirve un diagrama de tiempos UML?

Para mostrar cómo cambia el estado de un participante contra un eje de tiempo real. Es el diagrama de interacción al que recurrir cuando el asunto real es un plazo, una duración o un solapamiento entre participantes: sistemas embebidos, protocolos y cualquier cosa con un tiempo de espera dentro.

¿Qué diferencia hay entre un diagrama de tiempos y uno de secuencia?

Un diagrama de secuencia ordena mensajes pero no dice nada de cuánto tarda algo, porque su eje vertical es la secuencia y no el tiempo. Uno de tiempos tiene un eje temporal real y escalado, así que puede expresar en menos de 200 milisegundos y mostrar los estados de dos participantes solapándose.

¿Qué es una restricción de duración?

Un intervalo marcado en el diagrama con una restricción sobre su longitud, escrita entre llaves. Una restricción de tiempo es la misma idea aplicada a un instante en vez de a un tramo, como este evento debe ocurrir antes de que pasen cinco segundos.

¿Cuáles son las dos formas de una línea de vida?

La forma de línea de valores dibuja los estados como una onda que cruza entre bandas horizontales. La forma compacta de línea de estado escribe los nombres de estado en una sola banda con las transiciones entre ellos. La onda se lee mejor con dos o tres estados; la compacta escala mejor.

En esta serie

Lecturas relacionadas

Todos los artículos