Diagramas de actividad UML
Un proceso dibujado con precisión: los pasos, las ramas y las partes que de verdad ocurren a la vez. Lo más parecido a un diagrama de flujo que tiene UML, sin la ambigüedad.
9 min de lecturaUML 2.5.113 de 35
La respuesta corta
- Un rombo envía el testigo por exactamente un arco; una barra lo envía por todos a la vez. Dibujar un rombo donde querías una barra es el error más común de la notación.
- Una unión es una barra y espera a cada arista entrante. Una fusión es un rombo y no espera a nada: el primer token que pasa sigue adelante.
- Usar una fusión donde querías una unión es como un diagrama acaba afirmando que un proceso continúa antes de que su trabajo paralelo haya terminado.
- Es un diagrama de flujo sin la ambigüedad: bifurcaciones y uniones, nodos de objeto, particiones y una semántica de testigos que dice qué ocurre en cada nodo.
01Qué muestra#
Un diagrama de actividad describe un proceso como un flujo de trabajo. Parece un diagrama de flujo y en los casos sencillos lo es. Lo que añade - y la razón para usarlo en vez de una biblioteca de formas - es precisión en dos cosas sobre las que los diagramas de flujo son vagos: la concurrencia y la sincronización.
El modelo de debajo es el flujo de fichas. Una ficha empieza en el nodo inicial y avanza por las flechas. Una acción se ejecuta cuando llega una ficha; al terminar, la ficha sigue. Una bifurcación convierte una ficha en varias. Una unión espera hasta tener una en cada arco entrante. Ese único modelo mental explica todos los símbolos del diagrama, y merece la pena sostenerlo porque vuelve obvios los casos incómodos.
02Los nodos#
| Elemento | Notación | Qué significa |
|---|---|---|
| Nodo inicial | disco relleno | Donde empieza el flujo. Normalmente uno por actividad. |
| Acción | rectángulo redondeado | Un paso de trabajo, nombrado con el verbo primero. Se ejecuta hasta el final en cuanto llega una ficha. |
| Decisión | rombo, un arco de entrada | Elige un arco de salida según su guarda. Las guardas van entre corchetes; [else] recoge el resto. |
| Fusión | rombo, un arco de salida | Vuelve a juntar caminos alternativos. No espera: la primera ficha que pasa continúa. |
| Bifurcación | barra sólida, un arco de entrada | Se divide en caminos que corren todos de forma concurrente. |
| Unión | barra sólida, un arco de salida | Espera a cada camino entrante y luego continúa. Este es el punto de sincronización. |
| Fin de actividad | anillo alrededor de un disco | Termina toda la actividad y mata las fichas que aún estén en vuelo. |
| Fin de flujo | círculo con una cruz | Termina solo este camino. El resto de la actividad sigue. |
03Decisión no es bifurcación#
Esta es la distinción para la que existe la notación, y la que se enreda. Una decisión es una elección: una ficha entra, una ficha sale, por la rama que seleccione la guarda. Una bifurcación es una división: una ficha entra, varias fichas salen, todas vivas a la vez.
Sus compañeros siguen la misma regla. Una fusión (rombo) no espera: es solo donde vuelven a juntarse caminos alternativos. Una unión (barra) sí espera, y a todos. Usar una fusión donde querías una unión es como un diagrama acaba afirmando que un proceso continúa antes de que su trabajo paralelo haya terminado.
04Calles#
Una partición de actividad - casi siempre llamada calle - divide el lienzo en bandas y pone cada acción en la banda de quien la ejecuta. Las calles pueden ser verticales u horizontales, y pueden anidarse.
Las calles son la aportación más valiosa a un diagrama de proceso de negocio, porque los problemas interesantes de un proceso suelen ser los traspasos. Cuando una flecha cruza una frontera de calle, el trabajo ha cambiado de manos, y ahí es donde las cosas se pierden, se retrasan o se hacen dos veces. Un diagrama con cuatro cruces de calle en seis pasos acaba de decirte algo importante.
Además no cuestan nada en expresividad: una partición no cambia la semántica, solo dice quién es responsable. Si el ejecutante no importa para tu pregunta, déjalo fuera.
Este es también el punto donde la notación se queda corta. Una partición UML dice quién ejecuta un paso; no distingue a un compañero del equipo de al lado de otra empresa con su propio proceso. BPMN separa eso en calles y piscinas y da a la frontera entre piscinas semántica real: solo la cruzan mensajes. Si los traspasos que te importan salen de la organización, esa distinción justifica la segunda notación, y BPMN es por donde empezar.
05Cuándo dibujar uno#
Úsalo cuando
- Un proceso de negocio con ramificación real en la que la gente tiene que ponerse de acuerdo
- Cualquier cosa con paralelismo genuino: la notación de bifurcación y unión no tiene buen sustituto
- Documentar el flujo principal y las alternativas detrás de un caso de uso
- Mostrar traspasos entre equipos o sistemas, con calles
Usa otra cosa cuando
- El proceso es lineal: una lista numerada es más corta e igual de clara
- Estás describiendo el ciclo de vida de un objeto: usa un diagrama de estados
- En realidad va del orden de los mensajes entre servicios: usa un diagrama de secuencia
- Estarías transcribiendo una función existente instrucción a instrucción
06Errores comunes#
- Una bifurcación donde se quería una decisión. Una barra dice que corren ambos caminos. Si solo debe correr uno, es un rombo.
- Una bifurcación sin unión. Legal, pero normalmente un error: dice que nunca nada espera a que esos caminos paralelos terminen.
- Guardas que no lo cubren todo. Añade
[else]. - Acciones nombradas como sustantivos.
Refundes ambiguo;Credit customeres un paso. Nombra las acciones con el verbo primero. - Fin de actividad donde se quería fin de flujo. El anillo con disco mata la actividad entera, incluidas las ramas que aún corren. Si solo querías terminar un camino, usa el círculo con la cruz.
En una línea cada uno
- 01Piensa en fichas: una acción se ejecuta cuando llega una ficha y la pasa cuando termina.
- 02El rombo elige un camino; la barra sólida los ejecuta todos.
- 03La fusión no espera. La unión sí. Este es el par que hay que acertar.
- 04Las guardas van entre corchetes y deben ser exhaustivas: añade siempre [else].
- 05Las calles muestran quién ejecuta cada paso; los procesos fallan en los cruces de calle.
- 06El fin de actividad lo termina todo; el fin de flujo solo su propio camino.
07Preguntas frecuentes#
¿Qué diferencia hay entre una bifurcación y una decisión?
Un nodo de decisión, un rombo, envía el testigo por exactamente un arco de salida, elegido por las guardas. Una bifurcación, una barra rellena, envía un testigo por todos los arcos de salida a la vez, de modo que las ramas corren de verdad en paralelo. Dibujar un rombo donde querías una barra es la forma más común de que un diagrama de actividad diga algo distinto de lo que pretendías.
¿Qué es un nodo de fusión en un diagrama de actividad UML?
Un rombo con varias aristas de entrada y una de salida, donde los caminos alternativos vuelven a juntarse. No espera - el primer token que lo atraviesa sigue adelante. Esa es toda la diferencia con la unión, que es una barra y espera a cada arista entrante. Usar una fusión donde se quería una unión es como un diagrama acaba afirmando que un proceso continúa antes de que su trabajo paralelo haya terminado.
¿Qué es una unión en un diagrama de actividad UML?
La contraparte de la bifurcación, dibujada con la misma barra rellena. Espera un testigo en cada arco de entrada antes de dejar continuar a uno, que es como se modela cuando todo esto haya terminado. Una fusión, un rombo, es la contraparte de la decisión y no espera a nada.
¿Para qué sirven las calles?
Son particiones, en los propios términos de UML. Cada calle nombra quién o qué ejecuta las acciones que contiene, así que el diagrama muestra los traspasos entre roles o sistemas y no solo la secuencia de pasos.
¿Un diagrama de actividad UML es lo mismo que un diagrama de flujo?
Es un diagrama de flujo al que se le ha quitado la ambigüedad. Un diagrama de flujo no tiene forma estándar de expresar concurrencia, flujo de objetos ni quién ejecuta un paso. Uno de actividad tiene bifurcaciones y uniones, nodos de objeto y particiones, y una semántica de testigos definida que dice exactamente qué ocurre en cada nodo.
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
Fundamentos
Diagramas de comportamiento
Diagramas de comportamiento
Diagramas de comportamiento
Fundamentos
Diagramas de comportamiento