Ejemplos de diagramas de secuencia UML
Tres flujos, cada uno necesita algo que los otros no: un inicio de sesión que se ramifica, un pago que reintenta y un evento al que nadie responde.
6 min de lecturaUML 2.5.19 de 35
La respuesta corta
- El inicio de sesión es el ejemplo estándar porque se ramifica, y ramificar es lo que sabe hacer un diagrama de secuencia y no una lista numerada.
- Mete también la respuesta fallida dentro del fragmento loop. Un bucle que solo contiene la petición esconde el motivo del reintento.
- Un mensaje asíncrono es una línea sólida con punta abierta y sin respuesta. La flecha de retorno ausente es la afirmación, no un olvido.
- Tres formas cubren casi cualquier flujo real: una ramificación, un bucle de reintento y un mensaje al que nadie responde.
01Un inicio de sesión, donde la rama es el asunto#
Lee el diagrama de arriba como dos historias que comparten un principio. Todo lo que está por encima del marco alt ocurre en cualquier caso; dentro se ejecuta exactamente un compartimento, y las guardas entre corchetes dicen cuál. Eso es lo que un diagrama de secuencia hace y una lista numerada de pasos no puede, y por eso este flujo es el primer ejemplo estándar.
El detalle que merece copiarse está en la rama de fallo. No se limita a devolver un error: primero dispara record(failure)al registro de intentos, dibujado con punta abierta porque nada lo espera. Un diagrama cuya ruta de fallo es una sola flecha etiquetada "error" es un diagrama que no ha pensado en la ruta de fallo, y el requisito de limitación que todo el mundo descubre tres semanas después vive justo en esa rama.
02Un pago, donde el bucle y la autollamada son el asunto#
Dos cosas de aquí no aparecen en un primer diagrama de secuencia. La guarda del fragmento loop nombra a la vez un límite y una condición - [3 times, while transient] - porque un bucle sin límite es un diagrama que promete una caída, y uno sin condición no dice qué lo detiene antes.
La otra es backoff(), un mensaje de Checkout a sí mismo, dibujado como una flecha que sale de una línea de vida y vuelve a ella. Las autollamadas merecen dibujarse justo cuando la espera o la decisión forma parte de la historia - aquí es toda la razón de que el segundo intento tenga éxito - y merecen omitirse cuando son trabajo interno corriente.
Fíjate también en lo que no hay: ninguna respuesta discontinua tras markPaid(orderId). El almacén de pedidos responde, claro, pero la respuesta no lleva nada sobre lo que este flujo razone, y dibujar todas las respuestas es como un diagrama de seis mensajes interesantes se convierte en uno de doce.
03Un evento, donde no se responde a nada#
Este es el ejemplo que casi nadie dibuja, y el que más merece la pena tener. Todas las flechas son asíncronas - línea sólida, punta abierta - y no hay un solo retorno discontinuo. El servicio de pedidos publica y sigue; el almacén y el servicio de correo reciben cada uno el evento, y nada en este diagrama dice cuál de los dos termina primero, porque tampoco lo dice nada en el sistema.
Dibujar este flujo con puntas rellenas y respuestas sería otro sistema: uno donde publicar bloquea hasta que ambos consumidores han corrido, que es precisamente la propiedad que un broker existe para eliminar. La notación los distingue, y esa distinción vale más aquí que en ningún otro sitio de UML.
En una línea cada uno
- 01Un fragmento alt lleva todos los desenlaces; si solo una rama tiene guarda, querías un opt.
- 02Dale al bucle un límite y una condición, y deja dentro la respuesta fallida.
- 03Punta abierta y ninguna respuesta significan asíncrono. No dibujes un retorno que no ocurrió.
- 04Dibuja una autollamada cuando la espera o la decisión sea parte de la historia, no para trabajo interno corriente.
- 05Omite las respuestas que no llevan nada sobre lo que el flujo razone.
Para el método en vez de los ejemplos, lee cómo dibujar un diagrama de secuencia; para la notación completa, el artículo del diagrama de secuencia.
04Preguntas frecuentes#
¿Cuál es un buen ejemplo de diagrama de secuencia UML?
El inicio de sesión es el ejemplo estándar porque se ramifica, y ramificar es precisamente lo que un diagrama de secuencia sabe hacer y una lista numerada no. Además merece la pena dibujar un reintento y una publicación asíncrona, porque juntos cubren las tres formas de las que se compone casi cualquier flujo real.
¿Cómo muestro un reintento en un diagrama de secuencia?
Con un fragmento loop alrededor de los mensajes que se repiten y una guarda que nombre el número y la condición, por ejemplo tres veces, mientras sea transitorio. Dibuja también la respuesta fallida dentro del bucle: un bucle que solo contiene la petición esconde el motivo del reintento.
¿Cómo se dibuja un mensaje asíncrono?
Como una línea sólida con punta abierta, en lugar de la punta rellena que lleva una llamada síncrona, y sin flecha de retorno después. La ausencia de respuesta es justo el punto: quien envió no esperó, y una flecha de retorno discontinua afirmaría lo contrario.
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
Práctica del modelado
Diagramas de comportamiento
Diagramas de comportamiento