Documente Academic
Documente Profesional
Documente Cultură
atica e Din
amica: Estudo de
Caso - Sistema de Caixa Autom
atico
Efetuar Login
Consultar Saldo
Cadastro de Contas do Banco
Cliente
Efetuar Saque
Dispensador de Notas
Efetuar Depsito
Descric
ao dos Casos de Uso
[login no efetuado]
[seno]
Exibir "mensagem
de erro de login"
[seno]
[status == ativo]
Exibir "mensagem
de conta inativa"
Emitir Saldo
Estado Final
Diag. de Seq
u
encia de Sistema -
Consultar Saldo
:Cliente
:Sistema
:CadastroContasDoBanco
1) .consultarSaldo
.obterNumConta
.obterConta[numConta]
.verificarContaAtiva
.obterSaldo
2) .
Mensagem sncrona
com representao de retorno
Mensagem assncrona
sem representao de retorno
Estado Inicial
[login no efetuado]
[seno]
Exibir "mensagem
de erro de login"
[seno]
[status == ativo]
Exibir "mensagem
de conta inativa"
Obter a quantia
a sacar
[seno]
[cancelar
operao]
[quantia > 0 E
quantia >= saldo E
caixa tem dinheiro]
Liberar saque
Estado Final
[seno]
Diag. de Seq
u
encia de Sistema -
Efetuar Saque
:Cliente
:Sistema
:CadastroContasDoBanco
1) .efetuarSaque[valor]
.obterNumConta
.obterConta[numConta]
.verificarContaAtiva
.obterSaldo
.obterValorEmCaixa
2)
.debitarValor
Um M
etodo para An
alise OO Usando UML
Atividades Gerais do M
etodo
Estado Inicial
Modelar a estrutura
esttica do sistema
Anlise OO
Modelar a estrutura
dinmica do sistema
Projeto OO
Estado Final
T
ecnica de An
alise Textual
Objetos/Classes
Substantivos
Atributos
Enunciado do Problema
e
Especificacao dos casos de uso
Associaes
Verbos
Operaes
Modelagem Est
atica
Modelagem Est
atica (I)
Estado Inicial
1: Identificar substantivos
4: Identificar relacionamentos
entre as classes de anlise
5: Identificar atributos
das classes de anlise
[seno]
3: Construir o dicionrio de dados
das classes selecionadas
Estado Final
Modelagem Est
atica (II)
Atividades da Modelagem Esttica
Incio
Fim
Identificar agregaes
Identificar associaes
Identificar herana
3Criar relacionamentos
entre as classes de anlise
5Iterar e refinar
Modelagem Est
atica (IV)
Foco na identificacao das classes de analise, seus atributos e os
relacionamentos entre elas
Sera utilizada a tecnica de analise textual (Cap.3). A tecnica
sera aplicada para cada um dos quatro casos de uso especificados:
1. Consultar Saldo
2. Efetuar Saque
Cliente
N
umero
conta
da
Senha
Acesso
Sistema
Cadastro de Contas
do Banco
Opcao
Menu Principal
Conta
Banco
Estado da conta
Criptografia
Operacao
Estado do Caixa
eletr
onico
Terminal
Saldo da conta
Login
Consulta
Quantia de dinheiro
disponvel em caixa
Dinheiro
Quantia
Dispensador de
Notas
Valor a debitar
Quantia solicitada
Quantia desejada
Transacao
Valor depositado
Estado
conta
Conta destino do
dep
osito
da
Crit
erios para Eliminac
ao de Classes
Inapropriadas
Classes Redundantes: quando duas palavras significam a
mesma coisa, escolha a palavra mais significativa.
Classes Irrelevantes: aquelas classes que n
ao est
ao diretamente relacionadas com o problema.
Atributos: alguns atributos podem ser descritos por substantivos.
Operac
oes: alguns substantivos podem ser operac
oes.
Pap
eis: nomes de papeis s
ao de fato nomes de processos
din
amicos ao inves de classes propriamente ditas.
Construc
oes de Implementac
oes: qualquer coisa que
faca referencia a estruturas de dados, etc.
Atividade 3: Identificar/Refinar os
Relacionamentos Entre as Classes
As classes identificadas ate o momento devem ser analisadas com o intuito de identificar as associacoes e os
relacionamentos de agregacao/decomposicao e de generalizacao/especializacao entre elas
A classe Sistema representa o sistema como um todo
e, desta forma, todas as outras classes podem ser consideradas partes dela
Para simplificar a representacao do modelo, a classe
Sistema pode ser substituda por um pacote que contenha todas as classes que comp
oem o sistema
Agregaco
es Encontrados (I)
Um Banco possui uma ou mais Contas
Um Banco contem varios clientes (DadosCliente)
Um Banco possui varios Caixas Eletr
onico
Um Caixa Eletr
onico possui um Terminal
Um cliente (DadosCliente) pode possuir varias Contas
Agregaco
es Encontrados (II)
sistema
Terminal
CaixaEletronico
Banco
DadosCliente
Conta
Atributos
CaixaEletronico
Conta
Senha
N
umero
Saldo
Status
Banco
C
odigo
Nome
Atributos
DadosCliente
Nome
RG
CPF
sistema
Terminal
CaixaEletronico
quantiaDisponivel :.
statusLogin :.
contaLogin :.
FichaCliente
nome :.
rg :.
cpf :.
Banco
cod :.
nome :.
Conta
senha :.
numero :.
saldo :.
status :.
Iterac
ao 2
(interagir
com
ator
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
ario de Dados
Terminal: classe de fronteira atraves da qual sao transmitidos os valores de entrada e sada a serem utilizados
pelo caixa eletr
onico. Esta classe encapsula toda a interface com o usuario, assim, o tipo de terminal a ser implementado por um Sistema de Caixa Automatico pode ser
facilmente modificado atraves da substituicao desta classe.
ControladorCaixa: classe de controle que encapsula as
polticas definidas pela especificacao do sistema e gerencia as interacoes entre as classes de fronteira e entidade.
Os objetos da classe ControladorCaixa possuem operacoes
para efetuar login no sistema, consultar o saldo de uma
conta, efetuar um saque e efetuar um deposito.
Atividade 2: Dicion
ario de Dados (II)
DadosCliente: classe de entidade cujos objetos encapsulam os dados pessoais dos clientes do banco.
Conta: classe de entidade cujos objetos sao as contas
mantidas pelos clientes do banco.
CaixaEletronico: classe de entidade que representa
o estado do caixa automatico.
Banco: classe de entidade que representa o estado do
banco ao qual esta vinculada a conta e os clientes.
Atividade 2: Dicion
ario de Dados (III)
Sistema: o Sistema de Caixa Automatico pode ser
visto como uma classe que representa o sistema e engloba todas as classes pertencentes a este. Esta e uma
classe conceitual e nao pertence ao sistema propriamente dito.
FronteiraCadastroContas: classe de fronteira que
media as interacoes entre o sistema e o ator Cadastro
de Contas do Banco.
FronteiraDispensadorNotas: classe de fronteira que
media as interacoes entre o sistema e o ator Dispensador de Notas.
Atividade 3: Identificar/Refinar os
Relacionamentos Entre as Classes
Adicionar as associacoes com as novas classes do modelo MVC, obedecendo a relacao:
Relacionamento entre classes no MVC
sistema
Fronteira
Ator
Controle
Entidade
Diagrama de Classes de An
alise
(sem operaco
es)
Diagrama de Classes de Anlise
sistema
Terminal
ControladorCaixa
FronteiraDispensadorNotas
FronteiraCadastroContas
CaixaEletronico
quantiaDisponivel :.
statusLogin :.
contaLogin :.
FichaCliente
nome :.
rg :.
cpf :.
Banco
cod :.
nome :.
Conta
senha :.
numero :.
saldo :.
status :.
Modelagem Din
amica
Atividades Gerais do M
etodo
Estado Inicial
Modelar a estrutura
esttica do sistema
Anlise OO
Modelar a estrutura
dinmica do sistema
Projeto OO
Estado Final
Modelagem Din
amica
Identifica e modela os aspectos do sistema de software
que podem mudar durante a sua execucao, devido `a
ocorrencia de eventos.
Foco no comportamento que o sistema deve apresentar.
Usa os diagramas dinamicos da UML (seq
uencia, colaboracao, estados).
Especifica uma versao inicial das interfaces p
ublicas
das classes de analise.
Sub-etapa de Analise OO - Foco no domnio do
problema!
Eventos
Ocorrencias dignas de nota relativas ao sistema e envolvendo algum tipo de troca de informacao.
O evento nao e a informacao trocada e sim o fato de
alguma informacao ter sido trocada.
O tipo de evento mais comum encontrado durante a
analise e a interacao entre um ator e o sistema.
Outros tipos tambem sao possveis.
Modelamos o comportamento do sistema atraves de
eventos e das acoes executadas em resposta a eles.
T
ecnica de An
alise Textual
Substantivos
Objetos/Classes
Atributos
Enunciado do Problema
OU
Especificao dos Casos de Uso
Verbos
Associaes
Operaes
[seno]
[desejase iterar
para refinar]
Estado Final
Efetuar Login
Consultar Saldo
Cadastro de Contas do Banco
Cliente
Efetuar Saque
Dispensador de Notas
Efetuar Depsito
Fluxo B
asico :
1. O cliente escolhe no menu principal do terminal a opcao
Efetuar Saque.
2. O sistema verifica se o login foi efetuado.
3. O sistema verifica se a conta esta ativa, atraves 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 e suficiente para
realizar a transacao
e,
em
caso
afirmativo,
se ha dinheiro em quantidade suficiente no caixa.
7. O sistema subtrai o valor solicitado do saldo da conta do cliente
e do valor disponvel no caixa e libera a quantia solicitada,
atraves do dispensador de notas.
Fluxo
Basico,
cliente
pode
Fluxo
Basico,
cliente
Diagrama de Classes de An
alise
(sem operaco
es)
Diagrama de Classes de Anlise
sistema
Terminal
ControladorCaixa
FronteiraDispensadorNotas
FronteiraCadastroContas
CaixaEletronico
quantiaDisponivel :.
statusLogin :.
contaLogin :.
FichaCliente
nome :.
rg :.
cpf :.
Banco
cod :.
nome :.
Conta
senha :.
numero :.
saldo :.
status :.
Diagrama de Seq
u
encia - Caso de Uso
Consultar Saldo
Diagrama de Seqncia "Consultar Saldo"
:Cliente
:Terminal
:ControladorCaixa
:CaixaEletronico
1) .consultarSaldo
2) .consultarSaldo
.numConta = obterNumConta
.c = obterConta[numConta]
.obterStatus
.obterSaldo
3)
4)
:FronteiraCadastroContas
c:Conta
Diagrama de Seq
u
encia - Caso de Uso
Efetuar Saque
Diagrama de Seqncia "Efetuar Saque"
:Cliente
:Terminal
:CtlCaixa
:CaixaEletronico
1) .efetuarSaque[quant]
2) .efetuarSaque[quant]
.numConta = obterNumConta
.c = obterConta[numConta]
.obterStatus
.obterSaldo
.obterValorCaixa
.debitarValor[quant]
.debitarValor[quant]
.liberaDinheiro[quant]
3)
4)
:FrtCadastroContas
c:Conta
:FrtDispensadorDeNotas
Diagrama de Colaborac
ao (I)
Centraliza a representacao dos eventos dos diagramas
de seq
uencia
Explicita as associacoes entre as classes e facilita a
identificacao das operacoes
Diagrama de Colaborac
ao (II)
Diagrama de Colaborao
:FrtDispensadorNotas
:Terminal
liberarDinheiro(quant)
:FrtCadastroContas
obterConta(numConta)
consiltarSaldo() :
efetuarSaque(quant) :
:CaixaEletronico
:CtlCaixa
obterNumConta() :
obterValorCaixa() :
debitarValor(quant) :
c:Conta
obterStatus() :
obterSaldo() :
debitarValor(quant)
Identificac
ao das Operaco
es
Cada evento recebido pode ser
Uma operacao que a classe deve oferecer
O retorno de uma operacao executada
sistema
<< boundary >>
Terminal
+ efetuarLogin ():.
+ consultarSaldo ():.
+ efetuarSaque ():.
+ solicitarDeposito ():.
cod :.
nome :.