SlideShare uma empresa Scribd logo
1 de 91
Baixar para ler offline
Modelagem Estática e Dinâmica: Estudo de
Caso - Sistema de Caixa Automático
Enunciado do Problema (I)
O sistema de caixa automático permite que clientes rea-
lizem saques e verifiquem seus saldos, de acordo com as
seguintes regras de negócios:
1. Quando uma conta é criada no banco, o seu saldo é
maior que zero.
2. Um cliente pode possuir várias contas no banco.
3. O cliente acessa uma conta através do terminal de um
caixa eletrônico do seu banco.
4. Antes de executar qualquer operação da conta, o cli-
ente deve fornecer o número da sua conta e a senha
referente à mesma. reaticada.
Enunciado do Problema (II)
5. Para a realização do saque, o cliente utiliza um ter-
minal para solicitar um valor numérico de dinheiro.
6. O cliente pode sacar qualquer quantia do caixa, desde
que a mesma seja igual ou inferior ao saldo disponı́vel.
Vale a polı́tica do banco de que uma conta não aceita
uma operação de saque quando a conta está com o
saldo zerado. O dinheiro é liberado no dispensador de
notas do caixa e debitado do saldo da conta.
7. Além de possuir o dinheiro disponı́vel na conta, em
uma operação de saque, a quantidade de dinheiro dis-
ponı́vel no caixa eletrônico deve ser maior ou igual à
quantia solicitada pelo cliente.
Enunciado do Problema (III)
8. Se o saldo de uma conta é zerado durante uma
operação de saque, a conta deve se tornar inativa.
9. Os clientes que vão operar o caixa eletrônico devem
estar devidamente cadastrados no banco e suas contas
devem estar ativas.
10. Cada conta tem associado um número e uma senha.
Além disso, cada conta é associada a um cliente do
banco, que possui informações como nome, RG, CPF,
etc.
Enunciado do Problema (IV)
11. As informações adicionais sobre as contas e seus cli-
entes estão armazenadas em um Cadastro de Contas
do Banco que interage com o Sistema de Caixa Au-
tomático.
12. Qualquer cliente cadastrado no banco pode efetuar
depósitos em uma conta, quer a conta esteja ativa,
quer ela esteja inativa.
13. Caso a conta esteja inativa e após o depósito seu saldo
fique maior que zero, a conte deve ser reativada.
Diagrama de Casos de Uso
Cliente
Cadastro de Contas do Banco
Dispensador de Notas
Consultar Saldo
Efetuar Login
Efetuar Saque
Efetuar Depósito
Sistema de Caixa Automático
Descrição dos Casos de Uso
Caso de Uso Consultar Saldo (I)
Breve Descrição : O cliente, já autenticado, escolhe a
opção “Consultar Saldo” e o sistema apresenta o seu
saldo.
Atores : Cliente, Cadastro de Contas do Banco.
Pré-condição : A conta deve estar ativa e o cliente já
deve ter sido autenticado junto ao sistema, através do
caso de uso Efetuar Login.
Pós-condição : Estado da conta inalterado.
Requisitos Especiais : nenhum.
Caso de Uso Consultar Saldo (II)
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a
opção “Consultar Saldo”.
2. O sistema verifica se o login foi efetuado
3. O sistema verifica se a conta está ativa, através do
Cadastro de Contas do Banco.
4. O sistema obtém o saldo da conta do cliente e o
imprime.
Caso de Uso Consultar Saldo (III)
Fluxo Alternativo 1 :
No passo 2 do Fluxo Básico, se o login não foi
efetuado, o sistema informa isso ao cliente.
Fluxo Alternativo 2 :
No passo 3 do Fluxo Básico, se a conta não estiver
ativa, o sistema informa isso ao cliente e avisa que
a consulta não pôde ser realizada.
Diagrama de Atividades - Consultar Saldo
Estado Inicial
Selecionar opção "Consultar Saldo"
Verificar Login do usuário
Verificar status da conta
Exibir "mensagem
de erro de login"
Exibir "mensagem
de conta inativa" Emitir Saldo
Estado Final
[senão]
[login não efetuado]
[status == ’ativo’]
[senão]
Diag. de Seqüência de Sistema - Consultar Saldo
:Cliente :Sistema :CadastroContasDoBanco
Diagrama de Seqüência de Sistema
1) .consultarSaldo
2) .
.obterNumConta
.obterConta[numConta]
.verificarContaAtiva
.obterSaldo
Mensagem síncrona
− com representação de retorno
Mensagem assíncrona
− sem representação de retorno
Caso de Uso Efetuar Saque (I)
Breve Descrição : O cliente, já autenticado, escolhe a
opção “Efetuar Saque”, informa a quantia desejada e,
caso o saldo da conta seja suficiente e o caixa tenha
o dinheiro necessário, a quantia é liberada.
Atores : Cliente, Cadastro de Contas do Banco, Dispen-
sador de Notas.
Pré-condição : O cliente deve estar logado no sistema,
através do caso de uso Efetuar Login. Além disso,
a conta deve estar ativa e o valor a debitar deve
ser maior que zero e não pode ser superior ao saldo
da conta nem à quantidade de dinheiro disponı́vel no
caixa.
Caso de Uso Efetuar Saque (II)
Pós-condição : O valor a ser sacado é subtraı́do do
saldo da conta e do total disponı́vel no caixa eletrônico
e a quantia solicitada é fornecida ao cliente.
Requisitos Especiais : nenhum.
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a
opção “Efetuar Saque”.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta está ativa, através do
Cadastro de Contas do Banco.
4. O sistema solicita que o cliente informe a quantia
desejada.
Caso de Uso Efetuar Saque (III)
Fluxo Básico (cont.):
5. O cliente informa a quantia desejada.
6. O sistema verifica se o saldo da conta é suficiente
para realizar a transação e, em caso afirmativo, se
há dinheiro em quantidade suficiente no caixa.
7. O sistema subtrai o valor solicitado do saldo da
conta do cliente e do valor disponı́vel no caixa e
libera a quantia solicitada, através do dispensador
de notas.
Caso de Uso Efetuar Saque (IV)
Fluxo Alternativo 1 :
No passo 2 do Fluxo Básico, se o login não tiver
sido efetuado, o sistema informa isso ao cliente.
Fluxo Alternativo 2 :
No passo 3 do Fluxo Básico, se a conta não estiver
ativa, o sistema avisa isso ao cliente e informa que
o saque não pôde ser realizado.
Caso de Uso Efetuar Saque (V)
Fluxo Alternativo 3 :
No passo 6 do Fluxo Básico, se o valor solicitado for menor
que zero ou superior ao saldo da conta ou à quantidade de
dinheiro disponı́vel no caixa, o sistema informa que não é
possı́vel realizar o saque e o porquê. Em seguida, volta ao
passo 4 do Fluxo Básico.
Fluxo Alternativo 4 :
Após o passo 7 do Fluxo Básico, se o saldo da conta for
menor ou igual a zero, a conta deve ser desativada.
Fluxo Alternativo 5 :
No passo 5 do Fluxo Básico, o cliente pode cancelar a
operação.
Diagrama de Atividades - Efetuar Saque
Estado Inicial
Selecionar a opção "Efetuar Saque"
Verificar Login do usuário
Exibir "mensagem
de erro de login"
[login não efetuado]
Verificar status da conta
[senão]
Exibir "mensagem
de conta inativa"
[senão]
Obter a quantia
a sacar
[status == ’ativo’]
Estado Final
Verificar o saldo da conta
e a quantia do caixa
[senão]
[cancelar
operação]
Debitar valor na conta
[quantia > 0 E
quantia >= saldo E
caixa tem dinheiro]
Exibir "mensagem do porquê
do saque estar indisponível"
[senão]
Liberar saque
Diag. de Seqüência de Sistema - Efetuar Saque
:CadastroContasDoBanco
:Sistema
:Cliente
Diagrama de Seqüência de Sistema
1) .efetuarSaque[valor]
2)
.obterNumConta
.obterConta[numConta]
.verificarContaAtiva
.obterSaldo
.obterValorEmCaixa
.debitarValor
Um Método para Análise OO Usando UML
Atividades Gerais do Método
Estado Inicial
Modelar a estrutura
estática do sistema
Modelar a estrutura
dinâmica do sistema
Diagrama de classes de análise
(sem as operações das classes)
Especificação das operaçoes
das classes de análise
Refinar o diagrama de análise com
padrões e particularidades da linguagem
Análise OO
Projeto OO
Estado Final
Técnica de Análise Textual
Enunciado do Problema
e
Especificacao dos casos de uso
Substantivos
Verbos
Objetos/Classes
Atributos
Associações
Operações
Modelagem Estática
Modelagem Estática (I)
Estado Inicial
1: Identificar ’substantivos’
2: Identificar as ’classes’ de análise
3: Construir o ’dicionário de dados’
das classes selecionadas
4: Identificar ’relacionamentos’
entre as classes de análise
5: Identificar ’atributos’
das classes de análise
[6: Iterar e ’refinar’]
Estado Final
[senão]
A partir do enunciado do paoblema
E da especificaçao dos casos de uso
Modelagem Estática (II)
Atividades da Modelagem Estática
Início
Fim
1−Criar classes de análise
2−Construir dicionário de dados
3−Criar relacionamentos
entre as classes de análise
4−Criar atributos das
classes de análise
5−Iterar e refinar
−Identificar classes candidatas
−Refinar lista de classes
−Identificar agregações
−Identificar associações
−Identificar herança
Modelagem Estática (IV)
• Foco na identificação das classes de análise, seus atributos e os
relacionamentos entre elas
• Será utilizada a técnica de análise textual (Cap.3). A técnica
será aplicada para cada um dos quatro casos de uso especifica-
dos:
1. Consultar Saldo
2. Efetuar Saque
Atividade 1: Identificar Classes de Análise
• As especificações dos casos de uso fornecem as informações
necessárias.
• Primeiro identifica-se os conceitos, dentro do domı́nio do pro-
blema, que são relevantes para o sistema que se pretende cons-
truir.
– Esses conceitos se tranformam posteriormente em classes de
análise.
• Em seguida pode-se fazer uma análise textual da descrição do
problema e das especificações dos casos de uso para comple-
mentar as classes relevantes para o sistema
• Importante: o diagrama de classes de análise é uma descrição
de coisas no domı́nio do problema do mundo real, não no do
projeto de software!
Atividade 1.1: Identificar Classes Candidatas
Caso de Uso Consultar Saldo (I)
Breve Descrição : O cliente, já autenticado, escolhe a
opção “Consultar Saldo” e o sistema apresenta o seu
saldo.
Atores : Cliente, Cadastro de Contas do Banco.
Pré-condição : A conta deve estar ativa e o cliente já
deve ter sido autenticado junto ao sistema, através do
caso de uso Efetuar Login.
Pós-condição : Estado da conta inalterado.
Requisitos Especiais : nenhum.
Caso de Uso Consultar Saldo (II)
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a
opção “Consultar Saldo”.
2. O sistema verifica se o login foi efetuado
3. O sistema verifica se a conta está ativa, através do
Cadastro de Contas do Banco.
4. O sistema obtém o saldo da conta do cliente e o
imprime.
Caso de Uso Consultar Saldo (III)
Fluxo Alternativo 1 :
No passo 2 do Fluxo Básico, se o login não foi
efetuado, o sistema informa isso ao cliente.
Fluxo Alternativo 2 :
No passo 3 do Fluxo Básico, se a conta não estiver
ativa, o sistema informa isso ao cliente e avisa que
a consulta não pôde ser realizada.
Caso de Uso Efetuar Saque (I)
Breve Descrição : O cliente, já autenticado, escolhe a
opção “Efetuar Saque”, informa a quantia desejada e,
caso o saldo da conta seja suficiente e o caixa tenha
o dinheiro necessário, a quantia é liberada.
Atores : Cliente, Cadastro de Contas do Banco,
Dispensador de Notas.
Pré-condição : O cliente deve estar logado no
sistema, através do caso de uso Efetuar Lo-
gin. Além disso, a conta deve estar ativa e
o valor a debitar deve ser maior que zero e não
pode ser superior ao saldo da conta nem à
quantidade de dinheiro disponı́vel no caixa.
Caso de Uso Efetuar Saque (II)
Pós-condição : O valor a ser sacado é subtraı́do do
saldo da conta e do total disponı́vel no caixa eletrônico
e a quantia solicitada é fornecida ao cliente.
Requisitos Especiais : nenhum.
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a
opção “Efetuar Saque”.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta está ativa, através do
Cadastro de Contas do Banco.
4. O sistema solicita que o cliente informe a
quantia desejada.
Caso de Uso Efetuar Saque (III)
Fluxo Básico (cont.):
5. O cliente informa a quantia desejada.
6. O sistema verifica se o saldo da conta é suficiente
para realizar a transação e, em caso afirmativo, se
há dinheiro em quantidade suficiente no caixa.
7. O sistema subtrai o valor solicitado do
saldo da conta do cliente e do valor disponı́vel
no caixa e libera a quantia solicitada, através do
dispensador de notas.
Caso de Uso Efetuar Saque (IV)
Fluxo Alternativo 1 :
No passo 2 do Fluxo Básico, se o login não tiver
sido efetuado, o sistema informa isso ao cliente.
Fluxo Alternativo 2 :
No passo 3 do Fluxo Básico, se a conta não estiver
ativa, o sistema avisa isso ao cliente e informa que
o saque não pôde ser realizado.
Caso de Uso Efetuar Saque (V)
Fluxo Alternativo 3 :
No passo 36 do Fluxo Básico, se o valor solicitado for
menor que zero ou superior ao saldo da conta ou à
quantidade de dinheiro disponı́vel no caixa, o sistema in-
forma que não é possı́vel realizar o saque e o porquê. Em
seguida, volta ao passo 4 do Fluxo Básico.
Fluxo Alternativo 4 :
Após o passo 36 do Fluxo Básico, se o saldo da conta for
menor ou igual a zero, a conta deve ser desativada.
Fluxo Alternativo 5 :
No passo 36 do Fluxo Básico, o cliente pode cancelar a
operação.
Entidades Candidatas Identificadas
• Caso de uso Efetuar Login:
• Caixa eletrônico • Cliente • Número da
conta
• Senha • Acesso • Sistema
• Cadastro de Contas
do Banco
• Opção • Menu Principal
• Conta • Banco • Estado da conta
• Criptografia • Operação • Estado do Caixa
eletrônico
Entidades Candidatas Identificadas
• Caso de uso Consultar Saldo:
• Saldo • Terminal • Saldo da conta
• Login • Consulta • Quantia de dinheiro
disponı́vel em caixa
• Caso de uso Efetuar Saque:
• Caixa • Dinheiro • Quantia
• Dispensador de
Notas
• Valor a debitar • Quantia de di-
nheiro disponı́vel
em caixa
• Valor a ser sacado • Quantia solici-
tada
• Quantia desejada
• Transação
Entidades Candidatas Identificadas
• Caso de uso Efetuar Depósito:
• Valor a depo-
sitar
• Valor a ser depo-
sitado
• Valor depositado
• Estado da
conta
• Quantia infor-
mada pelo cliente
• Conta destino do
depósito
Atividade 1.2: Refinar a lista de classes
candidatas
Critérios para Eliminação de Classes
Inapropriadas
• Classes Redundantes: quando duas palavras significam a
mesma coisa, escolha a palavra mais significativa.
• Classes Irrelevantes: aquelas classes que não estão dire-
tamente relacionadas com o problema.
• Atributos: alguns atributos podem ser descritos por subs-
tantivos.
• Operações: alguns substantivos podem ser operações.
• Papéis: nomes de papéis são de fato nomes de processos
dinâmicos ao invés de classes propriamente ditas.
• Construções de Implementações: qualquer coisa que
faça referência a estruturas de dados, etc.
Classes Candidatas eliminadas (I)
Classes Redundantes:
• Valor a ser depositado, Valor depositado e Quantia
informada pelo cliente: equivalentes a Valor a deposi-
tar.
• Caixa: idêntica à classe Caixa eletrônico.
• Valor a ser sacado, Quantia desejada, Quantia solici-
tada, Quantia: equivalentes a Valor a debitar.
• Saldo da conta, Saldo da conta do cliente: equivalen-
tes a Saldo.
• Operação e Opção: equivalente a Transação.
• Conta destino do depósito: equivalente a Número da
conta.
Classes Candidatas eliminadas (II)
Classes Irrelevantes:
• Transação: o enunciado do problema não exige que
informações sobre as transações realizadas sejam ar-
mazenadas.
• Número da conta: atributo da classe Conta.
• Senha: atributo da classe Conta.
• Estado do caixa: termo genérico para os atributos da
classe Caixa eletrônico.
• Quantidade de dinheiro disponı́vel no caixa: atributo
da classe Caixa eletrônico.
• Estado da conta: termo genérico para os atributos da
classe Conta.
• Saldo: atributo da classe Conta.
Classes Candidatas eliminadas (III)
Classes Vagas:
• Acesso
• Menu Principal
• Criptografia
• Login
• Consulta
• Valor a debitar
• Valor a depositar
Lista Revisada de Classes
• CaixaEletrônico
• Cliente (6= do ATOR – “dados do cliente”)
• Sistema
• Cadastro de Contas do Banco (ATOR)
• Conta
• Banco
• Terminal
• Dispensador de Notas (ATOR)
Atividade 2: Construir/Atualizar o dicionário
de dados (I)
• Classe Terminal: classe através da qual são transmi-
tidos os valores de entrada e saı́da a serem utilizados
pelo caixa eletrônico. Esta classe encapsula toda a
interface com o usuário, assim, o tipo de terminal
a ser implementado por um Sistema de Caixa Au-
tomático pode ser facilmente modificado através da
substituição desta classe.
• Classe DadosCliente: classe cujos objetos encapsu-
lam os dados pessoais dos clientes do banco.
• Classe Conta: classe cujos objetos são as contas
mantidas pelos clientes do banco.
Atividade 2: Construir/Atualizar o dicionário
de dados (II)
• Classe CaixaEletronico: classe que representa o es-
tado do caixa automático.
• Classe Banco: classe que representa o estado do
banco ao qual está vinculada a conta e os clientes.
• Classe Sistema: o Sistema de Caixa Automático
pode ser visto como uma classe que representa o sis-
tema e engloba todas as classes pertencentes a este.
Esta é uma classe conceitual e não pertence ao sis-
tema propriamente dito.
Atividade 3: Identificar/Refinar os
Relacionamentos Entre as Classes
• As classes identificadas até o momento devem ser ana-
lisadas com o intuito de identificar as associações e os
relacionamentos de agregação/decomposição e de ge-
neralização/especialização entre elas
• A classe Sistema representa o sistema como um todo
e, desta forma, todas as outras classes podem ser con-
sideradas partes dela
• Para simplificar a representação do modelo, a classe
Sistema pode ser substituı́da por um pacote que con-
tenha todas as classes que compõem o sistema
Agregações Encontrados (I)
• Um Banco possui uma ou mais Contas
• Um Banco contém vários clientes (DadosCliente)
• Um Banco possui vários Caixas Eletrônico
• Um Caixa Eletrônico possui um Terminal
• Um cliente (DadosCliente) pode possuir várias Contas
Agregações Encontrados (II)
sistema
Terminal
Conta
DadosCliente
CaixaEletronico Banco
Atividade 4: Identificar/Refinar Atributos
das Classes (I)
• A partir da especificação dos casos de uso:
Classes de Entidade Atributos
CaixaEletronico Quantidade de dinheiro disponı́vel
Status do Login
Número da Conta logada
Conta Senha
Número
Saldo
Status
Banco Código
Nome
Atividade 4: Identificar/Refinar Atributos
das Classes (II)
• Além dessa análise das especificações dos casos de uso, pode-se
utilizar o enunciado do problema:
Classes de Entidade Atributos
DadosCliente Nome
RG
CPF
Atividade 4: Identificar/Refinar Atributos
das Classes (III)
sistema
Terminal CaixaEletronico
−quantiaDisponivel :.
−statusLogin :.
−contaLogin :.
Banco
−cod:.
−nome :.
FichaCliente
−nome :.
−rg:.
−cpf :.
Conta
−senha:.
−numero :.
−saldo :.
−status :.
Diagrama de Classes de Análise com Atributos
Iteração 2
Atividade 1: Identificar/Refinar Classes
(MVC)
• Classificar as classes em (Fronteira, Controle e
Entidade)
• Identificar novas classes (Fronteira e Controle)
Novas Classes:
• FronteiraCadastroContas (interagir com o ator
Cadastro de contas)
• FronteiraDispensadorNotas (interagir com o ator
Dispensador de notas)
• ControladorCaixa (controla a lógica interna do caixa
eletrônico)
Classes do Sistema
• CaixaEletronico << entity >>
• Conta << entity >>
• Banco << entity >>
• Terminal << boundary >>
• DadosCliente << entity >>
• FronteiraCadastroContas << boundary >>
• FronteiraDispensadorNotas << boundary >>
• ControladorCaixa << control >>
Atividade 2: Construir/Atualizar o
Dicionário de Dados
• Terminal: classe de fronteira através da qual são trans-
mitidos os valores de entrada e saı́da a serem utilizados
pelo caixa eletrônico. Esta classe encapsula toda a inter-
face com o usuário, assim, o tipo de terminal a ser imple-
mentado por um Sistema de Caixa Automático pode ser
facilmente modificado através da substituição desta classe.
• ControladorCaixa: classe de controle que encapsula as
polı́ticas definidas pela especificação do sistema e geren-
cia as interações entre as classes de fronteira e entidade.
Os objetos da classe ControladorCaixa possuem operações
para efetuar login no sistema, consultar o saldo de uma
conta, efetuar um saque e efetuar um depósito.
Atividade 2: Dicionário de Dados (II)
• DadosCliente: classe de entidade cujos objetos en-
capsulam os dados pessoais dos clientes do banco.
• Conta: classe de entidade cujos objetos são as contas
mantidas pelos clientes do banco.
• CaixaEletronico: classe de entidade que representa
o estado do caixa automático.
• Banco: classe de entidade que representa o estado do
banco ao qual está vinculada a conta e os clientes.
Atividade 2: Dicionário de Dados (III)
• Sistema: o Sistema de Caixa Automático pode ser
visto como uma classe que representa o sistema e en-
globa todas as classes pertencentes a este. Esta é uma
classe conceitual e não pertence ao sistema propria-
mente dito.
• FronteiraCadastroContas: classe de fronteira que
media as interações entre o sistema e o ator Cadastro
de Contas do Banco.
• FronteiraDispensadorNotas: classe de fronteira que
media as interações entre o sistema e o ator Dispen-
sador de Notas.
Atividade 3: Identificar/Refinar os
Relacionamentos Entre as Classes
• Adicionar as associações com as novas classes do mo-
delo MVC, obedecendo a relação:
Relacionamento entre classes no MVC
sistema
Fronteira Controle Entidade
Ator
Diagrama de Classes de Análise
(sem operações)
Diagrama de Classes de Análise
sistema
Terminal
CaixaEletronico
−quantiaDisponivel :.
−statusLogin :.
−contaLogin :.
Banco
−cod:.
−nome :.
FichaCliente
−nome :.
−rg:.
−cpf :.
Conta
−senha:.
−numero :.
−saldo :.
−status :.
FronteiraCadastroContas
ControladorCaixa FronteiraDispensadorNotas
Modelagem Dinâmica
Atividades Gerais do Método
Estado Inicial
Modelar a estrutura
estática do sistema
Modelar a estrutura
dinâmica do sistema
Diagrama de classes de análise
(sem as operações das classes)
Especificação das operaçoes
das classes de análise
Refinar o diagrama de análise com
padrões e particularidades da linguagem
Análise OO
Projeto OO
Estado Final
Modelagem Dinâmica
• Identifica e modela os aspectos do sistema de software
que podem mudar durante a sua execução, devido à
ocorrência de eventos.
• Foco no comportamento que o sistema deve apre-
sentar.
• Usa os diagramas dinâmicos da UML (seqüência, co-
laboração, estados).
• Especifica uma versão inicial das interfaces públicas
das classes de análise.
• Sub-etapa de Análise OO - Foco no domı́nio do
problema!
Eventos
• Ocorrências dignas de nota relativas ao sistema e en-
volvendo algum tipo de troca de informação.
• O evento não é a informação trocada e sim o fato de
alguma informação ter sido trocada.
• O tipo de evento mais comum encontrado durante a
análise é a interação entre um ator e o sistema.
– Outros tipos também são possı́veis.
• Modelamos o comportamento do sistema através de
eventos e das ações executadas em resposta a eles.
Técnica de Análise Textual
Substantivos
Verbos
Objetos/Classes
Atributos
Associações
Operações
Enunciado do Problema
OU
Especificação dos Casos de Uso
Atividades da Modelagem Dinâmica
Estado Inicial
Identificar eventos do sistema
Construir diagramas de seqüência para
os cenários primários dos casos de uso
Construir um único diagrama de colaboração
para o sistema, combinando os diagramas
de seqüência obtidos na atividade 2
Atualizar interfaces públicas
das classes de análise
Construir diagramas de estados
[deseja−se iterar
para refinar]
Estado Final
[senão]
Atividade 1: Identificar Eventos do Sistema
• Deve ser realizada uma nova análise textual nas espe-
cificações dos casos de uso, prestando-se atenção aos
pontos nos quais trocas de informação ocorrem.
• Normalmente, esses pontos estão associados a verbos.
• Informações relevantes: verbos e os contextos nos
quais aparecem.
Diagrama de Casos de Uso
Cliente
Cadastro de Contas do Banco
Dispensador de Notas
Consultar Saldo
Efetuar Login
Efetuar Saque
Efetuar Depósito
Sistema de Caixa Automático
Caso de Uso Efetuar Login (I)
Fluxo Básico :
1. O cliente solicita a opção de “Efetuar Login” no sistema.
2. O sistema pede que o cliente informe o número da conta.
3. O cliente fornece o número da conta.
4. O sistema pede que o cliente informe a sua senha.
5. O cliente fornece a senha.
6. O sistema verifica se a conta é válida e
se a senha está correta, através do Cadastro de Con-
tas do Banco. Em caso positivo, o sistema atualiza
o estado do caixa eletrônico com as informações de login.
7. O sistema exibe no terminal o menu de opções que o cliente
pode acessar.
Caso de Uso Efetuar Login (II)
Fluxo Alternativo 1 :
No passo 6 do Fluxo Básico, se a conta fornecida
não existir ou se a senha estiver errada, o sistema
informa que alguma das informações fornecidas está
incorreta e que não é possı́vel autenticar o cliente.
Em seguida, volta ao passo 2 do Fluxo Básico.
Fluxo Alternativo 2 :
Nos passos 3 e 5 do Fluxo Básico, o cliente
pode cancelar a operação.
Caso de Uso Consultar Saldo (I)
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a
opção “Consultar Saldo”.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta está ativa, através
do Cadastro de Contas do Banco.
4. O sistema obtém o saldo da conta do cliente e
o imprime.
Caso de Uso Consultar Saldo (II)
Fluxo Alternativo 1 :
No passo 2 do Fluxo Básico, se o login não foi
efetuado, o sistema informa isso ao cliente.
Fluxo Alternativo 2 :
No passo 3 do Fluxo Básico, se a conta não
estiver ativa, o sistema informa isso ao cliente e
avisa que a consulta não pôde ser realizada.
Caso de Uso Efetuar Saque (I)
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a opção
“Efetuar Saque”.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta está ativa, através do Cadastro
de Contas do Banco.
4. O sistema solicita que o cliente informe a quantia desejada.
5. O cliente informa a quantia desejada.
6. O sistema verifica se o saldo da conta é suficiente para
realizar a transação e, em caso afirmativo,
se há dinheiro em quantidade suficiente no caixa.
7. O sistema subtrai o valor solicitado do saldo da conta do cliente
e do valor disponı́vel no caixa e libera a quantia solicitada,
através do dispensador de notas.
Caso de Uso Efetuar Saque (II)
Fluxo Alternativo 1 :
No passo 2 do Fluxo Básico, se o login não tiver
sido efetuado, o sistema informa isso ao cliente.
Fluxo Alternativo 2 :
No passo 3 do Fluxo Básico, se a conta não
estiver ativa, o sistema avisa isso ao cliente e
informa que o saque não pôde ser realizado.
Caso de Uso Efetuar Saque (III)
Fluxo Alternativo 3 :
No passo 6 do Fluxo Básico, se o valor solicitado for
menor que zero ou superior ao saldo da conta ou à
quantidade de dinheiro disponı́vel no caixa, o sistema
informa que não é possı́vel realizar o saque e o porquê. Em
seguida, volta ao passo 4 do Fluxo Básico.
Fluxo Alternativo 4 :
Após o passo 7 do Fluxo Básico, se o saldo da conta for
menor ou igual a zero, a conta deve ser desativada.
Fluxo Alternativo 5 :
No passo 5 do Fluxo Básico, o cliente pode
cancelar a operação.
Caso de Uso Efetuar Depósito (I)
Fluxo Básico :
1. O cliente escolhe no menu principal do terminal a opção
“Efetuar Depósito”.
2. O sistema solicita que o cliente informe a conta destino
do depósito.
3. O cliente informa a conta destino do depósito.
4. O sistema solicita que o cliente informe a quantia desejada.
5. O cliente informa a quantia desejada.
6. O sistema adiciona o valor depositado ao saldo da conta.
7. O sistema verifica se a conta deve ser reativada (saldo > 0
E conta inativa). Em caso positivo, o sistema
altera o estado da conta para ativo.
Caso de Uso Efetuar Depósito (II)
Fluxo Alternativo 1 :
No passo 3 do Fluxo Básico, se a conta for inválida, o sistema
informa isso ao cliente. Em seguida, volta ao passo 2 do
Fluxo Básico.
Fluxo Alternativo 2 :
No passo 5 do Fluxo Básico, se a quantia infor-
mada pelo cliente for menor que zero, o sistema
deve informar isso ao cliente, explicando o porquê. Em se-
guida, volta ao passo 4.
Fluxo Alternativo 3 :
Nos passos 3 e 5 do Fluxo Básico, o cliente
pode cancelar a operação.
Eventos Identificados (I)
(apenas os de responsabilidade do sistema)
• Verificar se a conta é válida.
• Verificar se a senha está correta.
• Atualizar o estado do caixa eletrônico com as in-
formações de login.
• Verificar se o login foi efetuado.
• Verificar se a conta está ativa.
• Obter o saldo da conta.
• Verificar se o cliente tem saldo suficiente para realizar
a transação.
Eventos Identificados (II)
(apenas os de responsabilidade do sistema)
• Verificar se há dinheiro em quantidade suficiente no
caixa.
• Subtrair o valor solicitado do saldo da conta do cliente.
• Desativar a conta.
• Adicionar o valor depositado ao saldo da conta.
• Verificar se a conta deve ser reativada.
• Reativar a conta.
Atividade 2: Construir Diagramas de
seqüência (cenários primários)
• Baseado nos eventos encontrados. Cada evento pode
corresponder a u ou mais fluxos no diagrama de
seqüência.
• Deve-se ter em mente as classes descobertas na
análise estática, pois é a partir da interação dos seus
objetos que as funcionalidades são implementadas.
Diagrama de Classes de Análise
(sem operações)
Diagrama de Classes de Análise
sistema
Terminal
CaixaEletronico
−quantiaDisponivel :.
−statusLogin :.
−contaLogin :.
Banco
−cod:.
−nome :.
FichaCliente
−nome :.
−rg:.
−cpf :.
Conta
−senha:.
−numero :.
−saldo :.
−status :.
FronteiraCadastroContas
ControladorCaixa FronteiraDispensadorNotas
Diagrama de Seqüência - Caso de Uso
Consultar Saldo
c:Conta
:FronteiraCadastroContas
:CaixaEletronico
:ControladorCaixa
:Terminal
:Cliente
Diagrama de Seqüência "Consultar Saldo"
1) .consultarSaldo
4)
2) .consultarSaldo
3)
.numConta = obterNumConta
.c = obterConta[numConta]
.obterStatus
.obterSaldo
Diagrama de Seqüência - Caso de Uso
Efetuar Saque
:FrtDispensadorDeNotas
c:Conta
:FrtCadastroContas
:CaixaEletronico
:CtlCaixa
:Terminal
:Cliente
Diagrama de Seqüência "Efetuar Saque"
1) .efetuarSaque[quant]
4)
2) .efetuarSaque[quant]
3)
.obterValorCaixa
.debitarValor[quant]
.debitarValor[quant]
.liberaDinheiro[quant]
.numConta = obterNumConta
.c = obterConta[numConta]
.obterStatus
.obterSaldo
Diagrama de Colaboração (I)
• Centraliza a representação dos eventos dos diagramas
de seqüência
• Explicita as associações entre as classes e facilita a
identificação das operações
Diagrama de Colaboração (II)
:FrtDispensadorNotas :Terminal :FrtCadastroContas
:CaixaEletronico :CtlCaixa c:Conta
liberarDinheiro(quant) :
consiltarSaldo() :
efetuarSaque(quant) :
obterConta(numConta) :
obterStatus() :
obterSaldo() :
debitarValor(quant) :
obterNumConta() :
obterValorCaixa() :
debitarValor(quant) :
Diagrama de Colaboração
Identificação das Operações
• Cada evento recebido pode ser
– Uma operação que a classe deve oferecer
– O retorno de uma operação executada
Diagrama de Classes Final de Análise
sistema
<< boundary >>
Terminal
+ efetuarLogin ():.
+ consultarSaldo ():.
+ efetuarSaque ():.
+ solicitarDeposito ():.
<< boundary >>
FronteiraCadastroContas
+ obterConta (numConta :.):.
+ atualizarConta (numConta :.):.
<< boundary >>
FronteiraDispensadorNotas
+ liberarQuantia (quant :.):.
<< entity >>
CaixaEletronico
−quantiaDisponivel :.
−statusLogin :.
−numContaLogin :.
+ atualizarStatusLoginCaixa (numConta :.):.
+ obterNumConta ():.
+ obterQuantDisponivel ():.
+ debitarValor (quant :.):.
<< control >>
ControladorCaixa
+ efetuarLogin (numConta :.,senha:.):.
+ consultarSaldo ():.
+ efetuarSaque (quant :.):.
+ efetuarDeposito (quant :.):.
<< entity >>
Banco
−cod:.
−nome :.
<< entity >>
FichaCliente
−nome :.
−rg:.
−cpf :.
<< entity >>
Conta
−senha:.
−numero :.
−saldo :.
−status :.
+ verificarSenha (senha:.):.
+ obterStatus ():.
+ obterSaldo ():.
+ debitar (quant :.):.
+ desativar ():.
+ depositar (quant :.):.
+ ativar ():.
Diagrama de Classes de Análise

Mais conteúdo relacionado

Semelhante a cap6.pdf

Análise Orientada a Objetos - Casos de Uso
Análise Orientada a Objetos - Casos de UsoAnálise Orientada a Objetos - Casos de Uso
Análise Orientada a Objetos - Casos de UsoCursoSENAC
 
Sicoob Blucredi | Passo a Passo Sicoobnet - Pessoa Jurídica
Sicoob Blucredi | Passo a Passo Sicoobnet - Pessoa JurídicaSicoob Blucredi | Passo a Passo Sicoobnet - Pessoa Jurídica
Sicoob Blucredi | Passo a Passo Sicoobnet - Pessoa JurídicaSicoob Blucredi
 
Como criar e utilizar sua Conta MOIP - Kickante
Como criar e utilizar sua Conta MOIP - KickanteComo criar e utilizar sua Conta MOIP - Kickante
Como criar e utilizar sua Conta MOIP - KickanteKickante
 
Trabalho rosa e alessandro 2º parte.
Trabalho rosa e alessandro 2º parte.Trabalho rosa e alessandro 2º parte.
Trabalho rosa e alessandro 2º parte.Rosa Serique
 
Previa interbancos2
Previa interbancos2Previa interbancos2
Previa interbancos2daviramosrs
 
Apresentação ASAAS
Apresentação ASAASApresentação ASAAS
Apresentação ASAASAlice_asaas
 
Guia de uso do sistema - WebliniaERP
Guia de uso do sistema - WebliniaERPGuia de uso do sistema - WebliniaERP
Guia de uso do sistema - WebliniaERPFilipe Coelho
 
Express checkout PayPal
Express checkout PayPalExpress checkout PayPal
Express checkout PayPalJeff Prestes
 
Conceitos bancários
Conceitos bancáriosConceitos bancários
Conceitos bancáriosValéria Lins
 
Workshop "Get Paid Online"
Workshop "Get Paid Online"Workshop "Get Paid Online"
Workshop "Get Paid Online"fabricastartups
 
Contas e Instrumentos de Pagamento V_4.0.pptx
Contas e Instrumentos de Pagamento V_4.0.pptxContas e Instrumentos de Pagamento V_4.0.pptx
Contas e Instrumentos de Pagamento V_4.0.pptxCatarinaSequeira22
 
Santri Sistemas - B29 Autorização de Baixas Financeiras
Santri Sistemas - B29 Autorização de Baixas FinanceirasSantri Sistemas - B29 Autorização de Baixas Financeiras
Santri Sistemas - B29 Autorização de Baixas FinanceirasSantiago Sola
 

Semelhante a cap6.pdf (20)

Auditoria dos activos
Auditoria dos activosAuditoria dos activos
Auditoria dos activos
 
Usecash investidores
Usecash investidoresUsecash investidores
Usecash investidores
 
Análise Orientada a Objetos - Casos de Uso
Análise Orientada a Objetos - Casos de UsoAnálise Orientada a Objetos - Casos de Uso
Análise Orientada a Objetos - Casos de Uso
 
Sicoob Blucredi | Passo a Passo Sicoobnet - Pessoa Jurídica
Sicoob Blucredi | Passo a Passo Sicoobnet - Pessoa JurídicaSicoob Blucredi | Passo a Passo Sicoobnet - Pessoa Jurídica
Sicoob Blucredi | Passo a Passo Sicoobnet - Pessoa Jurídica
 
Como criar e utilizar sua Conta MOIP - Kickante
Como criar e utilizar sua Conta MOIP - KickanteComo criar e utilizar sua Conta MOIP - Kickante
Como criar e utilizar sua Conta MOIP - Kickante
 
Trabalho rosa e alessandro 2º parte.
Trabalho rosa e alessandro 2º parte.Trabalho rosa e alessandro 2º parte.
Trabalho rosa e alessandro 2º parte.
 
Previa interbancos2
Previa interbancos2Previa interbancos2
Previa interbancos2
 
Encerramento saldos
Encerramento saldosEncerramento saldos
Encerramento saldos
 
Apresentação ASAAS
Apresentação ASAASApresentação ASAAS
Apresentação ASAAS
 
Guia de uso do sistema - WebliniaERP
Guia de uso do sistema - WebliniaERPGuia de uso do sistema - WebliniaERP
Guia de uso do sistema - WebliniaERP
 
Gestão Financeira Para Pequenas Empresas.pptx
Gestão Financeira Para Pequenas Empresas.pptxGestão Financeira Para Pequenas Empresas.pptx
Gestão Financeira Para Pequenas Empresas.pptx
 
Operador de Caixa
Operador de CaixaOperador de Caixa
Operador de Caixa
 
Versão 1.48
Versão   1.48Versão   1.48
Versão 1.48
 
Express checkout PayPal
Express checkout PayPalExpress checkout PayPal
Express checkout PayPal
 
Conceitos bancários
Conceitos bancáriosConceitos bancários
Conceitos bancários
 
Workshop "Get Paid Online"
Workshop "Get Paid Online"Workshop "Get Paid Online"
Workshop "Get Paid Online"
 
Contas e Instrumentos de Pagamento V_4.0.pptx
Contas e Instrumentos de Pagamento V_4.0.pptxContas e Instrumentos de Pagamento V_4.0.pptx
Contas e Instrumentos de Pagamento V_4.0.pptx
 
Meios de pagamento para e-commerce
Meios de pagamento para e-commerceMeios de pagamento para e-commerce
Meios de pagamento para e-commerce
 
Cestas Bancarias[1]
Cestas Bancarias[1]Cestas Bancarias[1]
Cestas Bancarias[1]
 
Santri Sistemas - B29 Autorização de Baixas Financeiras
Santri Sistemas - B29 Autorização de Baixas FinanceirasSantri Sistemas - B29 Autorização de Baixas Financeiras
Santri Sistemas - B29 Autorização de Baixas Financeiras
 

cap6.pdf

  • 1. Modelagem Estática e Dinâmica: Estudo de Caso - Sistema de Caixa Automático
  • 2. Enunciado do Problema (I) O sistema de caixa automático permite que clientes rea- lizem saques e verifiquem seus saldos, de acordo com as seguintes regras de negócios: 1. Quando uma conta é criada no banco, o seu saldo é maior que zero. 2. Um cliente pode possuir várias contas no banco. 3. O cliente acessa uma conta através do terminal de um caixa eletrônico do seu banco. 4. Antes de executar qualquer operação da conta, o cli- ente deve fornecer o número da sua conta e a senha referente à mesma. reaticada.
  • 3. Enunciado do Problema (II) 5. Para a realização do saque, o cliente utiliza um ter- minal para solicitar um valor numérico de dinheiro. 6. O cliente pode sacar qualquer quantia do caixa, desde que a mesma seja igual ou inferior ao saldo disponı́vel. Vale a polı́tica do banco de que uma conta não aceita uma operação de saque quando a conta está com o saldo zerado. O dinheiro é liberado no dispensador de notas do caixa e debitado do saldo da conta. 7. Além de possuir o dinheiro disponı́vel na conta, em uma operação de saque, a quantidade de dinheiro dis- ponı́vel no caixa eletrônico deve ser maior ou igual à quantia solicitada pelo cliente.
  • 4. Enunciado do Problema (III) 8. Se o saldo de uma conta é zerado durante uma operação de saque, a conta deve se tornar inativa. 9. Os clientes que vão operar o caixa eletrônico devem estar devidamente cadastrados no banco e suas contas devem estar ativas. 10. Cada conta tem associado um número e uma senha. Além disso, cada conta é associada a um cliente do banco, que possui informações como nome, RG, CPF, etc.
  • 5. Enunciado do Problema (IV) 11. As informações adicionais sobre as contas e seus cli- entes estão armazenadas em um Cadastro de Contas do Banco que interage com o Sistema de Caixa Au- tomático. 12. Qualquer cliente cadastrado no banco pode efetuar depósitos em uma conta, quer a conta esteja ativa, quer ela esteja inativa. 13. Caso a conta esteja inativa e após o depósito seu saldo fique maior que zero, a conte deve ser reativada.
  • 6. Diagrama de Casos de Uso Cliente Cadastro de Contas do Banco Dispensador de Notas Consultar Saldo Efetuar Login Efetuar Saque Efetuar Depósito Sistema de Caixa Automático
  • 8. Caso de Uso Consultar Saldo (I) Breve Descrição : O cliente, já autenticado, escolhe a opção “Consultar Saldo” e o sistema apresenta o seu saldo. Atores : Cliente, Cadastro de Contas do Banco. Pré-condição : A conta deve estar ativa e o cliente já deve ter sido autenticado junto ao sistema, através do caso de uso Efetuar Login. Pós-condição : Estado da conta inalterado. Requisitos Especiais : nenhum.
  • 9. Caso de Uso Consultar Saldo (II) Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Consultar Saldo”. 2. O sistema verifica se o login foi efetuado 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema obtém o saldo da conta do cliente e o imprime.
  • 10. Caso de Uso Consultar Saldo (III) Fluxo Alternativo 1 : No passo 2 do Fluxo Básico, se o login não foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2 : No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema informa isso ao cliente e avisa que a consulta não pôde ser realizada.
  • 11. Diagrama de Atividades - Consultar Saldo Estado Inicial Selecionar opção "Consultar Saldo" Verificar Login do usuário Verificar status da conta Exibir "mensagem de erro de login" Exibir "mensagem de conta inativa" Emitir Saldo Estado Final [senão] [login não efetuado] [status == ’ativo’] [senão]
  • 12. Diag. de Seqüência de Sistema - Consultar Saldo :Cliente :Sistema :CadastroContasDoBanco Diagrama de Seqüência de Sistema 1) .consultarSaldo 2) . .obterNumConta .obterConta[numConta] .verificarContaAtiva .obterSaldo Mensagem síncrona − com representação de retorno Mensagem assíncrona − sem representação de retorno
  • 13. Caso de Uso Efetuar Saque (I) Breve Descrição : O cliente, já autenticado, escolhe a opção “Efetuar Saque”, informa a quantia desejada e, caso o saldo da conta seja suficiente e o caixa tenha o dinheiro necessário, a quantia é liberada. Atores : Cliente, Cadastro de Contas do Banco, Dispen- sador de Notas. Pré-condição : O cliente deve estar logado no sistema, através do caso de uso Efetuar Login. Além disso, a conta deve estar ativa e o valor a debitar deve ser maior que zero e não pode ser superior ao saldo da conta nem à quantidade de dinheiro disponı́vel no caixa.
  • 14. Caso de Uso Efetuar Saque (II) Pós-condição : O valor a ser sacado é subtraı́do do saldo da conta e do total disponı́vel no caixa eletrônico e a quantia solicitada é fornecida ao cliente. Requisitos Especiais : nenhum. Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Efetuar Saque”. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema solicita que o cliente informe a quantia desejada.
  • 15. Caso de Uso Efetuar Saque (III) Fluxo Básico (cont.): 5. O cliente informa a quantia desejada. 6. O sistema verifica se o saldo da conta é suficiente para realizar a transação e, em caso afirmativo, se há dinheiro em quantidade suficiente no caixa. 7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor disponı́vel no caixa e libera a quantia solicitada, através do dispensador de notas.
  • 16. Caso de Uso Efetuar Saque (IV) Fluxo Alternativo 1 : No passo 2 do Fluxo Básico, se o login não tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2 : No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema avisa isso ao cliente e informa que o saque não pôde ser realizado.
  • 17. Caso de Uso Efetuar Saque (V) Fluxo Alternativo 3 : No passo 6 do Fluxo Básico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou à quantidade de dinheiro disponı́vel no caixa, o sistema informa que não é possı́vel realizar o saque e o porquê. Em seguida, volta ao passo 4 do Fluxo Básico. Fluxo Alternativo 4 : Após o passo 7 do Fluxo Básico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 5 do Fluxo Básico, o cliente pode cancelar a operação.
  • 18. Diagrama de Atividades - Efetuar Saque
  • 19. Estado Inicial Selecionar a opção "Efetuar Saque" Verificar Login do usuário Exibir "mensagem de erro de login" [login não efetuado] Verificar status da conta [senão] Exibir "mensagem de conta inativa" [senão] Obter a quantia a sacar [status == ’ativo’] Estado Final Verificar o saldo da conta e a quantia do caixa [senão] [cancelar operação] Debitar valor na conta [quantia > 0 E quantia >= saldo E caixa tem dinheiro] Exibir "mensagem do porquê do saque estar indisponível" [senão] Liberar saque
  • 20. Diag. de Seqüência de Sistema - Efetuar Saque
  • 21. :CadastroContasDoBanco :Sistema :Cliente Diagrama de Seqüência de Sistema 1) .efetuarSaque[valor] 2) .obterNumConta .obterConta[numConta] .verificarContaAtiva .obterSaldo .obterValorEmCaixa .debitarValor
  • 22. Um Método para Análise OO Usando UML
  • 23. Atividades Gerais do Método Estado Inicial Modelar a estrutura estática do sistema Modelar a estrutura dinâmica do sistema Diagrama de classes de análise (sem as operações das classes) Especificação das operaçoes das classes de análise Refinar o diagrama de análise com padrões e particularidades da linguagem Análise OO Projeto OO Estado Final
  • 24. Técnica de Análise Textual Enunciado do Problema e Especificacao dos casos de uso Substantivos Verbos Objetos/Classes Atributos Associações Operações
  • 26. Modelagem Estática (I) Estado Inicial 1: Identificar ’substantivos’ 2: Identificar as ’classes’ de análise 3: Construir o ’dicionário de dados’ das classes selecionadas 4: Identificar ’relacionamentos’ entre as classes de análise 5: Identificar ’atributos’ das classes de análise [6: Iterar e ’refinar’] Estado Final [senão] A partir do enunciado do paoblema E da especificaçao dos casos de uso
  • 27. Modelagem Estática (II) Atividades da Modelagem Estática Início Fim 1−Criar classes de análise 2−Construir dicionário de dados 3−Criar relacionamentos entre as classes de análise 4−Criar atributos das classes de análise 5−Iterar e refinar −Identificar classes candidatas −Refinar lista de classes −Identificar agregações −Identificar associações −Identificar herança
  • 28. Modelagem Estática (IV) • Foco na identificação das classes de análise, seus atributos e os relacionamentos entre elas • Será utilizada a técnica de análise textual (Cap.3). A técnica será aplicada para cada um dos quatro casos de uso especifica- dos: 1. Consultar Saldo 2. Efetuar Saque
  • 29. Atividade 1: Identificar Classes de Análise • As especificações dos casos de uso fornecem as informações necessárias. • Primeiro identifica-se os conceitos, dentro do domı́nio do pro- blema, que são relevantes para o sistema que se pretende cons- truir. – Esses conceitos se tranformam posteriormente em classes de análise. • Em seguida pode-se fazer uma análise textual da descrição do problema e das especificações dos casos de uso para comple- mentar as classes relevantes para o sistema • Importante: o diagrama de classes de análise é uma descrição de coisas no domı́nio do problema do mundo real, não no do projeto de software!
  • 30. Atividade 1.1: Identificar Classes Candidatas
  • 31. Caso de Uso Consultar Saldo (I) Breve Descrição : O cliente, já autenticado, escolhe a opção “Consultar Saldo” e o sistema apresenta o seu saldo. Atores : Cliente, Cadastro de Contas do Banco. Pré-condição : A conta deve estar ativa e o cliente já deve ter sido autenticado junto ao sistema, através do caso de uso Efetuar Login. Pós-condição : Estado da conta inalterado. Requisitos Especiais : nenhum.
  • 32. Caso de Uso Consultar Saldo (II) Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Consultar Saldo”. 2. O sistema verifica se o login foi efetuado 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema obtém o saldo da conta do cliente e o imprime.
  • 33. Caso de Uso Consultar Saldo (III) Fluxo Alternativo 1 : No passo 2 do Fluxo Básico, se o login não foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2 : No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema informa isso ao cliente e avisa que a consulta não pôde ser realizada.
  • 34. Caso de Uso Efetuar Saque (I) Breve Descrição : O cliente, já autenticado, escolhe a opção “Efetuar Saque”, informa a quantia desejada e, caso o saldo da conta seja suficiente e o caixa tenha o dinheiro necessário, a quantia é liberada. Atores : Cliente, Cadastro de Contas do Banco, Dispensador de Notas. Pré-condição : O cliente deve estar logado no sistema, através do caso de uso Efetuar Lo- gin. Além disso, a conta deve estar ativa e o valor a debitar deve ser maior que zero e não pode ser superior ao saldo da conta nem à quantidade de dinheiro disponı́vel no caixa.
  • 35. Caso de Uso Efetuar Saque (II) Pós-condição : O valor a ser sacado é subtraı́do do saldo da conta e do total disponı́vel no caixa eletrônico e a quantia solicitada é fornecida ao cliente. Requisitos Especiais : nenhum. Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Efetuar Saque”. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema solicita que o cliente informe a quantia desejada.
  • 36. Caso de Uso Efetuar Saque (III) Fluxo Básico (cont.): 5. O cliente informa a quantia desejada. 6. O sistema verifica se o saldo da conta é suficiente para realizar a transação e, em caso afirmativo, se há dinheiro em quantidade suficiente no caixa. 7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor disponı́vel no caixa e libera a quantia solicitada, através do dispensador de notas.
  • 37. Caso de Uso Efetuar Saque (IV) Fluxo Alternativo 1 : No passo 2 do Fluxo Básico, se o login não tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2 : No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema avisa isso ao cliente e informa que o saque não pôde ser realizado.
  • 38. Caso de Uso Efetuar Saque (V) Fluxo Alternativo 3 : No passo 36 do Fluxo Básico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou à quantidade de dinheiro disponı́vel no caixa, o sistema in- forma que não é possı́vel realizar o saque e o porquê. Em seguida, volta ao passo 4 do Fluxo Básico. Fluxo Alternativo 4 : Após o passo 36 do Fluxo Básico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 36 do Fluxo Básico, o cliente pode cancelar a operação.
  • 39. Entidades Candidatas Identificadas • Caso de uso Efetuar Login: • Caixa eletrônico • Cliente • Número da conta • Senha • Acesso • Sistema • Cadastro de Contas do Banco • Opção • Menu Principal • Conta • Banco • Estado da conta • Criptografia • Operação • Estado do Caixa eletrônico
  • 40. Entidades Candidatas Identificadas • Caso de uso Consultar Saldo: • Saldo • Terminal • Saldo da conta • Login • Consulta • Quantia de dinheiro disponı́vel em caixa • Caso de uso Efetuar Saque: • Caixa • Dinheiro • Quantia • Dispensador de Notas • Valor a debitar • Quantia de di- nheiro disponı́vel em caixa • Valor a ser sacado • Quantia solici- tada • Quantia desejada • Transação
  • 41. Entidades Candidatas Identificadas • Caso de uso Efetuar Depósito: • Valor a depo- sitar • Valor a ser depo- sitado • Valor depositado • Estado da conta • Quantia infor- mada pelo cliente • Conta destino do depósito
  • 42. Atividade 1.2: Refinar a lista de classes candidatas
  • 43. Critérios para Eliminação de Classes Inapropriadas • Classes Redundantes: quando duas palavras significam a mesma coisa, escolha a palavra mais significativa. • Classes Irrelevantes: aquelas classes que não estão dire- tamente relacionadas com o problema. • Atributos: alguns atributos podem ser descritos por subs- tantivos. • Operações: alguns substantivos podem ser operações. • Papéis: nomes de papéis são de fato nomes de processos dinâmicos ao invés de classes propriamente ditas. • Construções de Implementações: qualquer coisa que faça referência a estruturas de dados, etc.
  • 44. Classes Candidatas eliminadas (I) Classes Redundantes: • Valor a ser depositado, Valor depositado e Quantia informada pelo cliente: equivalentes a Valor a deposi- tar. • Caixa: idêntica à classe Caixa eletrônico. • Valor a ser sacado, Quantia desejada, Quantia solici- tada, Quantia: equivalentes a Valor a debitar. • Saldo da conta, Saldo da conta do cliente: equivalen- tes a Saldo. • Operação e Opção: equivalente a Transação. • Conta destino do depósito: equivalente a Número da conta.
  • 45. Classes Candidatas eliminadas (II) Classes Irrelevantes: • Transação: o enunciado do problema não exige que informações sobre as transações realizadas sejam ar- mazenadas. • Número da conta: atributo da classe Conta. • Senha: atributo da classe Conta. • Estado do caixa: termo genérico para os atributos da classe Caixa eletrônico. • Quantidade de dinheiro disponı́vel no caixa: atributo da classe Caixa eletrônico. • Estado da conta: termo genérico para os atributos da classe Conta. • Saldo: atributo da classe Conta.
  • 46. Classes Candidatas eliminadas (III) Classes Vagas: • Acesso • Menu Principal • Criptografia • Login • Consulta • Valor a debitar • Valor a depositar
  • 47. Lista Revisada de Classes • CaixaEletrônico • Cliente (6= do ATOR – “dados do cliente”) • Sistema • Cadastro de Contas do Banco (ATOR) • Conta • Banco • Terminal • Dispensador de Notas (ATOR)
  • 48. Atividade 2: Construir/Atualizar o dicionário de dados (I) • Classe Terminal: classe através da qual são transmi- tidos os valores de entrada e saı́da a serem utilizados pelo caixa eletrônico. Esta classe encapsula toda a interface com o usuário, assim, o tipo de terminal a ser implementado por um Sistema de Caixa Au- tomático pode ser facilmente modificado através da substituição desta classe. • Classe DadosCliente: classe cujos objetos encapsu- lam os dados pessoais dos clientes do banco. • Classe Conta: classe cujos objetos são as contas mantidas pelos clientes do banco.
  • 49. Atividade 2: Construir/Atualizar o dicionário de dados (II) • Classe CaixaEletronico: classe que representa o es- tado do caixa automático. • Classe Banco: classe que representa o estado do banco ao qual está vinculada a conta e os clientes. • Classe Sistema: o Sistema de Caixa Automático pode ser visto como uma classe que representa o sis- tema e engloba todas as classes pertencentes a este. Esta é uma classe conceitual e não pertence ao sis- tema propriamente dito.
  • 50. Atividade 3: Identificar/Refinar os Relacionamentos Entre as Classes • As classes identificadas até o momento devem ser ana- lisadas com o intuito de identificar as associações e os relacionamentos de agregação/decomposição e de ge- neralização/especialização entre elas • A classe Sistema representa o sistema como um todo e, desta forma, todas as outras classes podem ser con- sideradas partes dela • Para simplificar a representação do modelo, a classe Sistema pode ser substituı́da por um pacote que con- tenha todas as classes que compõem o sistema
  • 51. Agregações Encontrados (I) • Um Banco possui uma ou mais Contas • Um Banco contém vários clientes (DadosCliente) • Um Banco possui vários Caixas Eletrônico • Um Caixa Eletrônico possui um Terminal • Um cliente (DadosCliente) pode possuir várias Contas
  • 53. Atividade 4: Identificar/Refinar Atributos das Classes (I) • A partir da especificação dos casos de uso: Classes de Entidade Atributos CaixaEletronico Quantidade de dinheiro disponı́vel Status do Login Número da Conta logada Conta Senha Número Saldo Status Banco Código Nome
  • 54. Atividade 4: Identificar/Refinar Atributos das Classes (II) • Além dessa análise das especificações dos casos de uso, pode-se utilizar o enunciado do problema: Classes de Entidade Atributos DadosCliente Nome RG CPF
  • 55. Atividade 4: Identificar/Refinar Atributos das Classes (III) sistema Terminal CaixaEletronico −quantiaDisponivel :. −statusLogin :. −contaLogin :. Banco −cod:. −nome :. FichaCliente −nome :. −rg:. −cpf :. Conta −senha:. −numero :. −saldo :. −status :. Diagrama de Classes de Análise com Atributos
  • 57. Atividade 1: Identificar/Refinar Classes (MVC) • Classificar as classes em (Fronteira, Controle e Entidade) • Identificar novas classes (Fronteira e Controle) Novas Classes: • FronteiraCadastroContas (interagir com o ator Cadastro de contas) • FronteiraDispensadorNotas (interagir com o ator Dispensador de notas) • ControladorCaixa (controla a lógica interna do caixa eletrônico)
  • 58. Classes do Sistema • CaixaEletronico << entity >> • Conta << entity >> • Banco << entity >> • Terminal << boundary >> • DadosCliente << entity >> • FronteiraCadastroContas << boundary >> • FronteiraDispensadorNotas << boundary >> • ControladorCaixa << control >>
  • 59. Atividade 2: Construir/Atualizar o Dicionário de Dados • Terminal: classe de fronteira através da qual são trans- mitidos os valores de entrada e saı́da a serem utilizados pelo caixa eletrônico. Esta classe encapsula toda a inter- face com o usuário, assim, o tipo de terminal a ser imple- mentado por um Sistema de Caixa Automático pode ser facilmente modificado através da substituição desta classe. • ControladorCaixa: classe de controle que encapsula as polı́ticas definidas pela especificação do sistema e geren- cia as interações entre as classes de fronteira e entidade. Os objetos da classe ControladorCaixa possuem operações para efetuar login no sistema, consultar o saldo de uma conta, efetuar um saque e efetuar um depósito.
  • 60. Atividade 2: Dicionário de Dados (II) • DadosCliente: classe de entidade cujos objetos en- capsulam os dados pessoais dos clientes do banco. • Conta: classe de entidade cujos objetos são as contas mantidas pelos clientes do banco. • CaixaEletronico: classe de entidade que representa o estado do caixa automático. • Banco: classe de entidade que representa o estado do banco ao qual está vinculada a conta e os clientes.
  • 61. Atividade 2: Dicionário de Dados (III) • Sistema: o Sistema de Caixa Automático pode ser visto como uma classe que representa o sistema e en- globa todas as classes pertencentes a este. Esta é uma classe conceitual e não pertence ao sistema propria- mente dito. • FronteiraCadastroContas: classe de fronteira que media as interações entre o sistema e o ator Cadastro de Contas do Banco. • FronteiraDispensadorNotas: classe de fronteira que media as interações entre o sistema e o ator Dispen- sador de Notas.
  • 62. Atividade 3: Identificar/Refinar os Relacionamentos Entre as Classes • Adicionar as associações com as novas classes do mo- delo MVC, obedecendo a relação: Relacionamento entre classes no MVC sistema Fronteira Controle Entidade Ator
  • 63. Diagrama de Classes de Análise (sem operações) Diagrama de Classes de Análise sistema Terminal CaixaEletronico −quantiaDisponivel :. −statusLogin :. −contaLogin :. Banco −cod:. −nome :. FichaCliente −nome :. −rg:. −cpf :. Conta −senha:. −numero :. −saldo :. −status :. FronteiraCadastroContas ControladorCaixa FronteiraDispensadorNotas
  • 65. Atividades Gerais do Método Estado Inicial Modelar a estrutura estática do sistema Modelar a estrutura dinâmica do sistema Diagrama de classes de análise (sem as operações das classes) Especificação das operaçoes das classes de análise Refinar o diagrama de análise com padrões e particularidades da linguagem Análise OO Projeto OO Estado Final
  • 66. Modelagem Dinâmica • Identifica e modela os aspectos do sistema de software que podem mudar durante a sua execução, devido à ocorrência de eventos. • Foco no comportamento que o sistema deve apre- sentar. • Usa os diagramas dinâmicos da UML (seqüência, co- laboração, estados). • Especifica uma versão inicial das interfaces públicas das classes de análise. • Sub-etapa de Análise OO - Foco no domı́nio do problema!
  • 67. Eventos • Ocorrências dignas de nota relativas ao sistema e en- volvendo algum tipo de troca de informação. • O evento não é a informação trocada e sim o fato de alguma informação ter sido trocada. • O tipo de evento mais comum encontrado durante a análise é a interação entre um ator e o sistema. – Outros tipos também são possı́veis. • Modelamos o comportamento do sistema através de eventos e das ações executadas em resposta a eles.
  • 68. Técnica de Análise Textual Substantivos Verbos Objetos/Classes Atributos Associações Operações Enunciado do Problema OU Especificação dos Casos de Uso
  • 69. Atividades da Modelagem Dinâmica Estado Inicial Identificar eventos do sistema Construir diagramas de seqüência para os cenários primários dos casos de uso Construir um único diagrama de colaboração para o sistema, combinando os diagramas de seqüência obtidos na atividade 2 Atualizar interfaces públicas das classes de análise Construir diagramas de estados [deseja−se iterar para refinar] Estado Final [senão]
  • 70. Atividade 1: Identificar Eventos do Sistema • Deve ser realizada uma nova análise textual nas espe- cificações dos casos de uso, prestando-se atenção aos pontos nos quais trocas de informação ocorrem. • Normalmente, esses pontos estão associados a verbos. • Informações relevantes: verbos e os contextos nos quais aparecem.
  • 71. Diagrama de Casos de Uso Cliente Cadastro de Contas do Banco Dispensador de Notas Consultar Saldo Efetuar Login Efetuar Saque Efetuar Depósito Sistema de Caixa Automático
  • 72. Caso de Uso Efetuar Login (I) Fluxo Básico : 1. O cliente solicita a opção de “Efetuar Login” no sistema. 2. O sistema pede que o cliente informe o número da conta. 3. O cliente fornece o número da conta. 4. O sistema pede que o cliente informe a sua senha. 5. O cliente fornece a senha. 6. O sistema verifica se a conta é válida e se a senha está correta, através do Cadastro de Con- tas do Banco. Em caso positivo, o sistema atualiza o estado do caixa eletrônico com as informações de login. 7. O sistema exibe no terminal o menu de opções que o cliente pode acessar.
  • 73. Caso de Uso Efetuar Login (II) Fluxo Alternativo 1 : No passo 6 do Fluxo Básico, se a conta fornecida não existir ou se a senha estiver errada, o sistema informa que alguma das informações fornecidas está incorreta e que não é possı́vel autenticar o cliente. Em seguida, volta ao passo 2 do Fluxo Básico. Fluxo Alternativo 2 : Nos passos 3 e 5 do Fluxo Básico, o cliente pode cancelar a operação.
  • 74. Caso de Uso Consultar Saldo (I) Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Consultar Saldo”. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema obtém o saldo da conta do cliente e o imprime.
  • 75. Caso de Uso Consultar Saldo (II) Fluxo Alternativo 1 : No passo 2 do Fluxo Básico, se o login não foi efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2 : No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema informa isso ao cliente e avisa que a consulta não pôde ser realizada.
  • 76. Caso de Uso Efetuar Saque (I)
  • 77. Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Efetuar Saque”. 2. O sistema verifica se o login foi efetuado. 3. O sistema verifica se a conta está ativa, através do Cadastro de Contas do Banco. 4. O sistema solicita que o cliente informe a quantia desejada. 5. O cliente informa a quantia desejada. 6. O sistema verifica se o saldo da conta é suficiente para realizar a transação e, em caso afirmativo, se há dinheiro em quantidade suficiente no caixa. 7. O sistema subtrai o valor solicitado do saldo da conta do cliente e do valor disponı́vel no caixa e libera a quantia solicitada, através do dispensador de notas.
  • 78. Caso de Uso Efetuar Saque (II) Fluxo Alternativo 1 : No passo 2 do Fluxo Básico, se o login não tiver sido efetuado, o sistema informa isso ao cliente. Fluxo Alternativo 2 : No passo 3 do Fluxo Básico, se a conta não estiver ativa, o sistema avisa isso ao cliente e informa que o saque não pôde ser realizado.
  • 79. Caso de Uso Efetuar Saque (III) Fluxo Alternativo 3 : No passo 6 do Fluxo Básico, se o valor solicitado for menor que zero ou superior ao saldo da conta ou à quantidade de dinheiro disponı́vel no caixa, o sistema informa que não é possı́vel realizar o saque e o porquê. Em seguida, volta ao passo 4 do Fluxo Básico. Fluxo Alternativo 4 : Após o passo 7 do Fluxo Básico, se o saldo da conta for menor ou igual a zero, a conta deve ser desativada. Fluxo Alternativo 5 : No passo 5 do Fluxo Básico, o cliente pode cancelar a operação.
  • 80. Caso de Uso Efetuar Depósito (I) Fluxo Básico : 1. O cliente escolhe no menu principal do terminal a opção “Efetuar Depósito”. 2. O sistema solicita que o cliente informe a conta destino do depósito. 3. O cliente informa a conta destino do depósito. 4. O sistema solicita que o cliente informe a quantia desejada. 5. O cliente informa a quantia desejada. 6. O sistema adiciona o valor depositado ao saldo da conta. 7. O sistema verifica se a conta deve ser reativada (saldo > 0 E conta inativa). Em caso positivo, o sistema altera o estado da conta para ativo.
  • 81. Caso de Uso Efetuar Depósito (II) Fluxo Alternativo 1 : No passo 3 do Fluxo Básico, se a conta for inválida, o sistema informa isso ao cliente. Em seguida, volta ao passo 2 do Fluxo Básico. Fluxo Alternativo 2 : No passo 5 do Fluxo Básico, se a quantia infor- mada pelo cliente for menor que zero, o sistema deve informar isso ao cliente, explicando o porquê. Em se- guida, volta ao passo 4. Fluxo Alternativo 3 : Nos passos 3 e 5 do Fluxo Básico, o cliente pode cancelar a operação.
  • 82. Eventos Identificados (I) (apenas os de responsabilidade do sistema) • Verificar se a conta é válida. • Verificar se a senha está correta. • Atualizar o estado do caixa eletrônico com as in- formações de login. • Verificar se o login foi efetuado. • Verificar se a conta está ativa. • Obter o saldo da conta. • Verificar se o cliente tem saldo suficiente para realizar a transação.
  • 83. Eventos Identificados (II) (apenas os de responsabilidade do sistema) • Verificar se há dinheiro em quantidade suficiente no caixa. • Subtrair o valor solicitado do saldo da conta do cliente. • Desativar a conta. • Adicionar o valor depositado ao saldo da conta. • Verificar se a conta deve ser reativada. • Reativar a conta.
  • 84. Atividade 2: Construir Diagramas de seqüência (cenários primários) • Baseado nos eventos encontrados. Cada evento pode corresponder a u ou mais fluxos no diagrama de seqüência. • Deve-se ter em mente as classes descobertas na análise estática, pois é a partir da interação dos seus objetos que as funcionalidades são implementadas.
  • 85. Diagrama de Classes de Análise (sem operações) Diagrama de Classes de Análise sistema Terminal CaixaEletronico −quantiaDisponivel :. −statusLogin :. −contaLogin :. Banco −cod:. −nome :. FichaCliente −nome :. −rg:. −cpf :. Conta −senha:. −numero :. −saldo :. −status :. FronteiraCadastroContas ControladorCaixa FronteiraDispensadorNotas
  • 86. Diagrama de Seqüência - Caso de Uso Consultar Saldo c:Conta :FronteiraCadastroContas :CaixaEletronico :ControladorCaixa :Terminal :Cliente Diagrama de Seqüência "Consultar Saldo" 1) .consultarSaldo 4) 2) .consultarSaldo 3) .numConta = obterNumConta .c = obterConta[numConta] .obterStatus .obterSaldo
  • 87. Diagrama de Seqüência - Caso de Uso Efetuar Saque :FrtDispensadorDeNotas c:Conta :FrtCadastroContas :CaixaEletronico :CtlCaixa :Terminal :Cliente Diagrama de Seqüência "Efetuar Saque" 1) .efetuarSaque[quant] 4) 2) .efetuarSaque[quant] 3) .obterValorCaixa .debitarValor[quant] .debitarValor[quant] .liberaDinheiro[quant] .numConta = obterNumConta .c = obterConta[numConta] .obterStatus .obterSaldo
  • 88. Diagrama de Colaboração (I) • Centraliza a representação dos eventos dos diagramas de seqüência • Explicita as associações entre as classes e facilita a identificação das operações
  • 89. Diagrama de Colaboração (II) :FrtDispensadorNotas :Terminal :FrtCadastroContas :CaixaEletronico :CtlCaixa c:Conta liberarDinheiro(quant) : consiltarSaldo() : efetuarSaque(quant) : obterConta(numConta) : obterStatus() : obterSaldo() : debitarValor(quant) : obterNumConta() : obterValorCaixa() : debitarValor(quant) : Diagrama de Colaboração
  • 90. Identificação das Operações • Cada evento recebido pode ser – Uma operação que a classe deve oferecer – O retorno de uma operação executada
  • 91. Diagrama de Classes Final de Análise sistema << boundary >> Terminal + efetuarLogin ():. + consultarSaldo ():. + efetuarSaque ():. + solicitarDeposito ():. << boundary >> FronteiraCadastroContas + obterConta (numConta :.):. + atualizarConta (numConta :.):. << boundary >> FronteiraDispensadorNotas + liberarQuantia (quant :.):. << entity >> CaixaEletronico −quantiaDisponivel :. −statusLogin :. −numContaLogin :. + atualizarStatusLoginCaixa (numConta :.):. + obterNumConta ():. + obterQuantDisponivel ():. + debitarValor (quant :.):. << control >> ControladorCaixa + efetuarLogin (numConta :.,senha:.):. + consultarSaldo ():. + efetuarSaque (quant :.):. + efetuarDeposito (quant :.):. << entity >> Banco −cod:. −nome :. << entity >> FichaCliente −nome :. −rg:. −cpf :. << entity >> Conta −senha:. −numero :. −saldo :. −status :. + verificarSenha (senha:.):. + obterStatus ():. + obterSaldo ():. + debitar (quant :.):. + desativar ():. + depositar (quant :.):. + ativar ():. Diagrama de Classes de Análise