Introdução
Este estudo de caso foca na modelagem de casos de uso de um sistema de caixa eletrônico para um banco. O sistema de caixa eletrônico é projetado para fornecer aos clientes uma forma conveniente de acessar suas contas e realizar várias transações bancárias, como retirar dinheiro, depositar dinheiro, transferir fundos, verificar o saldo da conta e alterar o PIN. O estudo de caso discute a descrição do problema e os requisitos do sistema, bem como os diagramas de casos de uso, atores e cenários criados para modelar a funcionalidade do sistema. O estudo de caso também explora como outros tipos de diagramas UML, como diagramas de atividade e diagramas de sequência, podem ser usados em conjunto comdiagramas de casos de usopara fornecer uma visão mais detalhada do comportamento e das interações do sistema. Ao final do estudo de caso, os leitores terão uma compreensão clara do processo de modelagem de casos de uso e como ele pode ser aplicado a sistemas do mundo real, como um sistema de caixa eletrônico.

Diretrizes e Dicas para Desenvolver Casos de Uso Efetivos e Escrever Cenários de Casos de Uso Apropriados
Aqui estão algumas diretrizes, dicas e truques para desenvolver casos de uso e escrever cenários de casos de uso adequados:
- Identifique os atores:Comece identificando os atores que interagirão com o sistema. Isso pode incluir usuários, administradores e quaisquer outros interessados que usarão o sistema.
- Defina o escopo do sistema:Defina claramente o escopo do sistema e o que ele tem como objetivo. Isso ajudará a garantir que os cenários de casos de uso capturem todos os requisitos necessários.
- Use uma abordagem estruturada:Use uma abordagem estruturada para desenvolver os cenários de casos de uso. Isso pode incluir o uso de modelos ou diretrizes para garantir que cada cenário siga uma estrutura consistente.
- Escreva cenários claros e concisos:Escreva cenários de casos de uso que sejam claros, concisos e fáceis de entender. Use linguagem simples e evite jargões técnicos ou siglas que possam não ser familiares a todos os interessados.
- Use linguagem orientada a ações:Escreva cenários de casos de uso usando linguagem orientada a ações que descrevam o que o usuário ou o sistema está fazendo. Isso pode ajudar a garantir que os cenários sejam fáceis de entender e seguir.
- Concentre-se nos objetivos e necessidades do usuário:Concentre-se nos objetivos e necessidades do usuário ao desenvolver cenários de casos de uso. Isso ajudará a garantir que os cenários capturem a perspectiva do usuário e estejam alinhados com suas necessidades.
- Identifique pré-condições e pós-condições:Identifique claramente quaisquer pré-condições e pós-condições que devem ser atendidas para que o cenário seja bem-sucedido. Isso ajudará a garantir que o cenário esteja completo e preciso.
- Inclua cenários de exceção:Identifique quaisquer cenários de exceção que possam ocorrer e inclua-os nos cenários de casos de uso. Isso ajudará a garantir que o sistema possa lidar com situações inesperadas e erros.
- Obtenha feedback e revise:Obtenha feedback dos interessados e revise regularmente os cenários de casos de uso para garantir que permaneçam precisos e atualizados com as últimas especificações e requisitos do sistema.
Ao seguir estas diretrizes, dicas e truques, os desenvolvedores podem criar cenários de casos de uso que capturem com precisão a funcionalidade do sistema e atendam às necessidades de todos os interessados.
Descrição do Problema do Estudo de Caso – Caixa Eletrônico
Um banco precisa fornecer aos seus clientes uma forma conveniente de acessar suas contas e realizar várias transações bancárias, como retirar dinheiro, depositar dinheiro, transferir fundos, verificar o saldo da conta e alterar o PIN. Para resolver esse problema, o banco planeja implementar um sistema de caixa eletrônico que permita aos clientes realizar essas transações usando seus cartões de caixa eletrônico e um PIN.
Requisitos:
- Segurança: O sistema de ATM deve garantir a segurança das transações dos clientes verificando a identidade do cliente usando seu cartão ATM e PIN. O sistema deve impedir o acesso não autorizado às contas dos clientes e deve estar protegido contra diversas formas de fraude e ataques, como skimming e hacking.
- Disponibilidade: O sistema de ATM deve estar disponível para os clientes a qualquer momento, sujeito a manutenções periódicas e tempo de inatividade. O sistema deve ser confiável e resistente a falhas de hardware e software para minimizar interrupções no serviço e garantir um alto nível de satisfação do cliente.
- Usabilidade: O sistema de ATM deve ser fácil de usar e navegar para clientes de todas as idades e origens. O sistema deve fornecer instruções claras e feedback para orientar os clientes durante o processo de transação e minimizar erros e confusão.
- Processamento de transações: O sistema de ATM deve processar as transações dos clientes com precisão e eficiência, incluindo saques e depósitos de dinheiro, transferência de fundos, verificação de saldos de conta e alteração de PINs. O sistema deve manter registros precisos de todas as transações e fornecer aos clientes comprovantes e outros documentos conforme necessário.
- Integração: O sistema de ATM deve se integrar à infraestrutura de TI existente do banco, incluindo seu sistema bancário principal, rede e bancos de dados. O sistema deve se comunicar de forma segura e confiável com outros sistemas e componentes para garantir o processamento preciso e oportuno de transações e informações de conta.
Modelagem de Casos de Uso e Desenvolvimento de Cenários de Casos de Uso
Partindo da descrição do problema de um sistema de ATM, o próximo passo é identificar os diversos casos de uso necessários para atender às necessidades dos usuários do sistema. Isso envolve analisar os requisitos do sistema e definir as ações específicas que os usuários podem realizar ao interagir com o sistema. Cada caso de uso terá seu próprio conjunto de cenários que descrevem como o sistema e o usuário interagirão em situações específicas. Esses cenários devem ser desenvolvidos de forma estruturada, utilizando linguagem clara e concisa para garantir que sejam facilmente compreensíveis por todos os stakeholders envolvidos no projeto.
O processo de identificação de casos de uso e desenvolvimento de cenários de casos de uso é um passo crítico no ciclo de vida do desenvolvimento de software. Ele permite que a equipe de desenvolvimento compreenda plenamente os requisitos do sistema e projete uma solução que atenda às necessidades de seus usuários. À medida que o processo de desenvolvimento avança, pode ser necessário aprimorar os casos de uso e cenários para refletir mudanças nos requisitos ou incorporar feedback dos stakeholders. Esse processo iterativo ajuda a garantir que o sistema final atenda às necessidades de todos os stakeholders e seja capaz de lidar com uma ampla variedade de cenários e casos de uso.
- Diagrama de Casos de Uso:
O diagrama de casos de uso para um sistema de ATM poderia incluir os seguintes atores:
- Cliente
- Banco
E os seguintes casos de uso:
- Sacar Dinheiro
- Depositar Dinheiro
- Verificar Saldo
- Transferir Fundos
- Alterar PIN
O diagrama mostraria as relações entre os atores e os casos de uso, indicando quais casos de uso são acessíveis por quais atores.
- Cenários de Casos de Uso:
a) Sacar Dinheiro:
- O cliente insere seu cartão ATM na máquina.
- O sistema solicita ao cliente que digite seu PIN.
- O cliente digita seu PIN.
- O sistema verifica o PIN.
- O cliente seleciona a opção “Sacar Dinheiro”.
- O sistema solicita ao cliente que digite o valor de dinheiro que deseja sacar.
- O cliente digita o valor do dinheiro.
- O sistema dispensa o dinheiro.
- O cliente retira seu cartão ATM e pega o dinheiro.
b) Depositar Dinheiro:
- O cliente insere seu cartão ATM na máquina.
- O sistema solicita ao cliente que digite seu PIN.
- O cliente digita seu PIN.
- O sistema verifica o PIN.
- O cliente seleciona a opção “Depositar Dinheiro”.
- O sistema solicita ao cliente que digite o valor de dinheiro que deseja depositar.
- O cliente digita o valor do dinheiro.
- O sistema verifica o valor e o exibe para o cliente.
- O cliente confirma o valor.
- O sistema aceita o dinheiro e creditado na conta do cliente.
c) Verificar Saldo:
- O cliente insere seu cartão ATM na máquina.
- O sistema solicita ao cliente que digite seu PIN.
- O cliente digita seu PIN.
- O sistema verifica o PIN.
- O sistema exibe o saldo da conta do cliente.
d) Transferir Fundos:
- O cliente insere seu cartão ATM na máquina.
- O sistema solicita ao cliente que digite seu PIN.
- O cliente digita seu PIN.
- O sistema verifica o PIN.
- O cliente seleciona a opção “Transferir Fundos”.
- O sistema solicita ao cliente que digite o número da conta para a qual deseja transferir fundos.
- O cliente digita o número da conta.
- O sistema solicita ao cliente que digite o valor dos fundos que deseja transferir.
- O cliente digita o valor dos fundos.
- O sistema verifica o valor e o exibe ao cliente.
- O cliente confirma o valor.
- O sistema transfere os fundos e exibe uma mensagem de confirmação ao cliente.
e) Alterar PIN:
- O cliente insere seu cartão ATM na máquina.
- O sistema solicita ao cliente que digite seu PIN atual.
- O cliente digita seu PIN atual.
- O sistema verifica o PIN atual.
- O sistema solicita ao cliente que digite seu novo PIN.
- O cliente digita seu novo PIN.
- O sistema solicita ao cliente que confirme seu novo PIN.
- O cliente confirma seu novo PIN.
- O sistema atualiza o PIN do cliente e exibe uma mensagem de confirmação.
Aprimoramento do Cenário de Caso de Uso – Retirar Dinheiro
Aprimorar um cenário de caso de uso à medida que o processo de desenvolvimento avança é importante por várias razões:
- Para garantir que o cenário seja preciso e reflita o estado atual do sistema:À medida que o processo de desenvolvimento avança, o sistema pode mudar e novos requisitos podem surgir. Aprimorar o cenário de caso de uso ajuda a garantir que ele permaneça preciso e atualizado com as últimas especificações do sistema.
- Para identificar quaisquer requisitos ausentes ou incompletos:À medida que o sistema evolui, pode ficar evidente que são necessários requisitos adicionais para capturar plenamente a funcionalidade do sistema. Aprimorar o cenário de caso de uso ajuda a identificar quaisquer requisitos ausentes ou incompletos.
- Para melhorar a usabilidade e a experiência do usuário:Aprimorar o cenário de caso de uso pode ajudar a melhorar a usabilidade e a experiência do usuário do sistema. Ao aprimorar o cenário, os desenvolvedores podem compreender melhor as necessidades do usuário e tomar decisões de design que atendam melhor a essas necessidades.
O processo de aprimoramento de um cenário de caso de uso pode envolver várias etapas, incluindo:
- Revisar o cenário quanto à precisão e completude: Os desenvolvedores devem revisar o cenário para garantir que ele reflita com precisão o estado atual do sistema e que todos os requisitos sejam capturados.
- Identificando quaisquer requisitos ausentes ou incompletos: Os desenvolvedores devem identificar quaisquer requisitos ausentes ou incompletos e trabalhar para incorporá-los ao cenário.
- Aprimorando a interface do usuário: Os desenvolvedores devem aprimorar a interface do usuário para melhorar a usabilidade e a experiência do usuário, levando em consideração o feedback dos usuários e as melhores práticas de design.
- Incorporando feedback: Os desenvolvedores devem incorporar o feedback de stakeholders e usuários para aprimorar o cenário e garantir que atenda às necessidades de todos os usuários.
Passos para aprimorar um cenário de caso de uso
Ao aprimorar continuamente o cenário de caso de uso durante todo o processo de desenvolvimento, os desenvolvedores podem garantir que o sistema atenda às necessidades e requisitos dos usuários e seja tão usável e amigável quanto possível.
Aqui está uma elaboração do cenário de “Sacar Dinheiro” para o sistema de caixa eletrônico, incluindo fluxos normais e exceções e pontos de inserção para refletir um cenário do mundo real:
Cenário: Sacar Dinheiro
Ator Principal: Cliente
Pré-condições:
- O cliente inseriu seu cartão do caixa eletrônico na máquina.
- O cliente digitou seu PIN correto.
Fluxo Básico:
- O cliente seleciona a opção “Sacar Dinheiro” no menu principal.
- O caixa eletrônico solicita ao cliente que digite o valor de dinheiro que deseja sacar.
- O cliente digita o valor de dinheiro que deseja sacar.
- O caixa eletrônico verifica se o cliente possui fundos suficientes em sua conta para cobrir o valor do saque.
- O caixa eletrônico entrega o dinheiro solicitado ao cliente.
- O caixa eletrônico exibe uma mensagem confirmando o saque bem-sucedido e solicita ao cliente que selecione outra transação ou encerre a sessão.
- O cliente seleciona outra transação ou encerra a sessão.
- O caixa eletrônico devolve o cartão do cliente.
Fluxos de Exceção:
1a. Fundos Insuficientes
- O caixa eletrônico verifica que o cliente possui fundos insuficientes em sua conta para cobrir o valor do saque.
- O caixa eletrônico exibe uma mensagem de erro informando ao cliente que ele não possui fundos suficientes para concluir a transação.
- O caixa eletrônico solicita ao cliente que insira uma quantia menor para saque ou cancele a transação.
- O cliente insere uma quantia menor para saque ou cancela a transação.
2a. Quantia Inválida
- O cliente insere uma quantia inválida para saque, como um número negativo ou um valor que ultrapasse o limite diário de saque.
- O caixa eletrônico exibe uma mensagem de erro informando ao cliente que a quantia inserida é inválida.
- O caixa eletrônico solicita ao cliente que insira uma quantia válida para saque.
- O cliente insere uma quantia válida para saque.
3a. Cartão Retido
- O caixa eletrônico falha em dispensar o dinheiro devido a um erro de hardware ou software.
- O caixa eletrônico exibe uma mensagem de erro informando ao cliente que seu cartão foi retido.
- O caixa eletrônico solicita ao cliente que entre em contato com seu banco ou atendimento ao cliente para obter ajuda.
- O cliente entra em contato com seu banco ou atendimento ao cliente para recuperar seu cartão.
Pontos de Inserção:
- Após a etapa 1: O cliente insere seu cartão do caixa eletrônico na máquina e digita sua senha.
- Após a etapa 2: O cliente insere a quantia de dinheiro que deseja sacar.
- Após a etapa 3:O caixa eletrônico verifica se o cliente possui fundos suficientes para cobrir a quantia do saque.
- Após a etapa 5:O caixa eletrônico dispensa o dinheiro solicitado ao cliente.
Resumo
Apêndice – Cenários Refinados de Casos de Uso – Caixa Eletrônico
Nome do Caso de Uso: Sacar Dinheiro
Ator: Cliente, ATM
Pré-condições: O cliente deve possuir um cartão ATM válido e um número PIN. O ATM deve estar funcionando corretamente e conectado à rede bancária.
Fluxo Básico:
- O cliente insere seu cartão ATM na ranhura do leitor de cartões do ATM.
- O ATM solicita ao cliente que digite seu número PIN usando o teclado.
- O cliente digita seu número PIN.
- O ATM valida o número PIN e exibe as opções do menu principal.
- O cliente seleciona a opção “Sacar Dinheiro” no menu.
- O ATM solicita ao cliente que digite o valor de dinheiro que deseja sacar usando o teclado.
- O cliente digita o valor de dinheiro que deseja sacar.
- O ATM valida se o cliente possui fundos suficientes em sua conta para concluir a transação.
- O ATM entrega a quantia solicitada de dinheiro ao cliente.
- O ATM exibe uma mensagem indicando que a transação foi concluída.
- O cliente remove seu cartão ATM da ranhura do leitor de cartões.
Fluxos Alternativos:
- 1a. Se o ATM não conseguir ler o cartão ATM do cliente, o ATM exibirá uma mensagem de erro e solicitará que o cliente tente novamente ou entre em contato com seu banco.
- 4a. Se o cliente digitar um número PIN incorreto três vezes, o ATM reterá seu cartão e exibirá uma mensagem indicando que ele foi retido.
- 8a. Se o cliente não tiver fundos suficientes em sua conta para concluir a transação, o ATM exibirá uma mensagem de erro e solicitará que o cliente digite uma quantia menor ou cancele a transação.
Nome do Caso de Uso: Consultar Saldo da Conta
Atores: Cliente, ATM
Pré-condições: O cliente deve possuir um cartão ATM válido e um número PIN. O ATM deve estar funcionando corretamente e conectado à rede bancária.
Fluxo Básico:
- O cliente insere seu cartão ATM na ranhura do leitor de cartões do ATM.
- O ATM solicita ao cliente que digite seu número PIN usando o teclado.
- O cliente digita seu número PIN.
- O ATM valida o número PIN e exibe as opções do menu principal.
- O cliente seleciona a opção “Verificar Saldo da Conta” no menu.
- O ATM exibe o saldo atual da conta do cliente na tela.
- O cliente remove seu cartão ATM da ranhura do leitor de cartões.
Fluxos Alternativos:
- 1a. Se o ATM não conseguir ler o cartão ATM do cliente, o ATM exibirá uma mensagem de erro e solicitará que o cliente tente novamente ou entre em contato com seu banco.
- 4a. Se o cliente digitar um número incorreto de PIN três vezes, o ATM manterá o cartão e exibirá uma mensagem indicando que ele foi retido.
Nome do Caso de Uso:Depositar Dinheiro
Ator:Cliente, ATM
Pré-condições:O cliente deve possuir um cartão ATM válido e um número PIN. O ATM deve estar funcionando corretamente e conectado à rede bancária.
Fluxo Básico:
- O cliente insere seu cartão ATM na ranhura do leitor de cartões do ATM.
- O ATM solicita ao cliente que digite seu número PIN usando o teclado.
- O cliente digita seu número PIN.
- O ATM valida o número PIN e exibe as opções do menu principal.
- O cliente seleciona a opção “Depositar Dinheiro” no menu.
- O ATM solicita ao cliente que insira o dinheiro que deseja depositar na ranhura de depósito de dinheiro do ATM.
- O cliente insere o dinheiro na ranhura de depósito.
- O ATM valida o dinheiro e exibe uma mensagem indicando o valor do dinheiro depositado.
- O cliente remove seu cartão ATM da ranhura do leitor de cartões.
Referências: Técnicas de Modelagem de Casos de Uso
- O que é Especificação de Caso de Uso?
- Um Tutorial Prático sobre Análise de Robustez
- Identifique Requisitos do Usuário com Diagramas de Caso de Uso
- História de Usuário vs Caso de Uso para Desenvolvimento Ágil de Software
- Abordagem Orientada a Caso de Uso para Desenvolvimento Ágil
- Tipos de Ator no Modelo de Caso de Uso
- O que é Diagrama de Caso de Uso?
- O que é UML?
- Por que modelagem UML?
This post is also available in Deutsch, English, Español, فارسی, Français, Bahasa Indonesia, 日本語, Polski, Ру́сский, Việt Nam, 简体中文 and 繁體中文.












