Diagramas de estados, o diagramas de máquinas de estado, son un componente poderoso del Lenguaje Unificado de Modelado (UML) utilizado para modelar el comportamiento dinámico de los sistemas. Ilustran cómo un objeto o sistema cambia entre estados distintos en respuesta a eventos, lo que los hace ideales para sistemas reactivos como un cajero automático bancario (ATM). Este estudio de caso explora cómo un diagrama de estados puede representar el comportamiento de un ATM, un sistema del mundo real familiar con estados claros y transiciones desencadenadas por eventos. Al examinar el ciclo de vida del ATM, destacaremos conceptos clave del diagrama de estados, incluyendo estados, transiciones, acciones, estados compuestos y transiciones sin desencadenantes. Este estudio de caso también demuestra cómo herramientas como Visual Paradigm pueden simplificar la creación de estos diagramas.
A continuación se muestra un diagrama de máquina de estados creado con el editor de modelado de diagramas de máquinas de estados de Visual Paradigm:

Los diagramas de estados capturan el comportamiento de un sistema al definir:
Estados: Condiciones o situaciones específicas durante el ciclo de vida del sistema (por ejemplo, “Inactivo” o “Atendiendo al cliente”).
Transiciones: Movimientos entre estados desencadenados por eventos (por ejemplo, inserción de tarjeta).
Acciones: Actividades realizadas al entrar, salir o transitar entre estados (por ejemplo, leer una tarjeta).
Estados compuestos: Estados que contienen subestados para el modelado jerárquico (por ejemplo, “Atendiendo al cliente” con subestados como “Autenticación del cliente”).
Estados inicial y final: Los puntos de inicio y posibles puntos finales del comportamiento del sistema.
Transiciones sin desencadenantes: Transiciones automáticas sin eventos explícitos (por ejemplo, pasar del estado de autoprueba al estado inactivo).
Estos conceptos son fundamentales para modelar sistemas cuyo comportamiento depende del estado actual y de estímulos externos, como un ATM.
Un cajero automático bancario facilita transacciones del cliente como retiros en efectivo, depósitos y consultas de saldo. Su comportamiento es impulsado por eventos, con estados distintos que cambian según las acciones del usuario (por ejemplo, inserción de tarjeta, introducción de PIN) o condiciones del sistema (por ejemplo, pasar una prueba de autoprueba). Un diagrama de estados es una herramienta eficaz para modelar este comportamiento porque define claramente los estados, transiciones y acciones del ATM, asegurando una representación estructurada para el diseño, implementación y mantenimiento.
El ATM opera en los siguientes estados:
Apagado
Descripción: La ATM está apagada y no puede interactuar con los usuarios. Este es el estado inicial antes de que se active el sistema.
Características clave: No se pueden realizar operaciones hasta que se encienda la ATM.
Prueba automática
Descripción: Al encenderse, la ATM entra en este estado para realizar una prueba diagnóstica, verificando componentes como el lector de tarjetas, el teclado y la dispensadora de efectivo.
Resultados:
Aprobado: La ATM pasa al estado de “Espera”.
Fallido: La ATM pasa al estado de “Fuera de servicio”.
Características clave: Este estado garantiza que la ATM esté operativa antes de atender a los clientes.
Fuera de servicio
Descripción: Se entra si falla la prueba automática o si ocurre un error crítico (por ejemplo, fallo en la dispensadora de efectivo). La ATM no está operativa y requiere mantenimiento.
Características clave: Actúa como un estado final hasta que se repare o se reinicie.
Espera
Descripción: La ATM está encendida, operativa y esperando a que un cliente inicie una transacción insertando una tarjeta bancaria o de crédito.
Características clave: El estado principal de espera para la interacción del cliente.
Atendiendo al cliente
Descripción: Un estado compuesto que se entra cuando un cliente inserta una tarjeta. Incluye todas las interacciones del cliente, desde la autenticación hasta la finalización de la transacción.
Acción de entrada: leerTarjeta (la ATM lee los datos de la tarjeta).
Acción de salida: expulsarTarjeta (la ATM libera la tarjeta).
Subestados:
Autenticación del cliente
La ATM solicita al cliente que ingrese un PIN y lo valida.
Si el PIN es incorrecto, la ATM puede permitir intentos adicionales (por ejemplo, hasta tres intentos) antes de expulsar la tarjeta.
Selección de transacción
El cliente selecciona un tipo de transacción (por ejemplo, retiro, depósito, consulta de saldo).
Transacción
La ATM procesa la transacción seleccionada (por ejemplo, dispensar efectivo, aceptar un depósito, mostrar el saldo).
Una vez completada, la ATM regresa al estado “Ocioso”.
La ATM cambia entre estados según eventos o condiciones. Las transiciones clave son:
|
Transición |
Desde estado |
Hacia estado |
Disparador |
Acción |
|---|---|---|---|---|
|
Encendido |
Apagado |
Prueba automática |
La ATM está encendida |
Realizar arranque (inicializar hardware) |
|
Prueba automática exitosa |
Prueba automática |
Ocioso |
Ninguno (sin disparador) |
Ninguno |
|
Error en la prueba automática |
Prueba automática |
Fuera de servicio |
La prueba falla |
Ninguno |
|
Inserción de tarjeta |
Inactivo |
Atendiendo al cliente |
El cliente inserta la tarjeta |
leerTarjeta |
|
Autenticación exitosa |
Autenticación del cliente |
Seleccionando transacción |
Se ingresó un PIN válido |
Ninguno |
|
Fallo en la autenticación (después de intentos) |
Autenticación del cliente |
Inactivo |
PIN inválido (excede intentos) |
expulsarTarjeta |
|
Transacción seleccionada |
Seleccionando transacción |
Transacción |
El cliente selecciona la transacción |
Ninguno |
|
Transacción completada |
Transacción |
Inactivo |
La transacción finaliza |
expulsarTarjeta |
|
Cancelar |
Cualquier subestado en Servir al cliente |
Inactivo |
El cliente cancela |
expulsarTarjeta |
Este diagrama de estados demuestra varios conceptos centrales de los diagramas de estados:
Estados: El comportamiento de la ATM se divide en estados distintos (por ejemplo, Apagado, Inactivo, Servir al cliente), cada uno representando un estado específico.
Transiciones: Eventos como la inserción de tarjeta o la validación del PIN desencadenan cambios de estado, definiendo claramente el flujo del sistema.
Acciones: Acciones de entrada (por ejemplo, leerTarjeta) y acciones de salida (por ejemplo, expulsarTarjeta) especifican actividades durante los cambios de estado.
Estados compuestos: El estado «Servir al cliente» contiene subestados (Autenticación del cliente, Selección de transacción, Transacción), lo que permite un modelado jerárquico.
Estados inicial y final: «Apagado» es el estado inicial, mientras que «Fuera de servicio» actúa como estado final hasta que se realice el mantenimiento.
Transiciones sin desencadenante: La transición de «Prueba automática» a «Inactivo» ocurre automáticamente si la prueba tiene éxito, sin necesidad de un evento explícito.
Los diagramas de estados son ideales para modelar una ATM porque:
Estados finitos: La ATM tiene un conjunto claro de estados (por ejemplo, Inactivo, Servir al cliente) que definen su comportamiento.
Comportamiento impulsado por eventos: Los cambios se activan mediante acciones del usuario (por ejemplo, inserción de tarjeta, introducción del PIN) o condiciones del sistema (por ejemplo, resultados de pruebas automáticas).
Estructura jerárquica: Los estados compuestos como «Atendiendo al cliente» permiten un modelado detallado de interacciones complejas.
Claridad para los interesados: El diagrama proporciona una representación visual que los desarrolladores, diseñadores y partes interesadas pueden comprender fácilmente, facilitando el diseño y mantenimiento del sistema.
Visual Paradigm es una potente herramienta de modelado UML que simplifica la creación de diagramas de estado. Sus características incluyen:
Interfaz arrastrar y soltar: Agregue fácilmente estados, transiciones y acciones.
Herramientas de simulación: Pruebe las transiciones de estado para validar la lógica del diagrama.
Plantillas: Utilice plantillas predefinidas para sistemas como cajeros automáticos para acelerar el modelado.
Generación de código: Genere esqueletos de código (por ejemplo, Java, C++) a partir del diagrama.
Colaboración: Edición en tiempo real y comentarios por parte del equipo para proyectos colaborativos.
Para crear el diagrama de estado del cajero automático en Visual Paradigm:
Abra Visual Paradigm y seleccioneDiagrama > Nuevo > Diagrama de máquina de estados.
Agregue estados (por ejemplo, Apagado, Prueba automática, Inactivo) utilizando la herramienta de arrastrar y soltar.
Dibuje transiciones con desencadenantes adecuados (por ejemplo, «Encender», «Inserción de tarjeta»).
Defina acciones (por ejemplo, leerTarjeta, expulsarTarjeta) para entradas, salidas o transiciones.
Utilice la simulación para probar el flujo y asegurar la precisión.
El diagrama de estado de cajero automático del banco ilustra eficazmente cómo los diagramas de estado UML pueden modelar el comportamiento de sistemas del mundo real. Al definir estados claros, transiciones impulsadas por eventos y acciones, el diagrama proporciona una representación estructurada de la operación del cajero automático. Este enfoque mejora la comprensión, facilita el diseño del sistema y apoya la implementación y el mantenimiento. Herramientas como Visual Paradigm facilitan la creación, prueba y compartición de estos diagramas, asegurando precisión y colaboración en el desarrollo del sistema.