Diagrama de secuencia vs de comunicación
La misma compra dibujada de las dos maneras, para que la compensación se vea en lugar de contarse: una pone el tiempo en el eje vertical, la otra pone la estructura en la página y numera los mensajes.
7 min de lecturaUML 2.5.127 de 35
La respuesta corta
- Ninguno es mejor. El de secuencia hace evidente el orden y difícil de ver la estructura; el de comunicación hace lo contrario.
- Semánticamente son la misma interacción sobre el mismo modelo UML, así que una herramienta puede generar uno del otro mecánicamente.
- Los números de mensaje existen porque no hay eje temporal. Sin ellos el diagrama deja de decir qué pasa cuándo.
- El orden es lo que la mayoría intenta comunicar, y por eso el diagrama de secuencia gana casi cualquier conversación real.
01Una interacción, dos dibujos#
Los dos diagramas de abajo describen la misma compra: un cliente realiza un pedido, el controlador reserva existencias, cobra una tarjeta, guarda el pedido y responde. Nada del sistema cambia entre ellos. Solo cambia el eje en el que la notación gasta su espacio.
Vuelve a leer la figura de cabecera después de esta. El diagrama de comunicación hace obvio lo que el de secuencia entierra: todos los mensajes pasan por OrderController. Cuatro enlaces irradian de un solo nodo y ninguno conecta a los demás entre sí, que es la forma del diseño y no la de la ejecución. En el diagrama de secuencia ese hecho está repartido por siete filas y hay que buscarlo.
Y lo contrario es igual de cierto. En el diagrama de secuencia ves de un vistazo que la tarjeta se cobra después de reservar existencias, y que la respuesta de la reserva vuelve antes de que salga el cobro. En el diagrama de comunicación ese orden es la diferencia entre los números 2 y 3.
02En qué gasta su espacio cada uno#
Las dos notaciones se definen en UML sobre la misma interacción subyacente, así que es una elección de presentación y no de modelado. Lo que se sigue de esa elección es lo bastante consistente como para ponerlo en una tabla.
| Elemento | Notación | Qué significa |
|---|---|---|
| Orden | Secuencia | Se lee hacia abajo por la página, sin contar. En un diagrama de comunicación sigues los números, lo que es más lento pasados unos seis mensajes. |
| Estructura | Comunicación | Los enlaces son la disposición, así que concentradores, cadenas y participantes aislados se ven de inmediato. Un diagrama de secuencia no tiene disposición que leer. |
| Anidamiento | Secuencia | Las barras de activación muestran qué llamada sigue en la pila. Los diagramas de comunicación lo expresan con numeración decimal - 2.1 dentro de 2 - que se ojea peor. |
| Condicionales y bucles | Secuencia | Los fragmentos combinados (alt, opt, loop) enmarcan una región del diagrama. Los de comunicación solo tienen guardas en las etiquetas de mensaje. |
| Número de participantes | Comunicación | A un diagrama de secuencia se le acaba el espacio horizontal pasadas seis o siete líneas de vida. Uno de comunicación las coloca en dos dimensiones. |
| Que se entienda | Secuencia | Mucha más gente sabe leer uno sin que se lo enseñen. No es una propiedad de la notación, pero decide la mayoría de las elecciones reales. |
La misma información, dos experiencias de lectura muy distintas.
03Elegir entre los dos#
La decisión es más fácil si escribes la frase que el diagrama debe hacer decir a alguien. Si la frase lleva un orden, quieres líneas de vida. Si lleva una forma, quieres enlaces.
Úsalo cuando
- Secuencia, cuando el asunto es qué pasa antes que qué: protocolos, saludos, condiciones de carrera.
- Secuencia, cuando los condicionales y bucles forman parte de la historia y necesitas marcos alt o loop.
- Comunicación, cuando el asunto es quién habla con quién: acoplamiento, un concentrador, una violación de capas.
- Comunicación, cuando hay más participantes de los que caben en una página como líneas de vida.
Usa otra cosa cuando
- Comunicación, cuando hay que enseñar la numeración al público antes de que pueda leerlo.
- Secuencia, cuando en realidad describes estructura: eso es un diagrama de clases o de componentes.
- Ambos, cuando ni el orden ni la colaboración están en cuestión. La prosa es más corta.
- Dibujar la misma interacción dos veces como documentación. Quédate con una; la otra la regenera una herramienta.
En la práctica la mayoría de los equipos dibuja diagramas de secuencia y lee algún diagrama de comunicación de vez en cuando, que es un equilibrio razonable: el orden suele ser lo que la gente intenta explicar. El único sitio donde el diagrama de comunicación se gana el sueldo sin discusión es una revisión de diseño sobre acoplamiento, donde cuatro enlaces convergiendo en un nodo hacen el argumento más rápido que cualquier lista de puntos de llamada.
04Qué recordar#
En una línea cada uno
- 01Las dos notaciones describen la misma interacción. La elección va de qué nota primero un lector.
- 02La secuencia pone el orden en el eje vertical; la comunicación pone la estructura en la página y numera los mensajes.
- 03El anidamiento es una barra de activación en una y un número decimal en la otra.
- 04Solo los diagramas de secuencia tienen marcos alt, opt y loop: los condicionales son la razón de que la mayoría de los equipos se quede con ellos.
- 05Diagrama de comunicación y diagrama de colaboración son el mismo dibujo con nombres de UML 2 y UML 1.
05Preguntas frecuentes#
¿Qué es mejor, un diagrama de secuencia o uno de comunicación?
Ninguno es mejor: enfatizan ejes distintos. El de secuencia hace evidente el orden y difícil de ver la estructura. El de comunicación hace evidente la forma de la colaboración y trabajoso el orden. Elija aquel cuya fortaleza coincida con su pregunta.
¿Los diagramas de secuencia y de comunicación contienen la misma información?
Semánticamente sí: ambos describen una interacción, y UML los define sobre el mismo modelo, así que una herramienta puede generar uno a partir del otro. Lo que cambia es lo que una persona nota primero, y esa es la única razón para tener dos notaciones.
¿Por qué los diagramas de comunicación numeran los mensajes?
Porque no hay eje temporal del que leer el orden. La numeración lo lleva en su lugar, y los números anidados como 2.1 y 2.2 muestran qué llamadas ocurren dentro de cuáles. Sin los números el diagrama deja de decir qué pasa cuándo.
¿Se puede convertir un diagrama de secuencia en uno de comunicación?
Sí, y de forma mecánica. Cada línea de vida pasa a ser un nodo, cada mensaje una etiqueta numerada sobre el enlace entre dos nodos, y el orden de arriba abajo pasa a ser la numeración. Muchas herramientas convierten en ambos sentidos desde una única interacción guardada.
¿Por qué se usan tan poco los diagramas de comunicación?
La mayoría quiere comunicar precisamente el orden, y leerlo de un conjunto de números es más lento que leerlo de arriba abajo. El diagrama de comunicación gana cuando lo que importa es quién habla con quién y no en qué orden, que es una parte menor de las conversaciones reales.
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
Fundamentos
Diagramas de comportamiento
Diagramas de comportamiento