Archyno
UMLDiagramas de comportamiento

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.
Diagrama de actividad UML de un proceso de reembolso. Desde el nodo inicial se recibe la solicitud de reembolso. Una decisión se bifurca según si el importe supera el límite: si es así, se escala al responsable; si no, se sigue de frente. Ambos caminos se fusionan y después una bifurcación ejecuta en paralelo el abono al cliente y el aviso al comercio. Una unión espera a ambos, luego se cierra la solicitud y se llega al nodo final de la actividad.
Un proceso de reembolso. El rombo elige un camino; las barras sólidas se dividen en dos caminos que corren a la vez y luego se esperan entre sí.

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#

ElementoNotaciónQué significa
Nodo inicialdisco rellenoDonde empieza el flujo. Normalmente uno por actividad.
Acciónrectángulo redondeadoUn paso de trabajo, nombrado con el verbo primero. Se ejecuta hasta el final en cuanto llega una ficha.
Decisiónrombo, un arco de entradaElige un arco de salida según su guarda. Las guardas van entre corchetes; [else] recoge el resto.
Fusiónrombo, un arco de salidaVuelve a juntar caminos alternativos. No espera: la primera ficha que pasa continúa.
Bifurcaciónbarra sólida, un arco de entradaSe divide en caminos que corren todos de forma concurrente.
Uniónbarra sólida, un arco de salidaEspera a cada camino entrante y luego continúa. Este es el punto de sincronización.
Fin de actividadanillo alrededor de un discoTermina toda la actividad y mata las fichas que aún estén en vuelo.
Fin de flujocírculo con una cruzTermina 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.

Dos fragmentos contrastados. A la izquierda, un rombo de decisión envía la ficha por exactamente una de dos ramas con guarda. A la derecha, una barra de bifurcación envía una ficha por ambas ramas a la vez, y una unión espera a las dos.
Izquierda: un rombo, y se ejecuta exactamente una rama. Derecha: una barra, y se ejecutan ambas ramas. Intercambiarlos cambia por completo el significado del proceso.

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#

  1. 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.
  2. Una bifurcación sin unión. Legal, pero normalmente un error: dice que nunca nada espera a que esos caminos paralelos terminen.
  3. Guardas que no lo cubren todo. Añade [else].
  4. Acciones nombradas como sustantivos. Refund es ambiguo; Credit customer es un paso. Nombra las acciones con el verbo primero.
  5. 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

  1. 01Piensa en fichas: una acción se ejecuta cuando llega una ficha y la pasa cuando termina.
  2. 02El rombo elige un camino; la barra sólida los ejecuta todos.
  3. 03La fusión no espera. La unión sí. Este es el par que hay que acertar.
  4. 04Las guardas van entre corchetes y deben ser exhaustivas: añade siempre [else].
  5. 05Las calles muestran quién ejecuta cada paso; los procesos fallan en los cruces de calle.
  6. 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

Lecturas relacionadas

Todos los artículos