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.
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#
| Elemento | Notación | Qué significa |
|---|---|---|
| Línea de vida | una banda horizontal | Un participante. Su nombre va a la izquierda; sus estados son las filas de la banda. |
| Cronograma de estado | una línea escalonada | El valor sostenido en el tiempo. Los saltos verticales son transiciones; los tramos planos son el estado que se mantiene. |
| Eje de tiempo | regla a lo largo de la base | Tiempo real y proporcional, con unidades. Es lo que lo convierte en diagrama de tiempos. |
| Restricción de duración | {0..300ms} entre dos marcas | Cuánto puede durar un tramo. El requisito, dibujado. |
| Restricción de tiempo | {t..t+50ms} en un punto | Cuándo debe ocurrir un evento, en relación con otro. |
| Mensaje | flecha entre bandas | Una 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
- 01El único diagrama UML cuyo eje está a escala: la distancia significa duración.
- 02Cada línea de vida es una banda; sus estados son filas, y una línea escalonada muestra el valor sostenido.
- 03Las restricciones de duración y de tiempo convierten una grabación en una especificación.
- 04Las bandas apiladas hacen el solapamiento - y por tanto las carreras - inmediatamente visible.
- 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
- 01¿Qué es UML?
- 02Símbolos UML
- 03Elegir un diagrama
- 04Diagramas de clases
- 05Ejemplos de diagramas de clases
- 06Cómo dibujar un diagrama de clases
- 07Símbolos del diagrama de clases
- 08Diagramas de secuencia
- 09Ejemplos de diagramas de secuencia
- 10Cómo dibujar un diagrama de secuencia
- 11Diagramas de casos de uso
- 12Ejemplos de casos de uso
- 13Diagramas de actividad
- 14Ejemplos de actividad
- 15Diagramas de máquina de estados
- 16Ejemplos de máquina de estados
- 17Diagramas de componentes
- 18Ejemplos de componentes
- 19Dibujar un diagrama de componentes
- 20Símbolos de componentes
- 21Diagramas de despliegue
- 22Ejemplos de despliegue
- 23Diagramas de objetos
- 24Diagramas de paquetes
- 25Diagramas de estructura compuesta
- 26Diagramas de comunicación
- 27Secuencia vs comunicación
- 28Diagramas de tiempos
- 29Diagramas de visión general de interacción
- 30Diagramas de perfil
- 31UML con IA
- 32Ejemplo de e-commerce
- 33Ejemplo bancario
- 34Ejemplo de microservicios
- 35Ejemplo de AWS
Lecturas relacionadas
Diagramas de comportamiento
Diagramas de comportamiento
Fundamentos
Diagramas de comportamiento
Diagramas de comportamiento
Diagramas de comportamiento