Baixe o app para aproveitar ainda mais
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
Compartilhar