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.
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#
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
- 01Escribe primero el escenario como una frase. Si contiene 'o', decide entre dos diagramas y un alt.
- 02Los participantes van de izquierda a derecha en el orden en que el flujo los alcanza, el actor primero.
- 03Dibuja el camino feliz sin fragmentos. Las etiquetas son operaciones con argumentos; toda respuesta es discontinua.
- 04Añade una rama solo si cambia lo que se construye, y coloca el marco donde los caminos divergen.
- 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
- 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
Diagramas de comportamiento
Diagramas de comportamiento
Diagramas de comportamiento
Diagramas de comportamiento