Buscar

Resolução-T1-SacarDinheiro-2019

Prévia do material em texto

Descrição do caso de uso em formato essencial expandido 
 
Caso de Uso: Sacar Dinheiro 
Categoria: Primário 
Atores: Cliente 
Pré-condições: 
• O cliente deve ser correntista do banco, ou seja, ter uma conta corrente aberta 
em uma das agências do banco. 
• A máquina ATM está operacional e identificada 
Pós-condições: 
• A transação de saque foi registrada com a conta objeto do saque, a máquina em 
que foi feito o saque, a data e horário do saque, o valor sacado, o cartão utilizado 
para o saque. 
• O saldo da conta foi atualizado de acordo com o valor sacado. 
• O saldo da máquina ATM foi atualizado de acordo com o valor sacado. 
• As quantidades de cédulas disponíveis na máquina ATM foram atualizadas 
conforme a sua utilização na transação de saque 
• Um lançamento de crédito na conta foi gerado com o valor do saque 
Cenário Principal de Sucesso (Cenário típico ou Fluxo Principal) 
1. O Cliente informa ao Sistema a identificação da sua conta (código da agência e 
número da conta) e do seu cartão pessoal (número do cartão). 
2. O Sistema valida a conta e o cartão (data de validade) e solicita a senha da conta. 
3. O Cliente informa a senha da conta. 
4. O Sistema valida a senha e exibe as opções de transação. 
5. O Cliente escolhe a opção de saque. 
6. O Sistema solicita o valor do saque. 
7. O Cliente informa o valor do saque. 
8. O Sistema verifica a disponibilidade de saldo na conta. 
9. O sistema verifica a disponibilidade de saldo na máquina ATM. 
10. O sistema verifica o limite diário de saque da conta. 
11. O sistema verifica a compatibilidade das notas disponíveis na máquina ATM com o 
valor do saque. 
12. O sistema solicita a senha adicional do cliente. 
13. O cliente informa a senha adicional. 
14. O sistema valida a senha adicional. 
15. O Sistema registra a transação efetivada com data, horário, conta, valor sacado e 
número do cartão utilizado. 
16. O Sistema atualiza o saldo da conta. 
17. O Sistema atualiza o saldo da máquina ATM. 
18. O sistema atualiza a quantidade de notas na máquina ATM. 
19. As cédulas correspondentes ao valor do saque são disponibilizadas para o cliente 
 
Cenários Alternativos 
 
1-13 a) Cliente desiste da transação 
1. O sistema exibe mensagem de transação cancelada 
2. O Sistema encerra o caso de uso 
 
2 a) Conta não reconhecida 
1. O sistema exibe mensagem de conta inválida e exibe mensagem 
solicitando reentrada 
2. O Sistema retorna ao passo 2 do Cenário Principal 
 2
2 b) Data de validade do cartão vencida 
1. O Sistema exibe mensagem de data de validade de cartão vencida e 
solicita entrada de identificação de agência e conta manualmente 
2. O Sistema encerra o caso de uso 
4 a) A senha da conta não é válida 
1. O Sistema exibe mensagem de senha da conta inválida e exibe 
mensagem solicitando reentrada 
2. O Sistema retorna ao passo 3 do Cenário Principal 
5 a) O Cliente escolhe outra opção de transação 
1. O Sistema encerra o caso de uso Sacar Dinheiro 
2. O Sistema executa o Caso de Uso definido pela opção 
8 a) O saldo da conta é insuficiente para atender o valor desejado 
1. O Sistema exibe mensagem de saldo da conta insuficiente e exibe 
mensagem solicitando reentrada 
2. O Sistema retorna ao passo 7 do Cenário Principal 
9 a) O saldo da máquina ATM é insuficiente para atender o valor desejado 
1. O Sistema exibe mensagem de saldo do ATM insuficiente e exibe 
mensagem solicitando reentrada 
2. O Sistema retorna ao passo 7 do Cenário Principal 
10 a) O limite diário de saque não permite o saque do valor desejado 
1. O Sistema exibe mensagem de limite de saque esgotado e exibe 
mensagem solicitando reentrada 
2. O Sistema retorna ao passo 7 do Cenário Principal 
11 a) A máquina ATM não dispõe de valores e quantidades de cédulas compatíveis 
com o valor de saque desejado 
1. O Sistema exibe mensagem limite de valores de cédulas incompatíveis 
com valor desejado e mensagem solicitando reentrada 
2. O Sistema retorna ao passo 7 do Cenário Principal 
14 a) A senha pessoal não é válida 
1. O Sistema exibe mensagem de senha pessoal inválida e exibe 
mensagem solicitando reentrada 
2. O Sistema retorna ao passo 13 do Cenário Principal 
 3
Modelo de Domínio 
 
 4
Esquema 
 
 
I Tipos de Entidades 
 
 
Tipo de Entidade: Agência - regular 
• Conceito: Representa a agência de atendimento do banco onde podem estar localizadas as 
máquinas ATM 
• Sinônimos: unidade de atendimento, agência bancária 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
Codigo Código 
identificador 
agência 
Num. 5 obr, id, s, 
mono, p 
 
Nome Nome da 
Agência 
Alfanum. 50 obr, nid, s, 
mono, p 
 
 
 
Tipo de Entidade: Conta - fraco 
• Conceito: Representa a conta do cliente no bando 
• Sinônimos: 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
Codigo Codigo da 
conta na 
agência 
Num. 9 obr, ip, s, 
mono, p 
 
Saldo Saldo da 
conta 
Num. 11,2 obr, nid, s, 
mono, p 
 
Senha Senha da 
conta 
Num. 6 Obr,nid, s, 
mono, p 
 
LimiteSaque
Dia 
Limite de 
valor que 
pode ser 
sacado da 
conta por dia 
Num. 11,2 Obr,nid,s,
mono,p 
 
 
 
Tipo de Entidade: Cliente - regular 
• Conceito: Representa o cliente que tem pelo menos uma conta no banco 
• Sinônimos: 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
CPF Codigo de 
Pessoa Física 
do Cliente 
Num. 11 obr, id, s, 
mono, p 
 
Nome Nome do 
Cliente 
AlfaNum
. 
50 obr, nid, s, 
mono, p 
 
SenhaAlfa
Pessoal 
Senha 
alfanumerica 
pessoal do 
cliente exigida 
para transações 
que afetam o 
saldo da conta 
Alfanum 6 obr, nid, s, 
mono,p 
 
 
 
 5
Tipo de Entidade: MaquinaATM - regular 
• Conceito: Representa a máquina de autoatendimento usada em transações bancárias pelo 
cliente 
• Sinônimos: ATM 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
Codigo Código de 
Identificação 
da máquina 
Alfanum. 16 obr, id, s, 
mono, p 
 
Saldo Quantia total 
presente na 
máquina ATM 
(soma de todas 
as cédulas 
presentes) 
Num. 11 obr, nid, s, 
mono, d 
 
 
 
Tipo de Entidade: CedulaATM - fraco 
• Conceito: Representa as cédulas presentes na máquina ATM 
• Sinônimos: 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
ValorCedula Valor da 
cédula 
Num.. 3 obr, ip, s, 
mono, p 
 2,5,10,20,50,
100 
QtdCedula Quantidade 
de cédulas de 
determinado 
valor 
existente na 
máquina 
ATM 
Num. 5 obr, nid, s, 
mono, p 
 >0 
 
 
Tipo de Entidade: Cartao - regular 
• Conceito: Representa o cartão usado pelo cliente de uma conta para realizar transações na 
máquina ATM 
• Sinônimos: 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
Numero Numero 
identificador 
do cartão 
Num. 16 obr, id, s, 
mono, p 
 
DataValidade Data de 
expiração da 
validade do 
cartão 
Data obr, nid, s, 
mono, p 
 
 
 
Tipo de Entidade: Lançamento -regular 
• Conceito: Lançamento financeiro de crédito ou débito na conta gerado pela transação 
bancária 
• Sinônimos: 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
Numero Numero 
identificad
or do 
lançamento 
Num. 20 obr, id, s, 
mono, p 
 
Tipo Tipo do 
lançamento 
AlfaNum
. 
1 obr, nid, s, 
mono, p 
 C(creditol) 
D(debito) 
Valor Valor do 
lançamento 
Num 11 Obr,nid,s,
mono, p 
 
 6
 
Tipo de Entidade: TransaçaoSaque -regular 
• Conceito: Representa a transação bancária realizada pelo cliente na máquina ATM 
• Sinônimos: 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
Numero Numero 
identificador 
datransação 
Num. 20 obr, id, s, 
mono, p 
 
Tipo Tipo da 
transação 
Alfa
Num. 
1 obr, nid, s, 
mono, p 
 S(Saque) 
Data Data de início 
da transação 
Data obr,nid,s,m
ono, p 
 
Horario Horario de 
início da 
transação 
Hora obr, nid, s, 
mono, p 
 
 
 
 
 
II. Tipos de Relacionamento 
 
 
Tipo de Relacionamento: R1 
• Conceito: relacionamento necessário para saber a qual Agencia uma Conta está vinculada e 
para identificar uma conta; uma Agencia tem vinculada a si (0,N) Conta e uma Conta está 
vinculada a (1,1) Agencia 
• Atributos: não tem atributos relevantes 
 
 
Tipo de Relacionamento: R2 
• Conceito: relacionamento necessário para vincular cliente e conta formando uma 
agregação/par cliente-conta que poderá ser associado a um cartão para realização de transações 
bancária por aquele cliente naquela conta; uma Cliente possui (1,N) Conta; uma Conta pertence 
a (1,N) Cliente; 
• Atributos: 
Nome Conceito Tipo Tam. Classif Componentes Domínio 
NumeroTitulari
dade 
Número que 
indica se o 
cliente é o 
primeiro ou 
segundo 
titular da 
conta 
Num. 1 obr, nid, s, 
mono, p 
 1,2 
 
 
Tipo de Relacionamento: R3 
• Conceito: relacionamento necessário para saber a qual par (conta, cliente) um cartão 
bancário está vinculado; um cartão estão vinculado a (1,1) par cliente-conta; um par (conta-
cliente) está vinculada a (0,1) Cartao; 
• Atributos: não tem atributos relevantes 
 
 
Tipo de Relacionamento: R4 
• Conceito: relacionamento necessário para saber em qual agência bancária a máquina ATM 
está localizada; uma MaquinaATM está localizada em (1,1) Agencia; uma Agencia possui (0,N) 
MaquinaATM; 
• Atributos: não tem atributos relevantes 
 
 7
Tipo de Relacionamento: R5 
• Conceito: relacionamento necessário para saber quais os valores de cédulas disponíveis em 
uma máquina ATM e a quantidade de cédulas de cada valor; uma MaquinaATM possui (0,N) 
cédulas ATM; uma CedulaATM está vinculada a (1,1) máquina ATM. 
• Atributos: não tem atributos relevantes 
 
 
 Tipo de Relacionamento: R6 
• Conceito: relacionamento necessário para saber a qual cartão bancário está vinculada uma 
transação de saque; uma TransacaoSaque está vinculada a (0,1) Cartao; um Cartao está 
vinculado a (0,N) TransacaoSaque. 
• Atributos: não tem atributos relevantes 
 
 
 Tipo de Relacionamento: R7 
• Conceito: relacionamento necessário para saber quais valores de cédulas foram sacadas e as 
respectivas quantidades sacadas para efeito de auditoria posterior ; uma TransacaoSaque saca 
(1,N) CedulaATM; uma CedulaATM é sacada por (0,N) TransacaoSaque; 
• Atributos: não tem atributos relevantes 
 
 
 Tipo de Relacionamento: R8 
• Conceito: relacionamento necessário para saber o lançamento de movimentaçao da conta que 
foi gerado pela TransacaoSaque; uma TransacaoSaque gera (1,1) Lancamento; um Lancamento 
é gerado por (0,1) TransacaoSaque; 
• Atributos: não tem atributos relevantes 
 
 
Tipo de Relacionamento: R9 
• Conceito: relacionamento necessário para saber a qual conta um Lancamento de saque está 
vinculado; uma Lanca está vinculda a (1,1) Conta; uma Conta estpá vinculada a (0,N) 
TransacaoSaque. 
• Atributos: não tem atributos relevantes 
 
 8
CONTRATOS DE OPERAÇÃO 
 
 
validarConta(agencia, conta, cartão) 
• Responsabilidades 
• Verificar se a agência existe 
• Verificar se a conta existe para a agência 
• Verificar se o cartão está vinculado a conta informada e está 
dentro da validade 
• Exibir mensagem de solicitação de senha da conta 
• Pré-condições: 
• O cliente deve ser correntista do banco, ou seja, ter uma 
conta corrente aberta em uma das agências do banco. 
• A máquina ATM está operacional e identificada. 
• Pós-condições: 
• – 
• Tratamento de exceções: 
• Conta não validada 
� Exibir mensagem de erro “Conta inválida – entre 
novamente” 
• Data de validade do cartão expirada 
� Exibir mensagem de erro “Data de validade do 
cartão expirada – solicite um novo cartão na sua 
agência” 
• Regras de Negócio 
• Verificação da validade da conta informada 
� A agência e conta informadas devem estar 
cadastradas na base de dados 
• Verificação da validade do cartão 
� O cartão deve estar vinculado a conta informada 
� A data de validade do cartão não pode ser menor do 
que a data corrente da máquina ATM 
 
validarSenhaConta(senhaConta) 
• Responsabilidades 
• Verificar se a senha informada é a senha cadastrada para a 
conta 
• Exibir opções de transação da máquina ATM 
• Pré-condições: 
• A conta foi previamente validada . 
• A senha da conta estava previamente cadastrada 
• Pós-condições: 
• – 
• Tratamento de exceções: 
 9
• Senha inválida 
� Exibir mensagem de erro “Senha inválida – entre 
novamente” 
• Regras de Negócio 
• Verificação da senha 
� A senha informada deve ser igual à senha cadastrada 
para a conta na base de dados 
 
iniciarSaque (transação=”saque”) 
• Responsabilidades 
• Iniciar uma transação de saque 
• Exibir mensagem solicitando valor do saque 
• Pré-condições: 
• A conta e a senha da conta foram previamente validadas. 
• Pós-condições: 
• Uma nova instância t de TransacaoSaque foi criada 
• Saque t foi associado ao cartão informado anteriormente 
• TransacaoSaque.data recebeu a data corrente do Sistema 
• TransacaoSaque.horario recebeu o horário corrente do 
Sistema 
• TransacaoSaque.tipo recebeu o valor “S” 
• Tratamento de exceções: 
• - 
• Regras de Negócio 
• - 
validarSaque (valorSaque) 
• Responsabilidades 
• Verificar validade do valor do saque informado 
• Verificar disponibilidade de saldo na conta para valor do 
saque 
• Verificar disponibilidade de saldo na máquina ATM para 
valor do saque 
• Verificar se limite diário de saque da conta não foi 
ultrapassado 
• Verificar se os valores e respectivas quantidades de notas 
são compatíveis com o valor do saque 
• Pré-condições: 
• Há uma transação de saque iniciada 
• Pós-condições: 
• TransacaoSaque.valor recebe o valor informado na ativação 
da operação 
• Tratamento de exceções: 
• Saldo da conta insuficiente 
 10
� Exibir mensagem de erro “Saldo da conta 
insuficiente – informe outro valor” 
• Saldo da máquina insuficiente 
� Exibir mensagem de erro “Saldo da máquina 
insuficiente – informe outro valor” 
• Limite de saque diário ultrapassado 
� Exibir mensagem de erro “Limite diário de saque 
ultrapassado – informe outro valor” 
• Cédulas disponíveis na máquina são incompatíveis com valor 
solicitado 
� Exibir mensagem de erro “O valor do saque 
informado deve ser um múltiplo da cédula de 
menor valor disponível na máquina – informe outro 
valor” 
• Regras de Negócio 
• Verificar disponibilidade de saldo na conta 
� Valor do saque não pode ser superior ao saldo da 
conta informada 
• Verificar disponibilidade de saldo na máquina ATM 
� Valor do saque não pode ser superior ao saldo da 
máquina ATM onde está sendo feita a transação 
• Verificar limite diário de saque 
� Valor do saque corrente somado aos valores dos 
saques feitos na mesma conta na mesma data não 
pode ser superior ao limite diário de saque da conta 
• Verificar compatibilidade das cédulas 
� Passo 1: Se o valor desejado para o saque (V) for 
maior do que 100 então divida V por 100 obtendo o 
Quociente (Q) da divisão e o Resto (R) da divisão 
• Se o valor do Quociente for menor do que a 
quantidade de cédulas de 100 disponíveis na 
máquina ATM e o resto for igual a zero 
então há compatibilidade 
• Se o valor do Quociente for maior do que a 
quantidade de cédulas de 100 disponíveis na 
máquinaATM ou o resto for diferente de 
zero então multiplique a quantidade de 
cédulas de 100 disponíveis na máquina ATM 
por 100 e subtraia o resultado obtido do 
valor desejado para o saque (V) e prossiga 
para Passo 2 
 
 11
� Passo 2: Se o valor desejado para o saque (V) for 
maior do que 50 divida V por 50 obtendo o 
Quociente (Q) da divisão e o Resto (R) da divisão 
• Se o valor do Quociente for menor do que a 
quantidade de cédulas de 50 disponíveis na 
máquina ATM e o resto for igual a zero 
então há compatibilidade 
• Se o valor do Quociente for maior do que a 
quantidade de cédulas de 50 disponíveis na 
máquina ATM ou o resto for diferente de 
zero então multiplique a quantidade de 
cédulas de 50 disponíveis na máquina ATM 
por 50 e subtraia o resultado obtido do 
valor desejado para o saque (V) e prossiga 
para Passo 3 
� Passo 3: Se o valor desejado para o saque (V) for 
maior do que 20 então divida V por 20 obtendo o 
Quociente (Q) da divisão e o Resto (R) da divisão 
• Se o valor do Quociente for menor do que a 
quantidade de cédulas de 20 disponíveis na 
máquina ATM e o resto for igual a zero 
então há compatibilidade 
• Se o valor do Quociente for maior do que a 
quantidade de cédulas de 20 disponíveis na 
máquina ATM ou o resto for diferente de 
zero então multiplique a quantidade de 
cédulas de 20 disponíveis na máquina ATM 
por 20 e subtraia o resultado obtido do 
valor desejado para o saque (V) e prossiga 
para Passo 4 
� Passo 4: Se o valor desejado para o saque (V) for 
maior do que 10 então divida V por 10 obtendo o 
Quociente (Q) da divisão e o Resto (R) da divisão 
• Se o valor do Quociente for menor do que a 
quantidade de cédulas de 10 disponíveis na 
máquina ATM e o resto for igual a zero 
então há compatibilidade 
• Se o valor do Quociente for maior do que a 
quantidade de cédulas de 10 disponíveis na 
máquina ATM ou o resto for diferente de 
zero então multiplique a quantidade de 
cédulas de 10 disponíveis na máquina ATM 
por 10 e subtraia o resultado obtido do 
 12
valor desejado para o saque (V) e prossiga 
para Passo 5 
� Passo 5: Se o valor desejado para o saque (V) for 
maior do que 5 então divida V por 5 obtendo o 
Quociente (Q) da divisão e o Resto (R) da divisão 
• Se o valor do Quociente for menor do que a 
quantidade de cédulas de 5 disponíveis na 
máquina ATM e o resto for igual a zero 
então há compatibilidade 
• Se o valor do Quociente for maior do que a 
quantidade de cédulas de 5 disponíveis na 
máquina ATM ou o resto for diferente de 
zero então multiplique a quantidade de 
cédulas de 5 disponíveis na máquina ATM 
por 5 e subtraia o resultado obtido do valor 
desejado para o saque (V) e prossiga para 
Passo 6 
� Passo 6: Se o valor desejado para o saque (V) for 
maior do que 2 então divida V por 2 obtendo o 
Quociente (Q) da divisão e o Resto (R) da divisão 
• Se o valor do Quociente for menor do que a 
quantidade de cédulas de 2 disponíveis na 
máquina ATM e o resto for igual a zero 
então há compatibilidade 
• Se o valor do Quociente for maior do que a 
quantidade de cédulas de 2 disponíveis na 
máquina ATM ou o resto for diferente de 
zero então não há compatibilidade de 
cédulas disponíveis na máquina ATM com o 
valor desejado para o saque. 
 
 confirmarSaque (senhapessoal) 
• Responsabilidades 
• Gerar o número identificador da transação de Saque 
• Gerar o número identificador o lançamento de crédito na 
conta 
• Persistir os dados da transação de saque de acordo com o 
modelo de domínio 
• Disponibilizar as cédulas para o cliente 
• Pré-condições: 
• Há uma transação de saque iniciada 
• Pós-condições: 
• TransacaoSaque.numero recebeu o valor calculado pelo 
sistema 
 13
• Uma nova instância l de Lancamento foi criada 
• Lancamento l foi associado à TransacaoSaque t 
• Lancamento l foi associado à Conta objeto do saque 
informada previamente 
• Lancamento.numero recebeu o valor calculado pelo Sistema 
• Lancamento.tipo recebeu o valor “C” 
• Lancamento.valor recebeu o valor do saque 
 
• Tratamento de exceções: 
• Senha pessoal inválida 
� Exibir mensagem de erro “Senha pessoal não 
reconhecisa – informe outro valor” 
 
• Regras de Negócio 
• Gerar número identificador da transação de saque 
� Somar 1 no número da última transação gerada 
anteriormente 
• Gerar número identificador do lançamento de crédito 
� Somar 1 no número do último lançamento gerado 
anteriormente

Continue navegando