Datachk
Projeto I
Aline D'Oleron
Angelo Brito
Rebeca Alves
Rodolfo Ferraz
Tiago Nascimento
Recife, 19 de Fevereiro de 2012
IF718 - Análise e Projeto de Sistemas 2012.2 - CIn/UFPE
Contexto
•
•
Projeto CI – Computadores para Inclusão
o Recondiciona equipamentos de informática
o Distribuição para iniciativas de inclusão digital no Brasil
o Oficinas com o foco no recondicionamento de computadores
o CRCs – Centros de Recondicionamento de Computadores
Objetivos:
o Formar jovens de baixa renda para inserção no mercado de trabalho
o Promover a inclusão digital
o Estimular a disseminação de políticas de descarte planejado e
ecologicamente sustentável de equipamentos de informática
o Implantar modelo de funcionamento em rede dos CRCs
Contexto
Diagrama de Casos de uso
Análise de Caso de Uso
"Cadastrar peças no estoque"
Este caso de uso é responsável por cadastrar as peças recebidas como
doação no estoque.
Pré-condição: Usuário encontra-se logado no sistema.
Pós-condição: As peças encontram-se cadastradas no sistema e estão com o
status “disponível”.
Fluxo de eventos principal:
Usuário insere os dados num formulário de cadastro contendo os campos para
os dados da peça (Ex: Nome da peça, modelo, código, etc) e sistema
valida os dados informados. Em seguida, os dados da peça são
cadastrados no sistema e passam a ter o status “disponível”. É enviada
uma mensagem ao Servidor Central (remoto), contendo os dados das
peças cadastradas.
Fluxos secundários:
Não se aplica.
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 1: Encontrar classes de análise
•
•
•
Classes de Fronteira
o TelaCadastroPeça
o ComunicaçãoServidorCentral
Classes de Entidade
o Peça
<<boundary>>
TelaCadastroPeça
____________
____________
<<entity>>
Peça
____________
____________
Classes de Controle
o ControlePeças
<<control>>
ControlePeças
____________
____________
<<boundary>>
Comunicação
ServidorCentral
____________
____________
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaCadastroPeça
o ComunicaçãoServidorCentral
Classes de Entidade
o Peça
<<boundary>>
TelaCadastroPeça
____________
____________
<<entity>>
Peça
____________
____________
Classes de Controle
o ControlePeças
<<control>>
ControlePeças
____________
____________
<<boundary>>
Comunicação
ServidorCentral
____________
____________
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaCadastroPeça
o ComunicaçãoServidorCentral
Classes de Entidade
o Peça
Classes de Controle
o ControlePeças
<<entity>>
Peça
____________
____________
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaCadastroPeça
o ComunicaçãoServidorCentral
Classes de Entidade
o Peça
<<entity>>
Peça
____________
____________
Classes de Controle
o ControlePeças
<<entity collection>>
Cadastro
Peças
________________
________________
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Responsabilidades
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<boundary>>
TelaCadastroPeça
____________
____________
cadastrarDados(nom
e, modelo, código)
<<control>>
ControlePeças
____________
____________
cadastrarDados
(nome, modelo,
código, login)
<<entity collection>>
Cadastro
Peças
__________________
__________________
cadastrarDados(nome,
modelo, código, login)
<<boundary>>
Comunicação
ServidorCentral
__________________
__________________
enviarDados(nome,model
o,código,data,nomeCRC)
Análise de Caso de Uso
"Cadastrar peças no estoque"
Passo 5: Descrever atributos e associações
Análise de Caso de Uso
"Solicitar Peças"
Este caso de uso é responsável pela solicitação de peças ao estoque por um usuário da manutenção.
Pré-condição: Usuário do estoque encontra-se autenticado no sistema.
Pós-condição: O pedido das peças deve estar cadastrado no sistema, aguardando ser visualizado pela
pessoa responsável pela entrega das peças.
Fluxo de eventos principal:
1.
O usuário faz a busca do tipo e modelo da peça que ele deseja através de um formulário.
2.
O sistema mostra uma lista de peças com as características requisitadas.
3.
O usuário seleciona a peça, e esta é adicionada em uma lista de pedidos.
4.
Se o usuário quiser pedir mais peças ele deve voltar para o passo2 do [FP].
5.
O usuário seleciona o botão “Finalizar pedido”.
6.
O sistema exibe um resumo do pedido.
7.
O usuário clica no botão “Confirmar”.
8.
O sistema modifica o status da peça para “Peça solicitada”.
9.
O sistema envia uma mensagem “Pedido enviado com sucesso”.
Fluxos secundários:
Não se aplica.
Análise de Caso de Uso
“Solicitar Pecas”
Passo 1: Encontrar classes de análise
•
•
•
Classes de Fronteira
o TelaInicialManutencao
o TelaSolicitarPecas
<<boundary>>
Tela Inicia da
Manutencao
____________
____________
<<boundary>>
Tela Solicitar
Pecas
____________
____________
Classes de Entidade
o SolicitacaoPeca
o Peca
<<entity>>
Solicitacao
Peca
____________
____________
<<entity>>
Peca
____________
____________
Classes de Controle
o ControladorSolicitacao
o ControladorPecas
<<control>>
Controlador
Solicitacao
____________
____________
<<control>>
Controlador
Pecas
____________
____________
Análise de Caso de Uso
“Solicitar Pecas”
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaInicialManutencao
o TelaSolicitarPecas
Classes de Entidade
o Solicitacao
o Peca
Classes de Controle
o Controlador Solicitacao
o ControladorPecas
<<entity>>
Solicitacao
____________
____________
<<entity>>
Peca
____________
____________
Análise de Caso de Uso
“Solicitar Pecas”
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaInicialManutencao
o TelaSolicitarPecas
Classes de Entidade
o Solicitacao
o Peca
Classes de Controle
o Controlador Solicitacao
o ControladorPecas
<<entity>>
Solicitacao
____________
____________
<<entity collection>>
CadastroSolicitacoes
________________
________________
<<entity>>
Peca
____________
____________
<<entity collection>>
CadastroPecas
________________
________________
Análise de Caso de Uso
“Solicitar Pecas”
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Análise de Caso de Uso
“Solicitar Pecas”
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<boundary>>
TelaInicial
Manutencao
____________
____________
Encaminhar()
<<control>>
ControladorPecas
____________
____________
buscarPeçasDisponiveis()
marcarPecaSolicitada()
<<boundary>>
TelaSolicitarPecas
____________
____________
Encaminhar()
exibirListaPecasDisponiveis()
exibirSolicitacao
mostrarAvisoConfirmacao()
<<entity>>
CadastroPecas
____________
____________
buscarPecasDisponiveis()
<<control>>
Controlador
Solicitacoes
____________
____________
salvaSolicitacao()
novaSolicitacao()
<<entity>>
CadastroSolicitacoes
____________
____________
save()
<<entity>>
ListaPecas
____________
____________
Inserir()
<<entity>>
SolicitarPecas
____________
____________
Análise de Caso de Uso
“Solicitar Pecas”
Passo 5: Descrever atributos e associações
Análise de Caso de Uso
"Entregar Peças"
Este caso de uso é responsável pela resposta às solicitações de peças ao estoque.
Pré-condição: Usuário do estoque encontra-se autenticado no sistema.
Pós-condição: O sistema registra que a Solicitação de peças foi atendida e armazena qual funcionário entregou as
peças e qual funcionário está com a posse delas.
Fluxo de eventos principal:
1.
O Sistema procura por solicitações de peças que ainda estejam pendentes.
2.
Exibe ao Controlador a pagina Inicial para Controladores de Estoque com uma notificação de solicitações
pendentes.
3.
O Sistema exibe as informações da solicitação.
4.
O Controlador do Estoque avalia se a solicitação das peças é valida e aceita a solicitação.
5.
O Sistema atualiza a solicitação para aceita.
6.
O Usuário busca as peças solicitadas no estoque e entrega as peças ao Funcionário da Manutenção que criou a
Solicitação.
7.
O Usuário clica no botão “Entregue”.
8.
O Sistema atualiza o estado das Peças para em Manutenção.
9.
O Sistema altera o status da solicitação para completa.
Fluxos secundários:
Não se aplica.
Análise de Caso de Uso
“Entregar Pecas”
Passo 1: Encontrar classes de análise
•
•
•
Classes de Fronteira
o TelaInicialEstoque
o TelaEntregarPecas
<<boundary>>
Tela Inicia do
Estoque
____________
____________
<<boundary>>
Tela Entregar
Pecas
____________
____________
Classes de Entidade
o SolicitacaoPecas
o Peca
<<entity>>
Solicitacao
Pecas
____________
____________
<<entity>>
Peca
____________
____________
Classes de Controle
o ControladorSolicitacao
o ControladorPecas
<<control>>
Controlador
Solicitacao
____________
____________
<<control>>
Controlador
Pecas
____________
____________
Análise de Caso de Uso
“Entregar Pecas”
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaInicialManutencao
o TelaSolicitarPecas
Classes de Entidade
o Solicitacao
o Peca
Classes de Controle
o Controlador Solicitacao
o ControladorPecas
<<entity>>
Solicitacao
____________
____________
<<entity>>
Peca
____________
____________
Análise de Caso de Uso
“Entregar Pecas”
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaInicialManutencao
o TelaSolicitarPecas
Classes de Entidade
o SolicitacaoPecas
o Peca
Classes de Controle
o Controlador Solicitacao
o ControladorPecas
<<entity>>
Solicitacao
Pecas
____________
____________
<<entity collection>>
CadastroSolicitacoes
________________
________________
<<entity>>
Peca
____________
____________
<<entity collection>>
CadastroPecas
________________
________________
Análise de Caso de Uso
“Entregar Pecas”
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Análise de Caso de Uso
“Entregar Pecas”
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<boundary>>
TelaInicial Estoque
____________
____________
Encaminhar()
ExibirAvisoSolicitacaoPendente()
<<boundary>>
TelaEntregarPecas
____________
____________
Encaminhar()
exibirAvisoEntrega()
esperarResposta()
confirmaEntregaSolicitacao()
<<control>>
ControladorPecas
____________
____________
marcarPecasEmManutencao()
varerListaPecas()
<<entity>>
ListaPecas
____________
____________
Inserir()
<<entity>>
CadastroPecas
____________
____________
alterarEstadoPecas()
<<entity>>
Peca
____________
____________
mudarEstado()
Análise de Caso de Uso
“Entregar Pecas”
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<control>>
ControladorSolicitacoes
____________
____________
verificaSolicitacoesPendentes()
aceitarSolicitacao()
salvaEntregaSolicitada()
<<entity>>
CadastroSolicitacoes
____________
____________
getPrimeiraSolicitacaoPendente()
marcarSolicitacaoAceita()
alterarEstadoSolicitacao()
<<entity>>
SolicitacaoPecas
____________
____________
mudarEstado()
Análise de Caso de Uso
“Entregar Pecas”
Passo 5: Descrever atributos e associações
Análise de Caso de Uso
“Cadastrar Computador”
Este caso de uso é responsável pelo cadastro do computador quando sua
montagem estiver finalizada.
Pré-condição: Usuário autenticado no sistema.
Pós-condição: O computador deve estar armazenado no sistema.
Fluxo de eventos principal:
1. Este caso de uso se inicia quando o usuário seleciona a opção “Cadastrar computador” no menu
“Montagem de equipamentos”.
2. O usuário cadastra as informações de todos os componentes do computador (Ex: mouse, teclado,
gabinete, monitor, etc.), buscando cada peça que foi utilizada.
3. O usuário seleciona o botão “Finalizar cadastro”.
4. O sistema insere os dados, modifica o status de cada peça para “Peça recebida” e o status do
computador para “Computador montado”
5. O sistema finaliza com o envio de uma mensagem “Computador cadastrado com sucesso”.
Fluxos secundários:
Caso o usuário não coloque as informações de algum dos componentes e selecione o botão
“Finalizar cadastro”, o sistema envia uma mensagem “Escreva as informações de todos os
componentes para que o cadastro seja finalizado” e em seguida o sistema executa novamente o
passo 2 do [FP].
Análise de Caso de Uso "
“Cadastrar Computador”
Passo 1: Encontrar classes de análise
•
•
•
Classes de Fronteira
o TelaCadastrarPC
Classes de Entidade
o Computador
o Peça
Classes de Controle
o ControleCadastrarPC
<<boundary>>
TelaCadastrarPC
____________
____________
<<entity>>
Computador
____________
____________
<<control>>
Controle
CadastrarPC
____________
____________
<<entity>>
Peça
____________
____________
Análise de Caso de Uso
“Cadastrar Computador”
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaCadastrarPC
Classes de Entidade
o Computador
o Peça
Classes de Controle
o ControleCadastrarPC
<<entity>>
Computador
____________
____________
<<entity>>
Peça
____________
____________
Análise de Caso de Uso
“Cadastrar Computador”
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaCadastrarPC
Classes de Entidade
o Computador
o Peça
Classes de Controle
o ControleCadastrarPC
<<entity>>
Computador
____________
____________
<<entity collection>>
CadastroPCs
________________
________________
<<entity>>
Peça
____________
____________
<<entity collection>>
CadastroPeças
________________
________________
Análise de Caso de Uso
“Cadastrar Computador"
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Análise de Caso de Uso
“Cadastrar Computador"
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<boundary>>
TelaCadastrarPC
____________
____________
CadastrarPC()
SelecionarPeças()
<<control>>
Controle
CadastrarPC
____________
____________
CadastrarPC()
SelecionarPeças()
<<entity>>
CadastroPCs
____________
____________
CadastrarPC()
<<entity>>
CadastroPeças
____________
____________
BuscarPeça()
MarcarPeças()
Análise de Caso de Uso
“Cadastrar Computador"
Passo 5: Descrever atributos e associações
Análise de Caso de Uso
"Finalizar Computador"
Este caso de uso é responsável por modificar o status de um computador em fase de
montagem/testes para o status "Finalizado".
Pré-condição: Usuário encontra-se logado no sistema.
Pós-condição: Status do computador trocado para "Finalizado", suas peças passam a
ter status "Indisponível" e Servidor Central recebe uma mensagem com os dados do
novo computador finalizado.
Fluxo de eventos principal:
Usuário acessa o registro de um computador, através da busca pelo código de
identificação. Após encontrar o computador, caso esteja em fase de
montagem/testes, exibirá a opção "Finalizar Computador". Ao selecionar esta opção,
o computador passa a ter o status "Finalizado" e suas peças trocam de status para
"Indisponível" (não podem mais ser trocadas por peças do estoque). Além disso, é
enviada uma mensagem ao Servidor Central (remoto), contendo os dados do novo
computador finalizado.
Fluxos secundários:
Não se aplica.
Análise de Caso de Uso
"Finalizar Computador"
Passo 1: Encontrar classes de análise
•
•
•
Classes de Fronteira
o TelaMostrarPC
o ComunicaçãoServidorCentral
<<boundary>>
TelaMostrarPC
____________
____________
Classes de Entidade
o Usuário (apenas interage)
o Computador
o Peça
<<entity>>
Computador
____________
____________
Classes de Controle
o ControleFinalizaçãoPC
<<control>>
Controle
FinalizaçãoPC
____________
____________
<<boundary>>
Comunicação
ServidorCentral
____________
____________
<<entity>>
Peça
____________
____________
Análise de Caso de Uso
"Finalizar Computador"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaMostrarPC
o ComunicaçãoServidorCentral
Classes de Entidade
o Computador
o Peça
Classes de Controle
o ControleFinalizaçãoPC
<<entity>>
Computador
____________
____________
<<entity>>
Peça
____________
____________
Análise de Caso de Uso
"Finalizar Computador"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaMostrarPC
o ComunicaçãoServidorCentral
Classes de Entidade
o Computador
o Peça
<<entity>>
Computador
____________
____________
<<entity>>
Peça
____________
____________
Classes de Controle
o ControleFinalizaçãoPC
<<entity collection>>
Cadastro
Computadores
________________
________________
<<entity collection>>
Cadastro
Peças
________________
________________
Análise de Caso de Uso
"Finalizar Computador"
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Análise de Caso de Uso
"Finalizar Computador"
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<boundary>>
TelaMostrarPC
______________
______________
finalizarPC (idPC)
<<entity collection>>
Cadastro
Peças
__________________
__________________
finalizar (idPeça)
<<control>>
Controle
FinalizaçãoPC
____________
____________
finalizarPC (idPC)
<<entity collection>>
Cadastro
Computadores
__________________
__________________
finalizar(idPC)
getPC (idPC)
<<entity>>
Computador
__________________
__________________
finalizar ()
<<boundary>>
Comunicação
ServidorCentral
__________________
__________________
enviarPCFinalizado (pc)
Análise de Caso de Uso
"Finalizar Computador"
Passo 5: Descrever atributos e associações
Análise de Caso de Uso
"Gerar relatório"
Este caso de uso é responsável por gerar relatórios para enviá-los para o órgão
central.
Pré-condição: Usuário encontra-se logado no sistema.
Pós-condição: Relatório deve estar gerado e pronto para ser enviado ou impresso.
Fluxo de eventos principal:
1. O usuário informa as opções relativas ao relatório:
- tipo de relatório (doações recebidas, computadores recondicionados, estoque
de peças, ou completo, com todas as informações citadas anteriormente).
- intervalo de tempo (dia, mês, ano), caso o tipo do relatório não seja peças em
estoque.
2. O sistema busca as informações requisitadas pelo usuário.
3. O sistema envia o relatório gerado ao Servidor Central (remoto), podendo o
mesmo também ser impresso.
Fluxos secundários:
Não se aplica.
Análise de Caso de Uso
"Gerar relatório"
Passo 1: Encontrar classes de análise
•
•
•
<<boundary>>
TelaGerarRelatorio
_______________
_______________
Classes de Fronteira
o TelaGerarRelatorio
o ComunicacaoServidorCentral
Classes de Entidade
o Peça
o Computador
o Doações
Classes de Controle
o ControleRelatorio
<<entity>>
Peça
____________
____________
<<entity>>
Computador
____________
____________
<<control>>
ControleRelatorio
_____________
_____________
<<boundary>>
Comunicacao
ServidorCentral
____________
____________
<<entity>>
Doações
____________
____________
Análise de Caso de Uso
"Gerar relatório"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaGerarRelatorio
o ComunicacaoServidorCentral
Classes de Entidade
o Peça
o Computador
o Doações
Classes de Controle
o ControleRelatorio
<<entity>>
Peça
____________
____________
<<entity>>
Computador
____________
____________
<<entity>>
Doações
____________
____________
Análise de Caso de Uso
"Gerar relatório"
Passo 2: Identificar persistência
•
•
•
Classes de Fronteira
o TelaGerarRelatorio
o ComunicacaoServidorCentral
Classes de Entidade
o Peça
o Computador
o Doações
Classes de Controle
o ControleRelatorio
<<entity>>
Peça
____________
____________
<<entity collection>>
Cadastro
Peças
________________
________________
<<entity>>
Computador
____________
____________
<<entity>>
Doações
____________
____________
<<entity collection>>
Cadastro
Computadores
________________
________________
<<entity collection>>
Cadastro
Doações
________________
________________
Análise de Caso de Uso
"Gerar relatório"
Passo 3: Distribuir comportamento entre as classes
•
Diagrama de sequência
Análise de Caso de Uso
"Gerar relatório"
Passo 4: Descrever responsabilidades
•
Classes com responsabilidades
<<boundary>>
Comunicacao
ServidorCentral
<<boundary>>
TelaGerarRelatorio
gerarRelatorio(tipo, dataInicio, dataFim)
enviarRelatorio()
<<control>>
controleRelatorio
gerarRelatorio(tipo, dataInicio, dataFim)
<<entity collection>>
CadastroPeças
<<entity collection>>
CadastroComputadores
buscarPecas(status)
buscarComputadores(dataInicio, dataFim, status)
<<entity collection>>
CadastroDoações
buscarDoacoes(dataInicio, dataFim)
Análise de Caso de Uso
"Gerar relatório"
Passo 5: Descrever atributos e associações
Mapeamento das classes de
análise em elementos de projeto
Classes de Análise
Elementos de projeto
FabricaRepositorio, FabricaRepositorioBDR,
CadastroPeças
CadastroPeças, IRepositorioPeças,
RepositorioPeçasBDR
CadastroDoações
CadastroDoações, IRepositorioDoações,
RepositorioDoaçõesBDR
CadastroComputador
CadastroComputador,
IRepositorioComputador,
RepositorioComputadorBDR
CadastroSolicitações
CadastroSolicitações, IRepositorioSolicitações,
RepositorioSolicitaçõesBDR
ComunicaçãoServidorCentral
ISubsistemaCentralGoverno,
FachadaCentralGoverno
Diagrama de classes da
arquitetura
Organização em pacotes
Diagrama de classes com
padrões de projeto
Diagrama de classes com
padrões de projeto
Dúvidas
Download

Apresentação - Centro de Informática da UFPE