,

Diagramas UML de comportamiento: qué son, tipos, ejemplos

·

Los diagramas UML de comportamiento sirven para representar qué ocurre dentro de un sistema cuando se usa. No se centran tanto en las piezas estáticas del software, sino en las acciones, procesos, interacciones, estados y decisiones que aparecen durante su funcionamiento.

Dicho de forma más sencilla: si un diagrama de clases nos ayuda a entender qué elementos forman un sistema, los diagramas UML de comportamiento nos ayudan a entender cómo se comporta ese sistema cuando alguien interactúa con él.

Y esto, en desarrollo de software, es mucho más importante de lo que parece. En mi experiencia, tanto trabajando en desarrollo como explicando conceptos técnicos en FP Informática, muchas dudas aparecen no porque falte código, sino porque falta una visión clara del comportamiento esperado: qué puede hacer cada usuario, qué pasos sigue un proceso, qué mensajes se envían los objetos o por qué estados pasa una entidad.

Por eso, los diagramas UML de comportamiento no deberían verse como una tarea burocrática ni como “dibujos que hay que entregar”. Bien usados, son una herramienta para pensar mejor antes de programar, detectar problemas de diseño y comunicar decisiones de forma clara.

En esta guía vamos a ver qué son los diagramas UML de comportamiento, qué tipos principales existen, cuándo usar cada uno, qué errores conviene evitar y cómo puedes apoyarte en herramientas como PlantUML para crearlos de forma más sencilla.

Qué son los diagramas UML de comportamiento

Los diagramas UML de comportamiento representan lo que ocurre cuando un sistema está en uso. Es decir, muestran cómo responde el sistema ante acciones externas o internas: una persona que inicia sesión, un cliente que realiza un pedido, una reserva que cambia de estado o un proceso que toma caminos diferentes según una condición.

Cuando hablamos de comportamiento en UML, no estamos hablando de la estructura del sistema, sino de su funcionamiento. Por ejemplo, en una biblioteca digital, el comportamiento incluye acciones como buscar libros, solicitar préstamos, devolver ejemplares o consultar el historial. En una tienda online, el comportamiento puede incluir añadir productos al carrito, calcular el total, pagar, confirmar el pedido y actualizar el stock.

Aquí es donde los diagramas UML de comportamiento tienen sentido. Cada uno responde a una pregunta distinta. Si quiero saber qué puede hacer cada usuario, usaré un diagrama de casos de uso. Si quiero ver los mensajes entre objetos durante una operación, usaré un diagrama de secuencia. Si me interesa el ciclo de vida de una entidad, probablemente usaré un diagrama de estados. Y si necesito representar los pasos de un proceso, el diagrama de actividades será una opción mucho más clara.

Esta distinción es clave. Un error habitual al aprender UML es querer meterlo todo en un único diagrama. Pero un buen modelo no consiste en hacer el diagrama más grande posible, sino en elegir el diagrama adecuado para la pregunta que queremos responder.

En clase suelo explicarlo con una idea sencilla: antes de dibujar, pregúntate qué quieres aclarar. Si no puedes formular esa pregunta, probablemente todavía no sabes qué diagrama necesitas. Los diagramas UML de comportamiento son útiles precisamente porque nos obligan a pensar en términos de uso, interacción y proceso.

La diferencia entre estructura y comportamiento en UML

Los diagramas estructurales muestran cómo está organizado un sistema. Por ejemplo, un diagrama de clases responde a preguntas como: qué clases existen, qué atributos tienen, qué métodos ofrecen y cómo se relacionan entre ellas.

Los diagramas UML de comportamiento, en cambio, responden a preguntas distintas:

PreguntaDiagrama recomendado
¿Qué puede hacer cada usuario?Diagrama de casos de uso
¿Qué objetos colaboran en una operación?Diagrama de secuencia o comunicación
¿En qué orden se envían mensajes?Diagrama de secuencia
¿Por qué estados pasa un objeto?Diagrama de estados
¿Qué pasos sigue un proceso?Diagrama de actividades
¿Qué decisiones o alternativas hay en un flujo?Diagrama de actividades

Una analogía bastante útil es pensar en una máquina. El diagrama de clases sería el plano de sus piezas. Los diagramas UML de comportamiento serían el manual que explica qué ocurre cuando pulsamos cada botón, cómo se mueve cada parte y qué resultado esperamos en cada situación.

Esa es la razón por la que los diagramas UML de comportamiento son tan útiles en análisis y diseño de software. Ayudan a entender el sistema antes de construirlo, pero también sirven para explicarlo después, mantenerlo y detectar incoherencias.

Una forma sencilla de entenderlos antes de programar

Antes de escribir código, conviene saber qué debe hacer el sistema. Parece obvio, pero en proyectos reales se salta este paso más veces de las que debería.

En consultoría y desarrollo he comprobado que muchos problemas no aparecen porque falte tecnología, sino porque se ha empezado demasiado rápido sin entender bien el proceso. Por ejemplo: ¿qué ocurre si el pago falla?, ¿quién puede cancelar una reserva?, ¿una incidencia cerrada puede volver a abrirse?, ¿el usuario debe estar validado antes de realizar una operación?

Los diagramas UML de comportamiento ayudan a responder a esas preguntas. No sustituyen al código, pero preparan el terreno para que el código tenga más sentido.

Tipos principales de diagramas UML de comportamiento

Dentro de UML hay varios diagramas orientados a representar comportamiento. En una primera aproximación, los más importantes son cinco: casos de uso, secuencia, comunicación, estados y actividades.

Cada uno tiene una función concreta. No compiten entre sí; se complementan. De hecho, una misma funcionalidad puede representarse con varios diagramas UML de comportamiento, pero cada uno aportará una vista distinta.

Por ejemplo, imaginemos un sistema de reservas. Con un diagrama de casos de uso puedo representar que un usuario puede consultar salas, crear una reserva, cancelar una reserva o consultar sus reservas. Con un diagrama de secuencia puedo explicar qué objetos colaboran cuando se crea una reserva. Con un diagrama de estados puedo representar que una reserva puede estar solicitada, confirmada, cancelada o finalizada. Y con un diagrama de actividades puedo mostrar los pasos del proceso de creación de reserva.

Eso es lo interesante de los diagramas UML de comportamiento: no muestran “todo”, sino la parte del comportamiento que nos interesa comprender en cada momento.

DiagramaQué representaCuándo usarlo
Casos de usoFuncionalidades del sistema desde el punto de vista de actores externosAl inicio del análisis
SecuenciaMensajes entre participantes ordenados en el tiempoPara explicar una operación paso a paso
ComunicaciónColaboración entre objetos mediante mensajes numeradosPara ver qué objetos colaboran
EstadosEstados y transiciones de un objetoPara entidades con ciclo de vida claro
ActividadesFlujo de trabajo, decisiones y caminos alternativosPara procesos de negocio o software

Diagrama de casos de uso

El diagrama de casos de uso representa qué funcionalidades ofrece un sistema desde el punto de vista de los actores que interactúan con él. Es uno de los diagramas UML de comportamiento más habituales al inicio del análisis porque ayuda a definir el alcance del sistema.

No muestra código. No muestra clases. No muestra detalles internos. Muestra qué se puede hacer con el sistema.

Por ejemplo, en una plataforma educativa, un alumno puede consultar materiales, entregar tareas y consultar calificaciones. Un profesor puede publicar materiales, crear tareas, revisar entregas y calificar. Un administrador puede gestionar usuarios y configurar el curso.

Diagrama de secuencia

El diagrama de secuencia representa cómo interactúan actores, objetos o componentes a lo largo del tiempo. El tiempo avanza normalmente de arriba hacia abajo, y los mensajes aparecen en el orden en que se producen.

Es uno de los diagramas UML de comportamiento más útiles cuando queremos explicar una operación concreta. Por ejemplo, iniciar sesión, crear una reserva, solicitar un préstamo digital o procesar un pago.

Diagrama de comunicación

El diagrama de comunicación también representa interacción entre objetos, pero pone más atención en qué objetos colaboran y cómo están conectados. A diferencia del diagrama de secuencia, no organiza visualmente el tiempo de arriba abajo, sino que usa mensajes numerados.

Es útil cuando queremos ver la red de colaboración entre objetos sin dar tanto protagonismo a la línea temporal.

Diagrama de estados

El diagrama de estados muestra los estados por los que pasa un objeto durante su ciclo de vida. Es especialmente útil para entidades como pedido, reserva, incidencia, matrícula, préstamo o tarea.

No todos los objetos necesitan un diagrama de estados. Tiene sentido cuando la entidad puede encontrarse en varias situaciones y existen reglas sobre qué cambios están permitidos.

Diagrama de actividades

El diagrama de actividades representa un flujo de trabajo. Se parece a un diagrama de flujo, pero forma parte de UML y permite modelar acciones, decisiones, caminos alternativos, paralelismos y responsabilidades mediante swimlanes.

Es uno de los diagramas UML de comportamiento más fáciles de entender al principio, porque conecta muy bien con la idea de proceso paso a paso.

Diagrama de casos de uso: qué puede hacer cada actor

El diagrama de casos de uso es ideal cuando queremos responder a una pregunta sencilla: ¿qué puede hacer cada actor con el sistema?

Esta pregunta parece simple, pero tiene mucha fuerza. Antes de pensar en pantallas, clases, bases de datos o controladores, necesitamos entender quién interactúa con el sistema y qué espera conseguir.

Por eso el diagrama de casos de uso suele aparecer al principio del análisis. Ayuda a delimitar el alcance, detectar funcionalidades principales y hablar con usuarios o clientes usando un lenguaje comprensible.

En mi caso, cuando explico diagramas UML de comportamiento, suelo insistir mucho en esto: el diagrama de casos de uso no está pensado para enseñar cómo funciona internamente el código. Está pensado para aclarar qué servicios ofrece el sistema desde fuera. Si empezamos a meter detalles técnicos demasiado pronto, el diagrama pierde su utilidad.

Actores, casos de uso y límite del sistema

Un actor es cualquier entidad externa que interactúa con el sistema. Puede ser una persona, otro sistema, una pasarela de pago, un servicio de correo o un administrador.

Un caso de uso representa una funcionalidad con valor para un actor. Por eso conviene nombrarlo con una acción clara, normalmente usando un verbo en infinitivo: iniciar sesión, realizar pedido, consultar calificaciones, registrar incidencia, entregar tarea.

Una regla práctica muy útil es esta: si el nombre del caso de uso no encaja con la frase “el actor puede…”, probablemente está mal nombrado.

Por ejemplo:

Buen nombreNombre poco recomendableMotivo
Iniciar sesiónLoginEs más claro para el usuario
Realizar pedidoPedidoEl caso de uso debe ser una acción
Consultar calificacionesNotasDescribe mejor qué hace el actor
Registrar incidenciaIncidenciaEl verbo aclara la funcionalidad

El límite del sistema se representa con un rectángulo que contiene los casos de uso. Los actores quedan fuera porque son externos. Esta separación ayuda a distinguir qué forma parte del sistema y qué elementos interactúan con él desde fuera.

Diferencia entre include y extend

Dentro de los diagramas UML de comportamiento, las relaciones include y extend suelen generar dudas al principio.

La relación include se usa cuando un caso de uso necesita ejecutar siempre otro comportamiento común. Por ejemplo, realizar pedido puede incluir validar usuario. Si cada vez que se realiza un pedido el sistema debe validar al usuario, entonces tiene sentido usar include.

La relación extend se usa cuando un caso de uso añade un comportamiento opcional, excepcional o condicionado. Por ejemplo, aplicar cupón descuento puede extender realizar pedido, porque no todos los pedidos usan cupón.

La diferencia importante es esta:

RelaciónCuándo usarlaEjemplo
includeCuando el comportamiento es obligatorioRealizar pedido incluye validar usuario
extendCuando el comportamiento es opcional o condicionadoAplicar cupón extiende realizar pedido

Un error habitual es usar include y extend como si fueran simples flechas decorativas. No lo son. Representan decisiones de modelado, y por eso deben utilizarse solo cuando aportan claridad.

Ejemplo práctico de casos de uso

Imaginemos una plataforma educativa. Los actores principales podrían ser Alumno, Profesor y Administrador.

El alumno puede consultar materiales, entregar tareas y consultar calificaciones. El profesor puede publicar materiales, crear tareas, revisar entregas y calificar. El administrador puede gestionar usuarios y configurar el curso.

Un esquema textual podría ser:

Sistema: Plataforma educativa

Actor: Alumno
- Consultar materiales
- Entregar tarea
- Consultar calificaciones

Actor: Profesor
- Publicar material
- Crear tarea
- Revisar entrega
- Calificar tarea

Actor: Administrador
- Gestionar usuarios
- Configurar curso

Este ejemplo muestra por qué el diagrama de casos de uso es tan útil al inicio. No necesitamos saber todavía qué clases habrá ni cómo se implementará cada operación. Primero queremos entender qué funcionalidades existen y quién las usa.

Entre todos los diagramas UML de comportamiento, este es probablemente el más cercano al lenguaje del usuario. Por eso también es muy útil para revisar requisitos y evitar malentendidos.

Diagrama de secuencia: mensajes ordenados en el tiempo

El diagrama de secuencia es uno de los diagramas UML de comportamiento más importantes cuando queremos saber qué ocurre paso a paso durante una operación.

Su punto fuerte es el orden temporal. Permite ver qué participante envía un mensaje, quién lo recibe, qué respuesta devuelve y en qué momento ocurre cada cosa.

En una aplicación real, esto puede ser muy útil para explicar procesos como iniciar sesión, registrar una reserva, solicitar un préstamo digital, recuperar una contraseña o confirmar un pedido.

Mientras que el diagrama de casos de uso nos dice “el usuario puede iniciar sesión”, el diagrama de secuencia nos ayuda a responder: ¿qué ocurre exactamente cuando el usuario inicia sesión?

Participantes, líneas de vida y mensajes

Los elementos principales de un diagrama de secuencia son:

ElementoSignificado
ParticipanteActor, objeto, servicio o componente que interviene
Línea de vidaExistencia del participante durante la interacción
ActivaciónMomento en el que un participante ejecuta una operación
MensajeComunicación entre participantes
RetornoRespuesta devuelta por un participante
Fragmento combinadoBloque para alternativas, bucles u opciones

Un ejemplo textual sencillo de login sería:

Usuario -> PantallaLogin: introducirCredenciales(email, password)
PantallaLogin -> AuthService: login(email, password)
AuthService -> UsuarioRepository: buscarPorEmail(email)
UsuarioRepository --> AuthService: usuario
AuthService -> AuthService: validarPassword(password, usuario)
AuthService --> PantallaLogin: resultado
PantallaLogin --> Usuario: mostrarMensaje(resultado)

Este tipo de diagrama no pretende enseñar todo el código. Lo que busca es representar la lógica principal de la interacción.

Aquí es donde conviene tener cuidado. En proyectos reales he visto diagramas de secuencia tan cargados de detalles que dejan de ayudar. Si el diagrama necesita más explicación que el propio código, algo falla. La clave está en mostrar los mensajes importantes, no absolutamente todo lo que ocurre por debajo.

Fragmentos alt y loop

Los diagramas de secuencia también permiten representar alternativas y repeticiones.

El fragmento alt se usa cuando hay varios caminos posibles. Por ejemplo, credenciales válidas o credenciales incorrectas:

alt credenciales válidas
Sistema -> Usuario: mostrarPanelPrincipal()
else credenciales incorrectas
Sistema -> Usuario: mostrarError()
end

El fragmento loop se usa cuando una parte de la secuencia se repite. Por ejemplo, procesar varias líneas de un pedido:

loop por cada línea del pedido
Pedido -> LineaPedido: calcularSubtotal()
LineaPedido --> Pedido: subtotal
end

Estos fragmentos son útiles porque evitan convertir el diagrama de secuencia en una especie de código fuente dibujado. La idea no es programar con flechas, sino representar el comportamiento de forma comprensible.

Ejemplo de login con diagrama de secuencia

El login es un buen ejemplo porque casi todo el mundo entiende el proceso.

Un usuario introduce email y contraseña. La pantalla de login envía esos datos a un servicio de autenticación. El servicio consulta el repositorio de usuarios, valida la contraseña y devuelve un resultado. Después, la pantalla muestra acceso concedido o denegado.

En PlantUML podría representarse así:

@startuml
actor Usuario
participant PantallaLogin
participant AuthService
participant UsuarioRepository

Usuario -> PantallaLogin: introducirCredenciales(email, password)
PantallaLogin -> AuthService: login(email, password)
AuthService -> UsuarioRepository: buscarPorEmail(email)
UsuarioRepository --> AuthService: usuario
AuthService -> AuthService: validarPassword(password, usuario)
AuthService --> PantallaLogin: resultado
PantallaLogin --> Usuario: mostrarMensaje(resultado)
@enduml

Este ejemplo enseña una de las grandes ventajas de los diagramas UML de comportamiento: ayudan a convertir una operación cotidiana en una secuencia clara de responsabilidades.

Diagrama de comunicación: objetos que colaboran

El diagrama de comunicación, también conocido en versiones anteriores como diagrama de colaboración, muestra qué objetos participan en una interacción y qué mensajes se envían entre ellos.

A primera vista puede parecer muy parecido al diagrama de secuencia, y en parte lo es. Ambos son diagramas UML de comportamiento centrados en la interacción. La diferencia está en el enfoque.

El diagrama de secuencia destaca el orden temporal. El diagrama de comunicación destaca la colaboración entre objetos.

Es decir, si lo que más me importa es ver qué ocurre primero, después y al final, normalmente elegiré un diagrama de secuencia. Pero si lo que quiero es ver qué objetos colaboran y cómo están conectados, el diagrama de comunicación puede ser más cómodo.

Diferencia entre diagrama de comunicación y secuencia

La diferencia se entiende mejor con una tabla:

AspectoDiagrama de secuenciaDiagrama de comunicación
Foco principalOrden temporalColaboración entre objetos
Representación del tiempoDe arriba hacia abajoMensajes numerados
LecturaMuy clara para procesos paso a pasoÚtil para ver relaciones
Riesgo visualPuede crecer mucho en alturaPuede crecer mucho en conexiones

El mismo proceso de login que antes vimos como secuencia podría representarse así en formato comunicativo:

Usuario -- PantallaLogin
PantallaLogin -- AuthService
AuthService -- UsuarioRepository

1: Usuario -> PantallaLogin: introducirCredenciales()
2: PantallaLogin -> AuthService: login()
3: AuthService -> UsuarioRepository: buscarPorEmail()
4: UsuarioRepository -> AuthService: usuario
5: AuthService -> PantallaLogin: resultado
6: PantallaLogin -> Usuario: mostrarMensaje()

Aquí el orden sigue existiendo, pero no depende de la posición vertical de los mensajes, sino de su numeración.

Cuándo merece la pena usarlo

El diagrama de comunicación merece la pena cuando queremos explicar responsabilidades entre objetos y no necesitamos una lectura temporal tan detallada.

Por ejemplo, puede ser útil cuando ya tenemos un diagrama de clases y queremos ver cómo colaboran algunas de esas clases durante una operación. También puede ayudar cuando una interacción tiene pocos objetos y mensajes claros.

Eso sí, como ocurre con otros diagramas UML de comportamiento, no hay que forzarlo. Si el proceso tiene muchas alternativas, muchas llamadas y un orden temporal importante, probablemente el diagrama de secuencia será más legible.

La idea importante es no elegir el diagrama por costumbre. Elegir bien los diagramas UML de comportamiento consiste en decidir qué vista del sistema necesitamos: funcionalidades, mensajes, colaboración, estados o flujo de trabajo.

Diagrama de estados: el ciclo de vida de un objeto

El diagrama de estados representa los estados por los que puede pasar un objeto durante su ciclo de vida y los eventos que provocan cambios entre esos estados.

Es uno de los diagramas UML de comportamiento más útiles cuando una entidad tiene una vida propia dentro del sistema. Por ejemplo, un pedido, una reserva, una incidencia, una matrícula, una tarea o un préstamo digital.

No todos los objetos necesitan un diagrama de estados. Una clase sencilla con datos estáticos quizá no lo necesita. Pero si una entidad puede estar en distintas situaciones y las reglas de transición son importantes, este diagrama puede evitar muchos errores.

Por ejemplo, un pedido puede estar creado, pagado, preparando, enviado, entregado o cancelado. Pero no cualquier cambio debería ser posible. Un pedido entregado no debería volver al estado creado. Un pedido cancelado no debería pasar a enviado. Y un pedido pagado quizá solo pueda cancelarse si todavía no está preparado.

Ahí es donde el diagrama de estados aporta valor.

Estados, eventos, transiciones y condiciones de guarda

Los elementos principales de un diagrama de estados son:

ElementoSignificado
Estado inicialPunto donde empieza el ciclo de vida
Estado finalPunto donde termina el ciclo
EstadoSituación estable de un objeto
EventoHecho que provoca una transición
TransiciónCambio de un estado a otro
Condición de guardaCondición que debe cumplirse
AcciónOperación ejecutada durante la transición

Un ejemplo básico de tarea podría ser:

[*] -> Pendiente
Pendiente -> EnProgreso : iniciar()
EnProgreso -> Finalizada : completar()
Pendiente -> Cancelada : cancelar()
EnProgreso -> Cancelada : cancelar()
Finalizada -> Archivada : archivar()
Cancelada -> [*]
Archivada -> [*]

Este ejemplo permite ver de forma clara qué estados existen y qué cambios están permitidos.

En mi experiencia, este tipo de diagrama ayuda mucho cuando el alumnado o el equipo empieza a mezclar acciones con estados. “Crear tarea” no es un estado; es una acción. “Pendiente” sí es un estado. Esta diferencia parece pequeña, pero cambia completamente la calidad del modelo.

Ejemplo de pedido, reserva o tarea

Un pedido de tienda online es un ejemplo clásico para entender los diagramas UML de comportamiento orientados a estados.

Podría tener estos estados:

EstadoDescripción
CreadoEl cliente ha creado el pedido, pero aún no ha pagado
PagadoEl pago se ha confirmado correctamente
PreparandoEl almacén está preparando el pedido
EnviadoEl pedido ha salido del almacén
EntregadoEl cliente ha recibido el pedido
CanceladoEl pedido se ha cancelado antes de completarse

Y sus transiciones podrían representarse así:

@startuml
[*] --> Creado
Creado --> Pagado : confirmarPago()
Creado --> Cancelado : cancelar()
Pagado --> Preparando : preparar()
Preparando --> Enviado : enviar()
Enviado --> Entregado : confirmarEntrega()
Pagado --> Cancelado : cancelar() [noPreparado]
Cancelado --> [*]
Entregado --> [*]
@enduml

La condición [noPreparado] es una condición de guarda. Indica que esa transición solo puede ocurrir si se cumple una condición concreta. Esto permite representar reglas de negocio sin escribir código detallado.

Este es uno de los motivos por los que los diagramas UML de comportamiento son tan útiles antes de programar. Te obligan a pensar en situaciones límite: qué se puede hacer, qué no se puede hacer y en qué momento.

Errores frecuentes en diagramas de estados

Al trabajar con diagramas de estados, hay algunos errores bastante comunes:

ErrorPor qué es un problemaCómo corregirlo
Confundir estado con acciónUn estado debe ser una situación, no un verboUsar “Pendiente” en vez de “Crear tarea”
No incluir estado inicialNo se sabe dónde empieza el cicloAñadir [*] al inicio
Permitir transiciones imposiblesEl modelo contradice la lógica del negocioRevisar reglas de transición
Crear demasiados estadosEl diagrama se vuelve confusoModelar solo estados relevantes
No nombrar eventosNo se sabe qué provoca el cambioAñadir eventos como pagar(), cancelar(), enviar()

Un buen diagrama de estados no intenta complicar el sistema. Al contrario: intenta hacerlo más claro.

Diagrama de actividades: pasos, decisiones y caminos alternativos

El diagrama de actividades representa un flujo de trabajo. Es parecido a un diagrama de flujo, pero integrado dentro de UML y pensado para modelar procesos de software o de negocio.

Dentro de los diagramas UML de comportamiento, el diagrama de actividades es uno de los más intuitivos. Sirve para responder a preguntas como: qué pasos sigue un proceso, qué decisiones aparecen, qué caminos alternativos existen y dónde empieza o termina el flujo.

Por ejemplo, podemos usarlo para representar un proceso de login, una compra online, una devolución, una solicitud de préstamo digital o la entrega de una tarea en un aula virtual.

Su fuerza está en que no se centra tanto en objetos concretos, sino en acciones y decisiones. Por eso es muy útil cuando queremos explicar el proceso de forma global.

Actividades, decisiones, fork, join y swimlanes

Los elementos más habituales de un diagrama de actividades son:

ElementoSignificado
Nodo inicialInicio del flujo
Acción o actividadPaso que se realiza
TransiciónFlecha entre acciones
DecisiónPunto donde el flujo se divide
UniónPunto donde se reúnen caminos alternativos
ForkDivide el flujo en acciones paralelas
JoinUne acciones paralelas
Nodo finalFinal del proceso
SwimlaneCarril que separa responsabilidades

Las actividades deben escribirse con verbos claros. Por ejemplo: validar formulario, comprobar stock, enviar confirmación, registrar entrega, calcular total.

Evitaría nombres como “formulario”, “stock” o “email”, porque no representan acciones. En los diagramas UML de comportamiento, los nombres deben ayudar a entender qué está ocurriendo.

Un ejemplo simple de login podría ser:

Inicio
-> Introducir credenciales
-> Validar campos
-> ¿Campos completos?
[no] -> Mostrar error de campos obligatorios -> Fin
[sí] -> Comprobar usuario y contraseña
-> ¿Credenciales correctas?
[sí] -> Crear sesión -> Mostrar panel principal -> Fin
[no] -> Mostrar error de acceso -> Fin

Este diagrama permite ver el proceso completo, incluyendo decisiones y caminos alternativos.

Diferencia entre diagrama de actividades y diagrama de secuencia

Esta diferencia suele generar dudas, así que merece la pena dejarla clara.

AspectoDiagrama de actividadesDiagrama de secuencia
Qué muestraPasos de un procesoMensajes entre participantes
FocoFlujo de trabajoInteracción temporal
Muy útil paraProcesos de negocio y decisionesDiseño técnico de una operación
EjemploProceso de compraMensajes entre Cliente, PedidoService y PagoService

Si quiero representar los pasos generales de una compra online, usaré un diagrama de actividades. Si quiero representar los mensajes concretos entre objetos durante el pago, usaré un diagrama de secuencia.

Ambos son diagramas UML de comportamiento, pero responden a preguntas distintas.

Ejemplo de proceso de compra online

Un proceso de compra online puede representarse así:

Inicio
-> Seleccionar productos
-> Revisar carrito
-> Confirmar pedido
-> Calcular total
-> Solicitar pago
-> ¿Pago aceptado?
[sí] -> Registrar pedido
-> Actualizar stock
-> Enviar confirmación
-> Fin
[no] -> Mostrar error de pago
-> ¿Reintentar?
[sí] -> Solicitar pago
[no] -> Cancelar operación -> Fin

Este ejemplo muestra por qué el diagrama de actividades es tan útil. No solo vemos los pasos ideales, sino también qué ocurre cuando algo falla.

En desarrollo real, eso marca la diferencia. Muchas veces diseñamos pensando solo en el camino feliz: el usuario hace todo bien, el pago funciona y el sistema responde perfecto. Pero los sistemas reales tienen errores, excepciones y decisiones. Los diagramas UML de comportamiento nos ayudan a hacer visibles esos caminos antes de que se conviertan en problemas.

Cómo elegir el diagrama UML de comportamiento adecuado

Una misma funcionalidad puede representarse con varios diagramas UML de comportamiento, pero no todos aportan lo mismo.

Por eso, antes de dibujar, conviene hacerse una pregunta muy concreta: ¿qué quiero entender o explicar?

Esta pregunta evita perder tiempo y mejora la comunicación del diseño. No se trata de hacer diagramas por hacer. Un buen diagrama responde a una pregunta concreta y ayuda a tomar decisiones.

Quiero representar…Diagrama más adecuadoMotivo
Qué funcionalidades tendrá el sistemaCasos de usoMuestra servicios desde la perspectiva del actor
Cómo se comunican los objetos durante una operaciónSecuenciaMuestra mensajes ordenados en el tiempo
Qué objetos colaboran en una operaciónComunicaciónDestaca relaciones y mensajes numerados
Los cambios de estado de una entidadEstadosRepresenta ciclo de vida y transiciones
Los pasos de un procesoActividadesMuestra flujo, decisiones y alternativas

Si quieres saber qué funcionalidades hay

Usa un diagrama de casos de uso.

Es la mejor opción cuando estás en una fase temprana y necesitas entender qué podrá hacer cada actor. Por ejemplo: usuario, administrador, profesor, alumno, bibliotecario, pasarela de pago o sistema de correo.

Este diagrama ayuda a delimitar el alcance. También permite hablar con personas no técnicas sin entrar todavía en clases, métodos o repositorios.

Si quieres ver mensajes entre objetos

Usa un diagrama de secuencia.

Es ideal cuando quieres explicar una operación concreta con cierto detalle técnico. Por ejemplo: login, crear reserva, solicitar préstamo o recuperar contraseña.

Aquí interesa ver quién llama a quién, en qué orden y qué respuestas se producen.

Si quieres representar estados

Usa un diagrama de estados.

Es perfecto para entidades con ciclo de vida claro. Por ejemplo: pedido, reserva, incidencia, matrícula, tarea o préstamo digital.

Este diagrama ayuda a controlar reglas. Qué cambios están permitidos, qué eventos provocan transiciones y qué estados finales existen.

Si quieres explicar un proceso paso a paso

Usa un diagrama de actividades.

Es una gran opción para procesos donde hay decisiones, caminos alternativos o responsabilidades repartidas. Por ejemplo: compra online, devolución, validación, entrega de tarea o creación de incidencia.

Como profesor, me parece uno de los diagramas UML de comportamiento más agradecidos para empezar, porque se entiende rápido y permite detectar pasos mal ordenados o decisiones incompletas.

Herramientas para crear diagramas UML de comportamiento

Los diagramas UML de comportamiento pueden crearse con herramientas gráficas, plugins de un IDE o lenguajes textuales. La elección depende del objetivo: aprender, documentar, trabajar en equipo, generar imágenes o versionar los modelos.

No hay una única herramienta perfecta para todo. Lo importante es que la herramienta no se convierta en el centro del aprendizaje. Primero hay que entender el diagrama; después ya elegiremos con qué dibujarlo.

Algunas opciones habituales son:

HerramientaTipoVentajasLimitaciones
PapyrusPlugin/entorno EclipseEnfoque UML completoPuede ser complejo al principio
PlantUMLTextualRápido, versionable y ligeroRequiere aprender sintaxis
StarUMLGráficaInterfaz clara orientada a UMLAlgunas funciones pueden depender de licencia
Visual ParadigmCASE completaMuy potente para modelado profesionalPuede ser excesiva para empezar
diagrams.netGráfica generalSencilla y accesibleNo valida UML de forma avanzada

Por qué PlantUML es útil para aprender y documentar

PlantUML permite escribir diagramas como texto. Esto puede parecer menos visual al principio, pero tiene ventajas muy interesantes.

Por ejemplo:

  • Se puede guardar junto al código.
  • Se puede versionar con Git.
  • Permite revisar cambios fácilmente.
  • Evita perder demasiado tiempo moviendo cajas y flechas.
  • Obliga a entender la estructura del diagrama.
  • Genera imágenes a partir de texto.

En mi caso, me gusta especialmente para contextos educativos porque reduce el ruido visual. El alumnado no se queda atascado alineando elementos, sino pensando en actores, mensajes, estados, transiciones o decisiones.

Para los diagramas UML de comportamiento, PlantUML resulta muy práctico porque permite crear rápidamente casos de uso, secuencias, estados y actividades.

Cuándo usar herramientas gráficas

Las herramientas gráficas también tienen mucho sentido, sobre todo cuando queremos trabajar de forma visual, presentar diagramas a otras personas o crear documentación más cuidada.

Por ejemplo, diagrams.net puede ser suficiente para un esquema sencillo. StarUML o Visual Paradigm pueden encajar mejor en un contexto más profesional. Papyrus puede ser interesante si se trabaja dentro del ecosistema Eclipse.

La clave es no perder de vista el objetivo. Una herramienta no arregla un mal modelo. Si el diagrama está mal planteado, da igual que esté hecho con la herramienta más potente del mercado.

Buenas prácticas para crear diagramas UML claros

Los diagramas UML de comportamiento deben ser claros, coherentes y útiles. Si un diagrama complica más de lo que aclara, algo no va bien.

Estas son algunas buenas prácticas que conviene aplicar.

No mezclar niveles de detalle

Uno de los errores más frecuentes es mezclar abstracciones.

Por ejemplo, en un mismo diagrama de actividades no conviene combinar pasos muy generales como “Gestionar pedido” con detalles demasiado concretos como “Comprobar si el campo email contiene @”. El resultado suele ser un diagrama irregular y difícil de leer.

Antes de empezar, decide el nivel de detalle. ¿Quieres explicar el proceso general o una operación concreta? ¿Estás modelando para usuarios, para alumnado o para programadores?

Usar nombres claros

Los nombres deben ayudar a entender.

En casos de uso, actividades y mensajes, conviene usar verbos: iniciar sesión, validar campos, registrar pedido, enviar confirmación, calcular total.

En estados y participantes, suelen funcionar mejor los sustantivos o nombres de situación: Pendiente, En progreso, Finalizada, Cancelada, UsuarioRepository, AuthService.

Esta diferencia ayuda a no confundir acciones con estados.

Evitar diagramas enormes

Un diagrama enorme rara vez es mejor. Puede parecer completo, pero muchas veces es ilegible.

Si un diagrama empieza a tener demasiadas flechas, demasiados actores o demasiadas decisiones, puede ser mejor dividirlo en varios diagramas más pequeños.

Los diagramas UML de comportamiento funcionan mejor cuando responden a una pregunta concreta. Por ejemplo: “¿cómo se crea una reserva?” es mejor que “¿cómo funciona toda la aplicación?”.

Documentar lo que el dibujo no explica

Un diagrama puede ser muy útil, pero no siempre basta por sí solo. En proyectos reales, algunos casos de uso importantes deberían acompañarse de una especificación textual.

Por ejemplo, para el caso de uso “Entregar tarea” podríamos documentar:

CampoEjemplo
NombreEntregar tarea
Actor principalAlumno
ObjetivoPermitir que el alumno suba una entrega
PrecondicionesEl alumno ha iniciado sesión y la tarea está abierta
Flujo principalSeleccionar tarea, adjuntar archivo, confirmar entrega
Flujos alternativosArchivo no válido, plazo cerrado, error de conexión
PostcondicionesLa entrega queda registrada

Esto convierte el diagrama en una herramienta mucho más completa. El dibujo ofrece una visión rápida, y el texto aclara los detalles que no caben bien en el diagrama.

Mantener los diagramas actualizados

Otro error común es crear diagramas al inicio del proyecto y olvidarse de ellos.

Si el sistema cambia, los diagramas también deberían cambiar. De lo contrario, dejan de ser documentación y se convierten en una fuente de confusión.

Aquí PlantUML puede ayudar bastante, porque permite versionar los diagramas junto al código. Si el diagrama está en texto, es más fácil revisarlo, modificarlo y mantenerlo actualizado.

Ejemplo integral: sistema de reservas

Para ver cómo se complementan los diagramas UML de comportamiento, imaginemos un sistema de reservas de salas de estudio.

El sistema permite que los usuarios consulten salas disponibles, creen reservas, cancelen reservas y consulten sus propias reservas. Además, un administrador puede gestionar salas. Una reserva puede estar solicitada, confirmada, cancelada o finalizada. Para crear una reserva, el sistema comprueba disponibilidad, registra la reserva y envía una confirmación.

Este mismo sistema puede representarse desde distintas perspectivas.

Casos de uso del sistema de reservas

El diagrama de casos de uso mostraría qué puede hacer cada actor.

Actor: Usuario
- Consultar salas
- Crear reserva
- Cancelar reserva
- Consultar mis reservas

Actor: Administrador
- Gestionar salas

Relaciones:
- Crear reserva incluye comprobar disponibilidad
- Crear reserva incluye enviar confirmación

Aquí vemos el alcance funcional del sistema.

Secuencia para crear una reserva

El diagrama de secuencia mostraría qué componentes colaboran cuando el usuario crea una reserva.

@startuml
actor Usuario
participant ReservaController
participant ReservaService
participant SalaRepository
participant ReservaRepository
participant EmailService

Usuario -> ReservaController: solicitarReserva(sala, fecha, hora)
ReservaController -> ReservaService: crearReserva(datos)
ReservaService -> SalaRepository: comprobarDisponibilidad(sala, fecha, hora)
SalaRepository --> ReservaService: disponible

alt sala disponible
ReservaService -> ReservaRepository: guardar(reserva)
ReservaService -> EmailService: enviarConfirmacion(reserva)
ReservaService --> ReservaController: reservaConfirmada
ReservaController --> Usuario: mostrarConfirmacion()
else sala no disponible
ReservaService --> ReservaController: errorDisponibilidad
ReservaController --> Usuario: mostrarError()
end
@enduml

Aquí vemos la colaboración técnica.

Estados de una reserva

El diagrama de estados mostraría el ciclo de vida de la reserva.

@startuml
[*] --> Solicitada
Solicitada --> Confirmada : confirmar()
Solicitada --> Cancelada : cancelar()
Confirmada --> Cancelada : cancelar()
Confirmada --> Finalizada : cumplirFecha()
Cancelada --> [*]
Finalizada --> [*]
@enduml

Aquí vemos qué estados existen y qué transiciones están permitidas.

Actividades para crear una reserva

El diagrama de actividades mostraría el flujo del proceso.

@startuml
start
:Seleccionar sala;
:Seleccionar fecha y hora;
:Comprobar disponibilidad;
if (¿Disponible?) then (sí)
:Registrar reserva;
:Enviar confirmación;
:Mostrar reserva confirmada;
else (no)
:Mostrar mensaje de no disponibilidad;
endif
stop
@enduml

Aquí vemos los pasos, la decisión principal y los caminos posibles.

Este ejemplo resume muy bien el valor de los diagramas UML de comportamiento: cada uno cuenta una parte distinta del mismo sistema. Ninguno lo explica todo, pero juntos ofrecen una visión mucho más completa.

Conclusión: UML no va de dibujar, va de entender mejor el sistema

Los diagramas UML de comportamiento permiten representar lo que ocurre dentro de un sistema cuando se usa. Nos ayudan a explicar funcionalidades, interacciones, estados, decisiones y procesos.

El diagrama de casos de uso define qué puede hacer cada actor. El diagrama de secuencia muestra mensajes ordenados en el tiempo. El diagrama de comunicación destaca la colaboración entre objetos. El diagrama de estados describe el ciclo de vida de una entidad. Y el diagrama de actividades representa pasos, decisiones y caminos alternativos.

Pero lo más importante no es memorizar símbolos. Lo realmente útil es saber elegir el diagrama adecuado.

En mi experiencia, tanto en desarrollo como en docencia, UML empieza a tener sentido cuando dejamos de verlo como una obligación y empezamos a usarlo como una herramienta para pensar. Un buen diagrama aclara. Un mal diagrama decora. Y en software, aclarar antes de construir ahorra mucho trabajo después.

Por eso, si estás aprendiendo análisis y diseño de software, no intentes hacer todos los diagramas UML de comportamiento a la vez. Empieza por la pregunta: qué quiero entender. Después elige el diagrama que mejor responda.

Preguntas frecuentes sobre diagramas UML de comportamiento

¿Qué son los diagramas UML de comportamiento?

Los diagramas UML de comportamiento son diagramas que representan lo que ocurre cuando un sistema se usa. Muestran funcionalidades, interacciones, estados, procesos, decisiones y flujos de trabajo.

¿Qué diferencia hay entre un diagrama de clases y un diagrama de comportamiento?

Un diagrama de clases muestra la estructura del sistema: clases, atributos, métodos y relaciones. Los diagramas UML de comportamiento muestran cómo funciona el sistema durante su uso.

¿Cuáles son los principales diagramas UML de comportamiento?

Los principales diagramas UML de comportamiento son el diagrama de casos de uso, el diagrama de secuencia, el diagrama de comunicación, el diagrama de estados y el diagrama de actividades.

¿Cuándo usar un diagrama de casos de uso?

Conviene usar un diagrama de casos de uso cuando queremos representar qué funcionalidades ofrece el sistema a cada actor externo. Es muy útil al inicio del análisis.

¿Cuándo usar un diagrama de secuencia?

Conviene usar un diagrama de secuencia cuando queremos mostrar los mensajes entre participantes en una operación concreta y en orden temporal.

¿Qué diferencia hay entre diagrama de secuencia y diagrama de comunicación?

El diagrama de secuencia se centra en el orden temporal de los mensajes. El diagrama de comunicación se centra en qué objetos colaboran y cómo se conectan mediante mensajes numerados.

¿Cuándo usar un diagrama de estados?

Conviene usar un diagrama de estados cuando una entidad tiene un ciclo de vida claro, con estados y transiciones. Por ejemplo: pedido, reserva, incidencia, matrícula o préstamo.

¿Cuándo usar un diagrama de actividades?

Conviene usar un diagrama de actividades cuando queremos representar los pasos de un proceso, incluyendo decisiones, caminos alternativos o responsabilidades.

¿PlantUML sirve para crear diagramas UML de comportamiento?

Sí. PlantUML permite crear diagramas UML de comportamiento mediante texto. Es útil para casos de uso, secuencia, estados y actividades, y facilita versionar los diagramas junto al código.

¿Cuál es el error más común al crear diagramas UML de comportamiento?

Uno de los errores más comunes es hacer diagramas demasiado grandes o mezclar niveles de detalle. Un buen diagrama debe responder a una pregunta concreta y ser fácil de entender.

julian lopez jimenez

Hola, encantado de conocerte.

Regístrate para recibir las últimas entradas, cada domingo.

¡No hago spam!

Recibe nuevas entradas cada semana

Una seleccion de articulos, recursos y novedades sobre informatica, FP y tecnologia aplicada.

julian lopez jimenez

Hola, encantado de conocerte.

Regístrate para recibir las últimas entradas, cada domingo.

¡No hago spam!

Tambien te puede interesar