El diagrama de actividades es un diagrama UML de comportamiento que permite representar flujos de trabajo. Muestra acciones, decisiones, caminos alternativos, repeticiones y tareas que pueden ejecutarse en paralelo. Es útil para describir procesos de negocio, flujos de casos de uso, algoritmos de alto nivel y procedimientos operativos.
A diferencia del diagrama de secuencia, que se concentra en mensajes entre participantes, el diagrama de actividades se concentra en el flujo de acciones. Su lectura se parece a un recorrido por pasos, desde un inicio hasta uno o varios finales posibles.
Un diagrama de actividades representa cómo avanza un proceso. Puede mostrar qué acción ocurre primero, qué decisión divide el camino, qué tareas se ejecutan en paralelo y dónde se unen los flujos. También puede incluir responsables mediante carriles, objetos que se producen o consumen y señales que interrumpen o disparan acciones.
Por ejemplo, para solicitar un turno médico, el proceso puede comenzar con la selección de especialidad, continuar con la búsqueda de horarios, pasar por una decisión sobre disponibilidad, registrar el turno y terminar con una confirmación.
Un diagrama de actividades puede combinar acciones secuenciales, decisiones con condiciones, caminos alternativos y tareas paralelas. Esta capacidad lo vuelve adecuado para describir procesos donde no basta con una lista lineal de pasos.
El nodo inicial indica dónde comienza el flujo. Se representa como un círculo negro. Normalmente un diagrama de actividades tiene un único inicio, aunque el proceso pueda dividirse después en varios caminos.
El nodo inicial no es una acción. Solo marca el punto de partida del flujo.
Una acción representa un paso del proceso. Se dibuja como un rectángulo con esquinas redondeadas. Debe nombrarse con una frase clara, normalmente con un verbo: Validar datos, Registrar pedido, Consultar disponibilidad, Enviar confirmación.
Las acciones deben tener un nivel de detalle adecuado. Si son demasiado pequeñas, el diagrama se vuelve extenso. Si son demasiado grandes, ocultan decisiones importantes.
Los flujos de control son flechas que conectan acciones y nodos. Indican el avance del proceso. La dirección de la flecha muestra qué paso puede ocurrir después de otro.
Estas flechas no representan llamadas a métodos ni mensajes entre objetos. Para eso existen diagramas de secuencia o comunicación. En actividades, las flechas representan continuidad del proceso.
Un nodo de decisión permite elegir entre caminos alternativos. Se representa con un rombo. Cada salida debe tener una condición o guarda, por ejemplo [hay disponibilidad] y [no hay disponibilidad].
Las condiciones deben ser claras y cubrir los caminos relevantes. Si una decisión tiene muchas salidas, conviene revisar si el proceso puede dividirse o explicarse con mayor orden.
Después de caminos alternativos, puede usarse un nodo de unión para reunir nuevamente el flujo. Visualmente también se representa con un rombo. Su función es indicar que varios caminos posibles continúan hacia una misma acción posterior.
No debe confundirse con la unión de concurrencia. En una unión de decisión, solo uno de los caminos alternativos llega al punto común.
Una bifurcación, o fork, divide el flujo en tareas que pueden ejecutarse en paralelo. Se representa con una barra gruesa. A partir de esa barra salen varios flujos que pueden avanzar de manera concurrente o independiente.
Por ejemplo, después de confirmar una compra, el sistema puede enviar una notificación, actualizar estadísticas y generar una factura. Si estas tareas no dependen estrictamente una de otra, pueden representarse como paralelas.
Una unión, o join, sincroniza flujos paralelos. También se representa con una barra gruesa. Indica que el proceso espera que ciertos caminos paralelos se completen antes de continuar.
Debe usarse cuando la sincronización es necesaria. Si no hace falta esperar todas las tareas, conviene modelar el flujo de otra manera para no sugerir una dependencia falsa.
El nodo final indica que la actividad completa termina. Se representa con un círculo negro dentro de otro círculo. Un diagrama puede tener varios finales, por ejemplo un final exitoso y otro por cancelación o error.
También existe el final de flujo, que termina solo un camino particular sin finalizar toda la actividad. Su uso depende del nivel de precisión requerido.
Los carriles, también llamados swimlanes, dividen el diagrama según responsables. Pueden representar personas, roles, áreas, sistemas o componentes. Cada acción se ubica en el carril del responsable que la realiza.
Por ejemplo, en un proceso de compra pueden existir carriles para Cliente, Sistema, Pasarela de pago y Depósito. Esto permite ver rápidamente quién realiza cada paso.
Un diagrama de actividades puede mostrar objetos que se producen, modifican o consumen durante el proceso. Por ejemplo, Solicitud, Pedido, Factura o Confirmación. Esto ayuda a conectar el flujo con información relevante.
No siempre es necesario incluir objetos. Se agregan cuando aportan claridad sobre entradas, salidas o estados de información dentro del proceso.
Algunos procesos dependen de señales o eventos. Por ejemplo, recibir una confirmación externa, detectar un vencimiento o esperar una respuesta de un servicio. UML permite representar recepción y envío de señales dentro de actividades.
Estos elementos son útiles cuando el flujo no depende solo de acciones internas, sino también de comunicaciones o eventos externos.
Un flujo simplificado para solicitar un turno puede comenzar con seleccionar especialidad, elegir profesional, consultar disponibilidad y mostrar horarios. Luego aparece una decisión: si hay horarios disponibles, el usuario selecciona uno y el sistema registra el turno; si no hay disponibilidad, el sistema informa la situación y ofrece cambiar criterios.
Este proceso puede representarse claramente con acciones, decisiones y caminos alternativos.
En una compra en línea, el flujo puede incluir revisar carrito, ingresar datos de envío, calcular total, procesar pago y confirmar pedido. Después de la confirmación, algunas tareas pueden ocurrir en paralelo: enviar correo, generar factura y descontar stock.
El diagrama de actividades permite ver esas tareas sin entrar en los detalles internos de clases o mensajes.
Conviene usar diagramas de actividades cuando se necesita explicar un proceso paso a paso. Son útiles para procesos de negocio, flujos de usuario, procedimientos administrativos, algoritmos de alto nivel y casos de uso con varias decisiones.
No son la mejor opción para mostrar estructura de clases ni mensajes detallados entre objetos. Para esos objetivos existen diagramas de clases y secuencia.
El diagrama de actividades permite representar procesos de manera clara, mostrando acciones, decisiones, caminos alternativos y tareas concurrentes. Es una herramienta muy útil para comprender flujos antes de entrar en detalles de estructura o mensajes entre objetos.
En el próximo tema profundizaremos en carriles, acciones, objetos y señales dentro de diagramas de actividades.