A Diagrama de máquina de estados UML, también conocido como un diagrama de estados o statechart, es una herramienta de modelado potente utilizada para representar el ciclo de vida y comportamiento dinámico de un objeto único o componente del sistema. Captura cómo un objeto transita entre diferentes estados en respuesta a eventos, lo que permite una visualización clara de la lógica impulsada por eventos.

✅ A diferencia de diagramas de secuencia, que se centran en las interacciones entre múltiples objetos a lo largo del tiempo, los diagramas de máquinas de estados enfatizan la evolución interna del estado de una entidad—lo que los hace ideales para modelar sistemas complejos y reactivos.
Comprender estos elementos fundamentales es clave para crear diagramas de estados precisos y significativos.
| Elemento | Descripción | Representación visual |
|---|---|---|
| Estado | Una condición o situación durante la vida de un objeto en la que satisface ciertas restricciones, realiza acciones o espera un evento. | Rectángulo redondeado |
| Estado inicial | Marca el iniciodel autómata de estados. Un círculo negro relleno. | ● |
| Estado final | Indica elfinaldel proceso. Un círculo concéntrico (punto negro dentro de un círculo). | ○● |
| Transición | Una flecha dirigida que muestra el movimiento de un estado a otro. | ➔ |
| Evento | Un incidente que desencadena una transición. Puede ser: • Evento de señal (por ejemplo, PagoRecibido)• Evento de llamada (por ejemplo, iniciarCalentamiento())• Evento de tiempo (por ejemplo, después de 5s)• Evento de cambio (por ejemplo, temperatura > 80°C) |
evento [condición] / acción |
| Condición de guardia | Una expresión booleana que debe ser verdadera para que se produzca una transición. | [saldo > 0] |
| Acción / Entrada/Salida |
|
entrada / print("Entrando en reposo") |
| Actividad | Comportamiento continuo e interrumpible que se realiza durante un estado. | hacer / ejecutar diagnósticos() |
| Subestado (estado compuesto) | Un estado que contiene estados anidados, utilizado para gestionar la complejidad. | Estados anidados dentro de una caja más grande |
| Estado de historia | Un pseudoestado que recuerda el último subestado activo antes de salir de un estado compuesto. Permite la reanudación. | H (con un círculo alrededor) |
| División | Divide un flujo único en flujos paralelos concurrentes flujos. | • (círculo relleno) |
| Unir | Combina múltiples flujos concurrentes en uno solo. | • (círculo relleno) |
📌 Nota: Las transiciones a menudo se etiquetan como:
evento [condición] / acción
Ejemplo:PagoRecibido [saldo >= 0] / actualizarSaldo()
Elige la entidad a modelar (por ejemplo, Controlador de peaje, Sistema de calefacción, Cédula de votación).
Define todas las condiciones significativas en las que puede estar el objeto:
Inactivo
Vehículo detectado
Procesando pago
Pago recibido
Puerta abierta
Error / Fallo del sistema
Reiniciando
Comience conEstado inicial (●).
Termine conEstado final (○●).
Pregunte:¿Qué causa que el objeto cambie de estado?
| Desde el estado | Evento | Guardia | Al estado | Acción |
|---|---|---|---|---|
| Inactivo | Vehículo detectado | — | Vehículo detectado | Iniciar temporizador |
| Vehículo detectado | Pago recibido | saldo ≥ 0 | Pago recibido | Abrir puerta |
| Vehículo detectado | Tiempo agotado | — | Error | Registrar fallo |
Utilice entrada, salida, y haga acciones:
entrada / log("Entrando al estado de pago")
haga / validateCard()
salida / closeGate()
Divida los grandes estados en subestados:
Estado de pago → Validando, Procesando, Confirmado
Utilice estados de historial (H) para regresar al último subestado activo después de una interrupción.
Utilice Fork (•) para dividir en flujos paralelos:
Un flujo: Procesar el pago
Otro: Registrar los datos del vehículo
Combinar conUnir (•) para reanudar un único camino.
| Sistema | Estados | Eventos clave | Casos de uso |
|---|---|---|---|
| Carril de peaje automatizado | Inactivo → Vehículo detectado → Pago recibido → Puerta abierta → Reiniciar | VehículoDetectado, PagoRecibido, Tiempo de espera agotado |
Gestionar vehículos, prevenir fraudes |
| Sistema de calefacción | Inactivo → Calentamiento → Fallo | temp < umbral, temp > 90°C, falla del ventilador |
Monitoreo de seguridad |
| Plataforma de votación digital | Borrador → Enviado → Verificado → Contado → Finalizado | enviarVoto(), verificarIdentidad(), limiteTiempoExcedido() |
Votación segura y verificable |
| Proceso de subasta | Abierto → Ofertas → Cerrado → Procesamiento de pago | ofertaRealizada, finalSubasta, pagoVerificado |
Gestión concurrente de ofertas y pagos |
| MGUK (Generador de motor cinético Fórmula 1) | En espera → Recuperación → Carga → Reinicio | nivelEnergía > 50%, se recibió señal de reinicio |
Recuperación de energía de alto rendimiento |
🔍 Estos diagramas ayudan a ingenieros y diseñadoresanticipar casos extremos, validar lógica, y comunicar el comportamiento del sistema claramente entre equipos.
Este modelo incluye los subestados solicitados para la validación de placas y la generación de recibos, así como los flujos de penalización y reinicio.
@startuml
[*] --> Idle
Idle --> InRange : Detección de vehículo
state InRange {
[*] --> PlateValidation
PlateValidation --> PlateRead : Éxito
PlateValidation --> InvalidPlate : Manejo de errores
}
InRange --> PaymentReceived : Éxito en el pago
state PaymentReceived {
[*] --> ReceiptGeneration
}
PaymentReceived --> Idle : Paso despejado
InRange --> NoPayment : Fallo en el pago
NoPayment --> Penalty : Aplicar penalización
Penalty --> Idle : Reiniciar sistema
@endum
Este ejemplo se centra en el comportamiento dependiente del estado desencadenado por eventos de temperatura (Demasiado caliente/Demasiado frío) y manejo de fallos.
@startuml
[*] --> Idle
Idle --> Heating : Demasiado frío
Idle --> Cooling : Demasiado caliente
state Cooling {
[*] --> Startup
Startup --> Ready : Ventilador/compresor en funcionamiento
Ready --> Running
}
Heating --> Idle : OK
Cooling --> Idle : OK
Heating --> Failure : Evento de fallo
Cooling --> Failure : Evento de fallo
Failure --> Idle : Fallo resuelto [5]
@endum
@startuml
[*] --> Idle
Idle --> Heating : Demasiado frío
Idle --> Cooling : Demasiado caliente
state Cooling {
[*] --> Startup
Startup --> Ready : Ventilador/compresor en funcionamiento
Ready --> Running
}
Heating --> Idle : OK
Cooling --> Idle : OK
Heating --> Failure : Evento de fallo
Cooling --> Failure : Evento de fallo
Failure --> Idle : Fallo resuelto
@endum
Este modelo refleja la lógica específica de transición mencionada en las fuentes, donde un estado de error conduce a un reinicio antes de regresar al estado inactivo.
@startuml
[*] --> Ready
Ready --> Error : Fallo detectado
Error --> Reset : Iniciar reinicio
Reset --> Idle : Reinicio completado
Ready --> Idle : Comando de espera
Idle --> Ready : Activar
@endum
Este diagrama utiliza Nodos Fork y Join nodos para mostrar subactividades concurrentes: procesamiento de la oferta y autorización del límite de pago.
@startuml
[*] --> EnteringAuction
state EnteringAuction {
state fork_node <<fork>>
[*] --> fork_node
fork_node --> ProcessingBid
fork_node --> AuthorizingPayment
state join_node <<join>>
ProcessingBid --> join_node
AuthorizingPayment --> join_node
join_node --> [*]
}
EnteringAuction --> Canceled : Salida del usuario
EnteringAuction --> Rejected : Oferta/Pago inválidos
EnteringAuction --> Success : Subasta cerrada
@endum
Basado en la intención de capturar el ciclo de vida de votación desde su inicio hasta la presentación final.
@startuml
[*] --> Initiation
Initiation --> IdentityVerified : Verificación de credenciales
IdentityVerified --> CastingVote : Acceso concedido
CastingVote --> Reviewing : Selección realizada
Reviewing --> Submitted : Confirmar voto
Submitted --> [*] : Proceso completado
Reviewing --> CastingVote : Editar selección
IdentityVerified --> Rejected : Verificación fallida
@endum
Las fuentes enfatizan que escribir el código anterior requiere conocimiento de sintaxis específica y codificación manual, lo que tiene una curva de aprendizaje más pronunciada. El generador de diagramas de Visual Paradigm AI simplifica esto permitiéndote simplemente escribir: “Crea una máquina de estados para un sistema de peaje con estados de validación de placas y penalización” y haciendo que el software renderice instantáneamente la visualización y la lógica subyacente para ti.
El generador de diagramas de Visual Paradigm AI transforma la modelización tradicional al convertir el lenguaje natural en diagramas de máquinas de estados de alta calidad—rápidos, precisos e inteligentes.
Ya no necesitas arrastrar y alinear elementos manualmente.
La IA genera undiagrama completamente dispuesto y bien estructuradoa partir de un simple prompt en cuestión de segundos.
💬 Ejemplo de prompt:
“Crea un diagrama de máquina de estados para un sistema de peaje que detecta vehículos, procesa pagos y maneja errores.”
Describe tu sistema eninglés sencillo—no necesitas aprender sintaxis como PlantUML.
La IA interpreta la intención y crea la estructura correcta.
✅ Prompt:
“Modela un sistema de calefacción que comienza a calentar cuando la temperatura baja de 18 °C, se detiene a 22 °C y entra en fallo si el ventilador falla.”
→ La IA genera:Inactivo → Calentamiento → Fallo, con eventos y condiciones adecuados.
Participa en undiálogopara refinar el modelo:
“Cambia el nombre de ‘Error’ a ‘Fallo del sistema’”
“Agrega un estado de reinicio entre error e inactivo”
“Inserta una condición de tiempo de espera después de 10 segundos en ‘Procesando pago’”
🔄 La IA actualiza el diagrama en tiempo real según los comentarios.
La IA garantiza:
Notación UML correcta: Los desencadenantes, condiciones y acciones de entrada/salida están correctamente formateados.
Detección de errores: Marca estados inalcanzables, transiciones conflictivas o eventos faltantes.
Distribución óptima: Organiza automáticamente los estados para mejorar la legibilidad y la claridad visual.
Una vez satisfecho:
Exportar oimportar directamente en la edición profesional de Visual Paradigm.
Usar para:
Documentación del diseño del sistema
Presentaciones para partes interesadas
Generación de código (a través de modelos UML)
Desarrollo orientado a modelos (MDD)
| Práctica | ¿Por qué es importante |
|---|---|
| Mantenga los estados atómicos y significativos | Evite estados demasiado complejos o ambiguos como «Algo sucedió» |
| Use los estados compuestos con prudencia | Divida los comportamientos complejos (por ejemplo, «Procesamiento de pago» → «Validación», «Transferencia») |
| Defina siempre condiciones para las transiciones críticas | Evite cambios de estado no deseados (por ejemplo, evite cobrar si el saldo < 0) |
| Minimizar los estados inalcanzables | Asegurarse de que cada estado sea alcanzable desde el estado inicial |
| Utilizar estados de historial para procesos interrumpidos | Mejorar la usabilidad (por ejemplo, reanudar la votación después de un tiempo de espera) |
| Limitar la concurrencia con Fork/Join | Evitar sobrecargar con demasiados flujos paralelos |
| Beneficio | Descripción |
|---|---|
| Claridad | Visualiza el comportamiento complejo de forma intuitiva |
| Previsibilidad | Muestra cómo los eventos impulsan los cambios de estado |
| Prevención de errores | Revela casos límite y transiciones inválidas temprano |
| Comunicación | Permite a desarrolladores, testers y partes interesadas alinearse sobre el comportamiento del sistema |
| Fundamento para el código | Puede usarse para generar máquinas de estados en código (por ejemplo, en C++, Python, Java) |
Especificación UML 2.5 – Estándares oficiales para máquinas de estados
Visual Paradigm – Herramienta completa de modelado UML con generación de diagramas mediante IA
PlantUML – Diagramación basada en texto (para usuarios avanzados)
Enterprise Architect, StarUML, Lucidchart – Plataformas alternativas de modelado
🔄 Un diagrama de máquina de estados no es solo una ayuda visual: es un contrato de diseño que define cómo debería comportarse su sistema bajo diversas condiciones.
Con El generador de diagramas con IA de Visual Paradigm, crear, refinar y desplegar estos diagramas nunca había sido tan fácil. Ya sea que esté modelando un sistema de peaje, una plataforma de votación o un componente de carreras de alto rendimiento, ahora puede convertir sus ideas en diagramas precisos y profesionales, más rápido y con mayor inteligencia que nunca antes.
✅ Comience a modelar hoy:
🌐 Pruebe el generador de diagramas con IA de Visual Paradigm
🧠 Describa su sistema en inglés sencillo — obtenga un diagrama perfecto de máquina de estados UML en segundos.
📌 Consejo profesional: Guarde sus diagramas generados por IA como plantillas para su uso futuro: acelere el diseño en sistemas similares como pasarelas de pago, dispositivos IoT o motores de flujo de trabajo.
📘 Domine el arte de las máquinas de estados. Construya sistemas más inteligentes. Comuníquese con claridad.
— Su guía de máquinas de estados UML, impulsada por IA