360 likes | 455 Views
Projeto de Engenharia de Software. Sistema de gerenciamento de restaurante. Conteúdo. Motivação Planejamento do Projeto Requisitos Casos de Uso Arquitetura Classe Implementada Testes Resultados. Motivação. O BrightChef buscar trazer uma solução para administração de restaurantes:
E N D
Projeto de Engenharia de Software Sistema de gerenciamento de restaurante
Conteúdo • Motivação • Planejamento do Projeto • Requisitos • Casos de Uso • Arquitetura • Classe Implementada • Testes • Resultados
Motivação • O BrightChef buscar trazer uma solução para administração de restaurantes: • Automatizando Entrada e Saída de insumos, controle de Estoque. • Gerenciando pedidos, módulo de Delivery. • Facilitando a análise de faturamento e controle de cadastros com geração de Relatórios. • Organizando os pedidos de mesa/cartão, gerando o cálculo da conta e pagamento.
Planejamento do Projeto • O ciclo do projeto se baseou no RUP, tendo as seguintes fases: • Concepção: ênfase no escopo do sistema; • Elaboração: ênfase na arquitetura; • Construção: ênfase no desenvolvimento; • Transição: ênfase na implantação.
Planejamento do Projeto • Na etapa de concepção foi definido a organização do projeto. • Funções: • Gerente – Henrique Menezes • Arquiteto de Software – Tiago Sales • Analista de Sistema – Dayvid Rodrigues • Analista de Sistema – Danilo Queiroz • Analista de Sistema – Paulo Ferreira
Planejamento do Projeto • Cronograma:
Requisitos • Elicitação de requisitos: • Entrevistas • Brainstorming • Análise de concorrentes • Pesquisas sobre o mercado
Requisitos • Requisitos não-funcionais: Requisitos de Processo Requisitos de Produto - Segurança
Requisitos • Requisitos funcionais:
Visão Geral Dos Requisitos Diagrama de Casos de Uso
Casos de Usos – Pré e pós condições • Cadastrar Funcionário • Pré-condição: O gerente deve ter efetuado login no sistema. • Pós-condições: O funcionário cadastrado no sistema.
Casos de Usos - Fluxos • Cadastrar Funcionário • Fluxo Primário: • Inicialmente, o gerente deve entra na janela de cadastro de funcionário. • O gerente informar os dados do funcionário necessários para a realização do cadastro como nome, endereço, Cpf, cargo do novo funcionário e etc. • O sistema verifica se o funcionário já existe. • O sistema armazena os dados do cliente no repositório e informa que o cadastro foi realizado com sucesso.
Casos de Usos - Fluxos • Fluxo secundário: • No fluxo primário 3, se o funcionário já existir significa dizer que o funcionário já está cadastrado, o sistema exibe uma mensagem informando a ocorrência.
Casos de Usos - Análise • Diagrama de Seqüência:
Casos de Usos - Análise • Diagrama de Classe:
Casos de Usos – Pré e pós condições • Gerar Relatório Funcionário • Pré-condição: O usuário deve ter efetuado login no sistema. • Pós-condições: O relatório de funcionários deve ser retornado.
Casos de Usos - Fluxos • Gerar Relatório Funcionário • Fluxo Primário: • O usuário deve entrar na janela de relatórios. • Seleciona o relatório de Funcionários. • O sistema gera o relatório e retorna ao cliente.
Casos de Usos - Análise • Diagrama de Seqüência:
Casos de Usos - Análise • Diagrama de Classe:
Arquitetura do Sistema - Camadas GUI • Controle • Dados • Repositório
Arquitetura do Sistema - Camadas • MTV • Model • Template • View Django • MVC • Model • View • Controller puremvc
Arquitetura do Sistema - Camadas Template Django • View • Model & ORM • Database
Arquitetura do Sistema - Camadas puremvc
Classes Implementadas • Python: • Models: • Produto • Views: • ProdutoAdmin • ProdutoService • Templates: • change_form.html • change_list.html • change_list_results.html • ...
Classes Implementadas • Flex: • Models: • ProdutoVO • ProdutoProxy • Controller: • ProdutoReloadCommand • ProdutoSaveCommand • ProdutoDeleteCommand • Views: • ProdutoTabMediator • ListarProdutosTabMediator • Components: • ProdutoTab.mxml • ListarProdutosTab.mxml
Ferramentas • Python • Django • Pyunit • PyAMF • Flex • FlexBuilder 3 • PureMVC • Office 2007 • Jude • Notepad++ • Aptana • Microsoft Project • Git
Testes • Teste de Unidade • Teste Integração • Teste de Sistema • Teste de Aceitação
Testes • Teste de Unidade • Testar corretude de componentes individualmente: • Classes • Métodos • Foi utilizado um framework de testes PyUnit, em específico o módulo unittest.
Testes • Teste de Unidade - Exemplo
Testes • Teste de Integração • Foi realizada a medida que novos componentes eram agrupados ao sistema. • Com ele foi possível encontrar erro nas interfaces de comunicação entre os componentes. • Exemplo: • Codificação, decodificação e comunicação dos dados entre AMF e Python.
Testes • Teste de Sistema • Após a integração completa do sistema iniciamos esse tipo de teste, onde não nos limitamos somente a requisitos funcionais mas testamos também requisitos não-funcionais. • Exemplo: • Testamos nos browsers: Internet Explorer, Mozilla Firefox e Google Chrome.
Testes • Teste de Aceitação • Foram feitos testes de caixa-preta com usuários finais e a partir daí foi notificado todos os erros acontecidos e posteriormente corrigidos. • Exemplo: • Foi notificado no módulo estoque um problema em saída de insumo, onde a quantidade do insumo estava decrementando quando um valor superior ao do estoque atual e resultava em uma quantidade negativa no estoque do insumo.
Resultados • Artefatos produzidos nesse projeto: • Plano de Projeto • Documento de Requisitos • Plano de Testes • Projeto de Testes • Documento de Análise e Projeto • Site de acompanhamento • Aplicação
Resultados • Versão Flex / Janela Mesa/Cartão:
Resultados • Versão Html / Janela Entradas de Insumo:
Perguntas? • Alguma duvida?