Archyno
UMLDiagramas de comportamiento

Cómo dibujar un diagrama de secuencia UML

Un escenario, los participantes que de verdad toca, el camino feliz en orden, luego las ramas, y un corte tajante en una pantalla.

7 min de lecturaUML 2.5.110 de 35

La respuesta corta

  • Empieza por un escenario escrito como una frase. Si no puedes nombrar esa única ejecución en una frase, tienes un caso de uso, no un diagrama de secuencia.
  • Coloca los participantes de izquierda a derecha en el orden en que el flujo los toca por primera vez, con el actor a la izquierda. Cualquier otra cosa garantiza flechas cruzadas.
  • Aquí las flechas cruzadas no son un problema de estilo: hacen ambiguo el orden de lectura, y el orden es toda la razón del diagrama.
  • Una pantalla, unos quince mensajes. Pasado eso se hace scroll en vez de leer, y la segunda mitad debe ir tras un fragmento ref.
Un diagrama de secuencia UML temprano. Un huésped envía una solicitud de reserva a un sitio de reservas, que pregunta a un servicio de disponibilidad si hay una habitación libre y luego escribe una reserva en un almacén. Cada mensaje recibe respuesta.
Después del paso tres. Un escenario, de principio a fin, y el orden ya está resuelto.

01Pasos uno y dos: un escenario, luego sus participantes#

Escribe el escenario como una frase antes de dibujar nada."Un huésped reserva una habitación que está libre" es un escenario. "Reservar" no lo es: es un caso de uso, que cubre toda ejecución incluidas las que fallan, y un diagrama que intenta ser todas ellas es el que acaba con ochenta mensajes. Si tu frase contiene la palabra "o", tienes dos escenarios o un fragmento alt, y conviene decidir cuál antes de seguir.

Después lista los participantes a los que ese escenario toca de verdad, y colócalos de izquierda a derecha en el orden en que los alcanza. El actor va el primero por la izquierda. Cuatro o cinco es el rango de trabajo; si tienes siete, al menos dos son detalles de implementación sobre los que el flujo no razona, y borrarlos no perderá nada que el lector necesitara.

02Paso tres: el camino feliz, en orden, y nada más#

Dibuja la ejecución en la que todo funciona, de arriba abajo, sin ningún fragmento. Ese es el diagrama de la cabecera, y está terminado como pieza de trabajo aunque no lo esté como diagrama: el orden está resuelto, que es la parte cara.

Dos convenciones llevan casi todo el significado. La etiqueta de un mensaje es una operación con sus argumentos, no una descripción: isFree(dates, roomType)le dice al lector qué debe ofrecer el receptor, mientras que "comprueba la disponibilidad" le cuenta una historia que ya sabía. Y toda respuesta es discontinua: una flecha sólida de vuelta es una segunda llamada, y significa otra cosa.

Las barras de activación son opcionales en UML 2.5.1 y merece la pena dibujarlas. Son lo único del diagrama que muestra que una llamada síncrona bloquea a quien la hace durante todo el intercambio anidado que hay debajo, que suele ser justo el hecho que el diagrama se dibujó para establecer.

03Pasos cuatro y cinco: las ramas, y parar#

El mismo diagrama de secuencia UML tras añadir las ramas. La comprobación de disponibilidad va envuelta en un fragmento alt: cuando la habitación está libre, el sitio la reserva y confirma; cuando no lo está, el sitio pide alternativas y las ofrece en su lugar. Una retención de pago se dispara de forma asíncrona hacia un registro de auditoría.
El mismo flujo tras el paso cuatro. El alt está envuelto alrededor del punto en que la respuesta empieza a importar.

Solo ahora añade los fragmentos, y añádelos de uno en uno, preguntándole a cada uno: ¿cambia esta rama lo que el lector tiene que construir? Una rama que devuelve un error y para rara vez lo hace, y se registra mejor en el texto del caso de uso. Una rama que hace otro trabajo, como ofrecer fechas alternativas arriba, siempre lo hace, y su sitio es el diagrama.

Envuelve el marco alrededor del punto donde los caminos divergen, no alrededor de todo el diagrama. El alt de arriba empieza después de que vuelve el veredicto de disponibilidad, porque todo lo anterior es común a los dos desenlaces; un marco alrededor de los nueve mensajes sería técnicamente legal y no le diría al lector nada sobre dónde está la decisión.

Luego para en una pantalla. Esto no es una recomendación blanda: un diagrama de secuencia existe para hacer visible un orden de un vistazo, y un diagrama que hay que desplazar ha renunciado a eso y se ha quedado con todo el coste. Cuando un flujo no quepa, córtalo por una costura natural, nombra cada mitad y desde la primera remite a la segunda con un fragmento ref, o dibuja por encima del conjunto un diagrama global de interacción.

En una línea cada uno

  1. 01Escribe primero el escenario como una frase. Si contiene 'o', decide entre dos diagramas y un alt.
  2. 02Los participantes van de izquierda a derecha en el orden en que el flujo los alcanza, el actor primero.
  3. 03Dibuja el camino feliz sin fragmentos. Las etiquetas son operaciones con argumentos; toda respuesta es discontinua.
  4. 04Añade una rama solo si cambia lo que se construye, y coloca el marco donde los caminos divergen.
  5. 05Una pantalla. Más allá, corta y usa un fragmento ref.

Tres flujos terminados de los que copiar: los ejemplos trabajados.

04Preguntas frecuentes#

¿Por dónde empiezo un diagrama de secuencia?

Por un escenario escrito como una frase, no por las cajas. Un diagrama de secuencia describe una única ejecución de un flujo, así que si no puedes decir cuál en una frase todavía no tienes un diagrama: tienes un caso de uso, y ese es otro dibujo.

¿En qué orden se colocan los participantes?

De izquierda a derecha en el orden en que el flujo los toca por primera vez, con el actor a la izquierda del todo. Cualquier otra cosa garantiza flechas cruzadas, y aquí eso no es un problema de estilo: hace el orden de lectura genuinamente ambiguo.

¿Cuánto puede medir un diagrama de secuencia?

Una pantalla, unos quince mensajes. Pasado eso el diagrama ya no se lee de arriba abajo, se hace scroll, y el orden que era toda la razón para dibujarlo deja de verse. Pártelo y referencia la segunda mitad con un fragmento ref.

En esta serie

Lecturas relacionadas

Todos los artículos