projeto de engenharia de software sistema de gerenciamento de restaurante

36
Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Upload: internet

Post on 18-Apr-2015

118 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Projeto de Engenharia de Software

Sistema de gerenciamento de restaurante

Page 2: 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

Page 3: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 4: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

• 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

Page 5: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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

Page 6: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Planejamento do Projeto

– Cronograma:

Page 7: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Requisitos

• Elicitação de requisitos:– Entrevistas– Brainstorming– Análise de concorrentes– Pesquisas sobre o mercado

Page 8: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Requisitos

• Requisitos não-funcionais:

Identificação DescriçãoRNF/PROC-01 O sistema deverá ser implementado em Python 2.6 e Flex 3 utilizando o

SGBD MySQL Server 5.0.RNF/PROC-02 O sistema deverá rodar em Windows e Linux.RNF/PROC-03 Deverá ser utilizada ferramenta CASE e a modelagem deverá ser feita em

UML.

Requisitos de Processo

Requisitos de Produto - SegurançaIdentificação Descrição

RNF/SEG-01 É necessário autenticar o usuário por meio de login e senha.RNF/SEG-02 Os atores terão acesso apenas a um conjunto mínimo de funcionalidades,

que compreendem as funções operacionais básicas.RNF/SEG-03 O gerente tem acesso a todas as funcionalidades.RNF/SEG-04 O acesso a funções com esse requisito não funcional só poderá ser feito

pelo gerente, identificado através de login e senha.RNF/SEG-05 O acesso a funções relacionadas a insumo, produto e categoria, com

exceção da função de consulta, deve ser de uso exclusivo do gerente e do almoxarife.

RNF/SEG-06 O acesso a funções relacionadas a pagamento, deve ser de uso exclusivo do caixa e do gerente.

Page 9: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Requisitos

• Requisitos funcionais:Código Nome Prioridade

RF-01 Efetuar Login Essencial

RF-02 Cadastrar Cliente Essencial

RF-03 Alterar Cliente Essencial

RF-04 Remover Cliente Essencial

RF-05 Consultar Cliente Essencial

RF-06 Cadastrar Pedido Delivery Essencial

RF-07 Alterar Pedido Delivery Essencial

RF-08 Cancelar Pedido Delivery Essencial

RF-09 Consultar Pedido Delivery Essencial

RF-10 Despachar Pedido Delivery Essencial

RF-11 Entregar Pedido Delivery Essencial

RF-12 Cadastrar Pedido Mesa/Cartão Essencial

RF-13 Alterar Pedido Mesa/Cartão Essencial

RF-14 Cancelar Pedido Mesa/Cartão Essencial

RF-15 Consultar Pedido Mesa/Cartão Essencial

RF-16 Informar Finalização do Pedido Essencial

RF-17 Abrir Mesa/Cartão Essencial

RF-18 Trocar Mesa/Cartão Essencial

RF-19 Juntar Mesa/Cartão Essencial

RF-20 Fechar Mesa/Cartão Essencial

RF-21 Efetuar Pagamento Essencial

RF-22 Cadastrar Produto Essencial

RF-23 Alterar Produto Essencial

RF-24 Remover Produto Essencial

RF-25 Consultar Produto Essencial

RF-26 Cadastrar Insumo Essencial

RF-27 Alterar Insumo Essencial

RF-28 Remover Insumo Essencial

RF-29 Consultar Insumo Essencial

RF-30 Entrada Insumo Essencial

RF-31 Saída Insumo Essencial

RF-32 Cadastrar Categoria Essencial

RF-33 Remover Categoria Essencial

RF-34 Cadastrar Funcionário Essencial

RF-35 Alterar Funcionário Essencial

RF-36 Remover Funcionário Essencial

RF-37 Consultar Funcionário Essencial

RF-38 Informação do plantel dos funcionários Essencial

RF-39 Calcular comissão Essencial

RF-40 Gerar relatórios de funcionários Essencial

RF-41 Gerar relatórios de estoque Importante

RF-42 Gerar relatórios finaceiros Essencial

RF-43 Gerar relatórios extras Desejável

Page 10: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Visão Geral Dos Requisitos

Diagrama de Casos de Uso

Page 11: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

• 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 – Pré e pós condições

Page 12: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 13: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

– 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 - Fluxos

Page 14: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

– Diagrama de Seqüência:

Casos de Usos - Análise

Page 15: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

– Diagrama de Classe:

Casos de Usos - Análise

Page 16: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 17: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 18: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

– Diagrama de Seqüência:

Casos de Usos - Análise

Page 19: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

– Diagrama de Classe:

Casos de Usos - Análise

Page 20: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Arquitetura do Sistema - Camadas

GUI

Controle

Dados

Repositório

Page 21: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Arquitetura do Sistema - Camadas

Django

puremvc

MTV• Model• Template• View

MVC• Model• View• Controller

Page 22: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Arquitetura do Sistema - Camadas

Template

View

Model & ORM

Database

Django

Page 23: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Arquitetura do Sistema - Camadas

puremvc

Page 24: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Classes Implementadas• Python:– Models:

• Produto

– Views:• ProdutoAdmin• ProdutoService

– Templates:• change_form.html• change_list.html• change_list_results.html• ...

Page 25: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Classes Implementadas• Flex:

– Models:• ProdutoVO• ProdutoProxy

– Controller:• ProdutoReloadCommand• ProdutoSaveCommand• ProdutoDeleteCommand

– Views:• ProdutoTabMediator• ListarProdutosTabMediator• Components:

– ProdutoTab.mxml– ListarProdutosTab.mxml

Page 26: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Ferramentas• Python• Django• Pyunit• PyAMF• Flex• Flex Builder 3• PureMVC• Office 2007• Jude• Notepad++• Aptana• Microsoft Project• Git

Page 27: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Testes

• Teste de Unidade• Teste Integração• Teste de Sistema• Teste de Aceitação

Page 28: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 29: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Testes

• Teste de Unidade - Exemplo

Page 30: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 31: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 32: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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.

Page 33: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

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

Page 34: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Resultados

• Versão Flex / Janela Mesa/Cartão:

Page 35: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Resultados

• Versão Html / Janela Entradas de Insumo:

Page 36: Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

Perguntas?

• Alguma duvida?