550 likes | 621 Views
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 Recondiciona equipamentos de informática
E N D
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 • Recondiciona equipamentos de informática • Distribuição para iniciativas de inclusão digital no Brasil • Oficinas com o foco no recondicionamento de computadores • CRCs – Centros de Recondicionamento de Computadores • Objetivos: • Formar jovens de baixa renda para inserção no mercado de trabalho • Promover a inclusão digital • Estimular a disseminação de políticas de descarte planejado e ecologicamente sustentável de equipamentos de informática • Implantar modelo de funcionamento em rede dos CRCs
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 • TelaCadastroPeça • ComunicaçãoServidorCentral • Classes de Entidade • Peça • Classes de Controle • ControlePeças <<boundary>> Comunicação ServidorCentral ____________ ____________ <<boundary>> • TelaCadastroPeça ____________ ____________ <<entity>> Peça ____________ ____________ <<control>> ControlePeças ____________ ____________
Análise de Caso de Uso "Cadastrar peças no estoque" Passo 2: Identificar persistência • Classes de Fronteira • TelaCadastroPeça • ComunicaçãoServidorCentral • Classes de Entidade • Peça • Classes de Controle • ControlePeças <<boundary>> Comunicação ServidorCentral ____________ ____________ <<boundary>> • TelaCadastroPeça ____________ ____________ <<entity>> Peça ____________ ____________ <<control>> ControlePeças ____________ ____________
Análise de Caso de Uso "Cadastrar peças no estoque" Passo 2: Identificar persistência • Classes de Fronteira • TelaCadastroPeça • ComunicaçãoServidorCentral • Classes de Entidade • Peça • Classes de Controle • ControlePeças <<entity>> Peça ____________ ____________
Análise de Caso de Uso "Cadastrar peças no estoque" Passo 2: Identificar persistência • Classes de Fronteira • TelaCadastroPeça • ComunicaçãoServidorCentral • Classes de Entidade • Peça • Classes de Controle • ControlePeças <<entity>> Peça ____________ ____________ <<entitycollection>> 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 <<control>> • ControlePeças ____________ ____________ • cadastrarDados(nome, modelo, código, login) <<entitycollection>> Cadastro Peças __________________ __________________ • cadastrarDados(nome, modelo, código, login) <<boundary>> • TelaCadastroPeça ____________ ____________ • cadastrarDados(nome, modelo, código) <<boundary>> Comunicação ServidorCentral __________________ __________________ • enviarDados(nome,modelo,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: • O usuário faz a busca do tipo e modelo da peça que ele deseja através de um formulário. • O sistema mostra uma lista de peças com as características requisitadas. • O usuário seleciona a peça, e esta é adicionada em uma lista de pedidos. • Se o usuário quiser pedir mais peças ele deve voltar para o passo2 do [FP]. • O usuário seleciona o botão “Finalizar pedido”. • O sistema exibe um resumo do pedido. • O usuário clica no botão “Confirmar”. • O sistema modifica o status da peça para “Peça solicitada”. • 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 • TelaInicialManutencao • TelaSolicitarPecas • Classes de Entidade • SolicitacaoPeca • Peca • Classes de Controle • ControladorSolicitacao • ControladorPecas <<boundary>> Tela Inicia da Manutencao ____________ ____________ <<boundary>> Tela Solicitar Pecas ____________ ____________ <<entity>> Solicitacao Peca ____________ ____________ <<entity>> Peca ____________ ____________ <<control>> Controlador Pecas ____________ ____________ <<control>> Controlador Solicitacao ____________ ____________
Análise de Caso de Uso “Solicitar Pecas” Passo 2: Identificar persistência • Classes de Fronteira • TelaInicialManutencao • TelaSolicitarPecas • Classes de Entidade • Solicitacao • Peca • Classes de Controle • Controlador Solicitacao • ControladorPecas <<entity>> Solicitacao ____________ ____________ <<entity>> Peca ____________ ____________
Análise de Caso de Uso “Solicitar Pecas” Passo 2: Identificar persistência • Classes de Fronteira • TelaInicialManutencao • TelaSolicitarPecas • Classes de Entidade • Solicitacao • Peca • Classes de Controle • Controlador Solicitacao • ControladorPecas <<entity>> Solicitacao ____________ ____________ <<entity>> Peca ____________ ____________ <<entity collection>> CadastroSolicitacoes ________________ ________________ <<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() <<entity>> CadastroPecas ____________ ____________ buscarPecasDisponiveis() <<entity>> ListaPecas ____________ ____________ Inserir() <<control>> Controlador Solicitacoes ____________ ____________ salvaSolicitacao() novaSolicitacao() <<boundary>> TelaSolicitarPecas ____________ ____________ Encaminhar() exibirListaPecasDisponiveis() exibirSolicitacao mostrarAvisoConfirmacao() <<entity>> CadastroSolicitacoes ____________ ____________ save() <<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: • O Sistema procura por solicitações de peças que ainda estejam pendentes. • Exibe ao Controlador a pagina Inicial para Controladores de Estoque com uma notificação de solicitações pendentes. • O Sistema exibe as informações da solicitação. • O Controlador do Estoque avalia se a solicitação das peças é valida e aceita a solicitação. • O Sistema atualiza a solicitação para aceita. • 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. • O Usuário clica no botão “Entregue”. • O Sistema atualiza o estado das Peças para em Manutenção. • 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 • TelaInicialEstoque • TelaEntregarPecas • Classes de Entidade • SolicitacaoPecas • Peca • Classes de Controle • ControladorSolicitacao • ControladorPecas <<boundary>> Tela Inicia do Estoque ____________ ____________ <<boundary>> Tela Entregar Pecas ____________ ____________ <<entity>> Solicitacao Pecas ____________ ____________ <<entity>> Peca ____________ ____________ <<control>> Controlador Pecas ____________ ____________ <<control>> Controlador Solicitacao ____________ ____________
Análise de Caso de Uso “Entregar Pecas” Passo 2: Identificar persistência • Classes de Fronteira • TelaInicialManutencao • TelaSolicitarPecas • Classes de Entidade • Solicitacao • Peca • Classes de Controle • Controlador Solicitacao • ControladorPecas <<entity>> Solicitacao ____________ ____________ <<entity>> Peca ____________ ____________
Análise de Caso de Uso “Entregar Pecas” Passo 2: Identificar persistência • Classes de Fronteira • TelaInicialManutencao • TelaSolicitarPecas • Classes de Entidade • SolicitacaoPecas • Peca • Classes de Controle • Controlador Solicitacao • ControladorPecas <<entity>> Solicitacao Pecas ____________ ____________ <<entity>> Peca ____________ ____________ <<entity collection>> CadastroSolicitacoes ________________ ________________ <<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() <<control>> ControladorPecas ____________ ____________ marcarPecasEmManutencao() varerListaPecas() <<entity>> CadastroPecas ____________ ____________ alterarEstadoPecas() <<boundary>> TelaEntregarPecas ____________ ____________ Encaminhar() exibirAvisoEntrega() esperarResposta() confirmaEntregaSolicitacao() <<entity>> ListaPecas ____________ ____________ Inserir() <<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 • TelaCadastrarPC • Classes de Entidade • Computador • Peça • Classes de Controle • ControleCadastrarPC <<boundary>> TelaCadastrarPC ____________ ____________ <<entity>> Computador ____________ ____________ <<entity>> Peça ____________ ____________ <<control>> Controle CadastrarPC ____________ ____________
Análise de Caso de Uso “Cadastrar Computador” Passo 2: Identificar persistência • Classes de Fronteira • TelaCadastrarPC • Classes de Entidade • Computador • Peça • Classes de Controle • ControleCadastrarPC <<entity>> Computador ____________ ____________ <<entity>> Peça ____________ ____________
Análise de Caso de Uso “Cadastrar Computador” Passo 2: Identificar persistência • Classes de Fronteira • TelaCadastrarPC • Classes de Entidade • Computador • Peça • Classes de Controle • ControleCadastrarPC <<entity>> Computador ____________ ____________ <<entity>> Peça ____________ ____________ <<entity collection>> CadastroPCs ________________ ________________ <<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 • TelaMostrarPC • ComunicaçãoServidorCentral • Classes de Entidade • Usuário(apenas interage) • Computador • Peça • Classes de Controle • ControleFinalizaçãoPC <<boundary>> TelaMostrarPC ____________ ____________ <<boundary>> Comunicação ServidorCentral ____________ ____________ <<entity>> Computador ____________ ____________ <<entity>> Peça ____________ ____________ <<control>> Controle FinalizaçãoPC ____________ ____________
Análise de Caso de Uso "Finalizar Computador" Passo 2: Identificar persistência • Classes de Fronteira • TelaMostrarPC • ComunicaçãoServidorCentral • Classes de Entidade • Computador • Peça • Classes de Controle • ControleFinalizaçãoPC <<entity>> Computador ____________ ____________ <<entity>> Peça ____________ ____________
Análise de Caso de Uso "Finalizar Computador" Passo 2: Identificar persistência • Classes de Fronteira • TelaMostrarPC • ComunicaçãoServidorCentral • Classes de Entidade • Computador • Peça • Classes de Controle • ControleFinalizaçãoPC <<entity>> Computador ____________ ____________ <<entity>> Peça ____________ ____________ <<entitycollection>> Cadastro Computadores ________________ ________________ <<entitycollection>> 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 <<entitycollection>> Cadastro Computadores __________________ __________________ finalizar(idPC) getPC (idPC) <<boundary>> Comunicação ServidorCentral __________________ __________________ enviarPCFinalizado (pc) <<boundary>> TelaMostrarPC ______________ ______________ finalizarPC (idPC) <<control>> Controle FinalizaçãoPC ____________ ____________ finalizarPC (idPC) <<entitycollection>> Cadastro Peças __________________ __________________ finalizar (idPeça) <<entity>> Computador __________________ __________________ finalizar ()
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: • 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. • O sistema busca as informações requisitadas pelo usuário. • 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 • Classes de Fronteira • TelaGerarRelatorio • ComunicacaoServidorCentral • Classes de Entidade • Peça • Computador • Doações • Classes de Controle • ControleRelatorio <<boundary>> TelaGerarRelatorio _______________ _______________ <<boundary>> Comunicacao ServidorCentral ____________ ____________ <<entity>> Peça ____________ ____________ <<entity>> Computador ____________ ____________ <<entity>> Doações ____________ ____________ <<control>> ControleRelatorio _____________ _____________
Análise de Caso de Uso "Gerar relatório" Passo 2: Identificar persistência • Classes de Fronteira • TelaGerarRelatorio • ComunicacaoServidorCentral • Classes de Entidade • Peça • Computador • Doações • Classes de Controle • 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 • TelaGerarRelatorio • ComunicacaoServidorCentral • Classes de Entidade • Peça • Computador • Doações • Classes de Controle • ControleRelatorio <<entity>> Peça ____________ ____________ <<entity>> Computador ____________ ____________ <<entity>> Doações ____________ ____________ <<entitycollection>> Cadastro Peças ________________ ________________ <<entitycollection>> Cadastro Computadores ________________ ________________ <<entitycollection>> 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 <<control>> controleRelatorio • gerarRelatorio(tipo, dataInicio, dataFim) • gerarRelatorio(tipo, dataInicio, dataFim) • enviarRelatorio() <<entitycollection>> CadastroPeças <<entitycollection>> CadastroComputadores <<entitycollection>> CadastroDoações • buscarPecas(status) • buscarComputadores(dataInicio, dataFim, status) • buscarDoacoes(dataInicio, dataFim)
Análise de Caso de Uso "Gerar relatório" Passo 5: Descrever atributos e associações