Diagramas de estados, ou diagramas de máquinas de estados, são um componente poderoso da Linguagem Unificada de Modelagem (UML) usada para modelar o comportamento dinâmico de sistemas. Elas ilustram como um objeto ou sistema muda entre estados distintos em resposta a eventos, tornando-as ideais para sistemas reativos como um Caixa Eletrônico Bancário (ATM). Este estudo de caso explora como um diagrama de estados pode representar o comportamento de um ATM, um sistema do mundo real familiar com estados claros e transições acionadas por eventos. Ao analisar o ciclo de vida do ATM, destacaremos conceitos-chave dos diagramas de estados, incluindo estados, transições, ações, estados compostos e transições sem gatilho. Este estudo de caso também demonstra como ferramentas como Visual Paradigm podem simplificar a criação desses diagramas.
Abaixo está um diagrama de máquina de estados criado com o editor de modelagem de diagramas de máquinas de estados do Visual Paradigm:

Diagramas de estados capturam o comportamento de um sistema definindo:
Estados: Condições ou situações específicas durante o ciclo de vida do sistema (por exemplo, “Ocioso” ou “Atendendo Cliente”).
Transições: Movimentações entre estados acionadas por eventos (por exemplo, inserção do cartão).
Ações: Atividades realizadas ao entrar, sair ou transitar entre estados (por exemplo, ler o cartão).
Estados Compostos: Estados que contêm subestados para modelagem hierárquica (por exemplo, “Atendendo Cliente” com subestados como “Autenticação do Cliente”).
Estados Inicial e Final: Os pontos de início e potenciais finalizações do comportamento do sistema.
Transições Sem Gatilho: Transições automáticas sem eventos explícitos (por exemplo, passar do estado de auto-teste para o estado ocioso).
Esses conceitos são essenciais para modelar sistemas cujo comportamento depende do estado atual e de estímulos externos, como um ATM.
Um caixa eletrônico bancário facilita transações do cliente, como saques de dinheiro, depósitos e consultas de saldo. Seu comportamento é acionado por eventos, com estados distintos que mudam com base em ações do usuário (por exemplo, inserir um cartão, digitar um PIN) ou condições do sistema (por exemplo, passar por um auto-teste). Um diagrama de estados é uma ferramenta eficaz para modelar esse comportamento, pois define claramente os estados, transições e ações do ATM, garantindo uma representação estruturada para projeto, implementação e manutenção.
O ATM opera nos seguintes estados:
Desligado
Descrição: O ATM está desligado e não pode interagir com os usuários. Este é o estado inicial antes do sistema ser ativado.
Características Principais: Nenhuma operação é possível até que o ATM seja ligado.
Auto-teste
Descrição: Ao ser ligado, o ATM entra neste estado para realizar um teste de diagnóstico, verificando componentes como leitor de cartões, teclado e dispensador de dinheiro.
Resultados:
Passou: O ATM transita para o estado “Ocioso”.
Falhou: O ATM transita para o estado “Fora de Serviço”.
Características Principais: Este estado garante que o ATM esteja operacional antes de atender clientes.
Fora de Serviço
Descrição: Entrado se o auto-teste falhar ou se ocorrer um erro crítico (por exemplo, falha no dispensador de dinheiro). O ATM está inoperante e requer manutenção.
Características Principais: Atua como um estado final até que seja reparado ou redefinido.
Ocioso
Descrição: O ATM está ligado, operacional e aguardando que um cliente inicie uma transação inserindo um cartão bancário ou de crédito.
Características Principais: O estado principal de espera para interação com o cliente.
Atendendo Cliente
Descrição: Um estado composto entrado quando o cliente insere um cartão. Ele abrange todas as interações do cliente, desde a autenticação até a conclusão da transação.
Ação de Entrada: lerCartao(o ATM lê os dados do cartão).
Ação de Saída: ejectCard(o ATM libera o cartão).
Subestados:
Autenticação do Cliente
O ATM solicita ao cliente que digite um PIN e o valida.
Se o PIN estiver incorreto, o ATM pode permitir tentativas adicionais (por exemplo, até três tentativas) antes de devolver o cartão.
Seleção de Transação
O cliente seleciona o tipo de transação (por exemplo, saque, depósito, consulta de saldo).
Transação
O ATM processa a transação selecionada (por exemplo, dispensar dinheiro, aceitar um depósito, exibir o saldo).
Após a conclusão, o ATM retorna ao estado “Ocioso”.
O ATM transita entre estados com base em eventos ou condições. As transições principais são:
|
Transição |
Do Estado |
Para Estado |
Gatilho |
Ação |
|---|---|---|---|---|
|
Ligar |
Desligado |
Teste Automático |
O ATM está ligado |
Executar inicialização (inicializar hardware) |
|
Teste Automático Bem-Sucedido |
Teste Automático |
Ocioso |
Nenhum (sem gatilho) |
Nenhum |
|
Falha no Auto teste |
Auto teste |
Fora de Serviço |
Teste falha |
Nenhum |
|
Inserção do Cartão |
Inativo |
Atendendo Cliente |
Cliente insere o cartão |
leitura do cartão |
|
Autenticação bem-sucedida |
Autenticação do Cliente |
Selecionando Transação |
PIN válido inserido |
Nenhum |
|
Falha na Autenticação (após tentativas) |
Autenticação do Cliente |
Inativo |
PIN inválido (ultrapassa tentativas) |
ejetar cartão |
|
Transação Selecionada |
Selecionando Transação |
Transação |
Cliente seleciona transação |
Nenhum |
|
Transação Completa |
Transação |
Inativo |
Transação finaliza |
ejectCard |
|
Cancelar |
Qualquer subestado em Atendimento ao Cliente |
Ocioso |
Cliente cancela |
ejectCard |
Este diagrama de estados demonstra vários conceitos centrais de diagramas de estados:
Estados: O comportamento do ATM é dividido em estados distintos (por exemplo, Desligado, Ocioso, Atendimento ao Cliente), cada um representando uma condição específica.
Transições: Eventos como a inserção do cartão ou a validação do PIN desencadeiam mudanças de estado, definindo claramente o fluxo do sistema.
Ações: Ações de entrada (por exemplo, readCard) e ações de saída (por exemplo, ejectCard) especificam atividades durante as mudanças de estado.
Estados Compostos: O estado “Atendimento ao Cliente” contém subestados (Autenticação do Cliente, Seleção de Transação, Transação), permitindo modelagem hierárquica.
Estados Inicial e Final: “Desligado” é o estado inicial, enquanto “Fora de Serviço” atua como estado final até que a manutenção seja realizada.
Transições Sem Gatilho: A transição de “Teste Automático” para “Ocioso” ocorre automaticamente se o teste for bem-sucedido, sem a necessidade de um evento explícito.
Diagramas de estados são ideais para modelar um ATM porque:
Estados Finitos: O ATM possui um conjunto claro de estados (por exemplo, Ocioso, Atendimento ao Cliente) que definem seu comportamento.
Comportamento Orientado a Eventos: As transições são acionadas por ações do usuário (por exemplo, inserção de cartão, digitação do PIN) ou condições do sistema (por exemplo, resultados do teste automático).
Estrutura Hierárquica: Estados compostos como “Atendendo Cliente” permitem modelagem detalhada de interações complexas.
Clareza para os Interessados: O diagrama fornece uma representação visual que desenvolvedores, designers e interessados podem entender facilmente, auxiliando no design e manutenção do sistema.
O Visual Paradigm é uma ferramenta poderosa de modelagem UML que simplifica a criação de diagramas de estado. Suas funcionalidades incluem:
Interface de Arrastar e Soltar: Adicione facilmente estados, transições e ações.
Ferramentas de Simulação: Teste as transições de estado para validar a lógica do diagrama.
Modelos: Use modelos pré-construídos para sistemas como caixas eletrônicos para acelerar a modelagem.
Geração de Código: Gere esqueletos de código (por exemplo, Java, C++) a partir do diagrama.
Colaboração: Edição em tempo real e comentários em equipe para projetos colaborativos.
Para criar o diagrama de estado do caixa eletrônico no Visual Paradigm:
Abra o Visual Paradigm e selecioneDiagrama > Novo > Diagrama de Máquina de Estados.
Adicione estados (por exemplo, Desligado, Teste Automático, Ocioso) usando o editor de arrastar e soltar.
Desenhe transições com gatilhos apropriados (por exemplo, “Ligar”, “Inserção de Cartão”).
Defina ações (por exemplo, lerCartao, ejetarCartao) para entrada, saída ou transições.
Use a simulação para testar o fluxo e garantir precisão.
O diagrama de estado do caixa eletrônico bancário ilustra efetivamente como os diagramas de estado UML podem modelar o comportamento de sistemas do mundo real. Ao definir estados claros, transições acionadas por eventos e ações, o diagrama fornece uma representação estruturada da operação do caixa eletrônico. Essa abordagem melhora a compreensão, facilita o projeto do sistema e apoia a implementação e manutenção. Ferramentas como Visual Paradigm tornam mais fácil criar, testar e compartilhar esses diagramas, garantindo precisão e colaboração no desenvolvimento do sistema.