Projeto de Engenharia de Software

36
Projeto de Engenharia de Software Sistema de gerenciamento de restaurante

description

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: - PowerPoint PPT Presentation

Transcript of Projeto de Engenharia de Software

Page 1: Projeto de Engenharia de Software

Projeto de Engenharia de Software

Sistema de gerenciamento de restaurante

Page 2: Projeto de Engenharia de Software

Conteúdo

• Motivação• Planejamento do Projeto• Requisitos– Casos de Uso

• Arquitetura– Classe Implementada

• Testes• Resultados

Page 3: Projeto de Engenharia de Software

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

• 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

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

Planejamento do Projeto

– Cronograma:

Page 7: Projeto de Engenharia de Software

Requisitos

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

Page 8: Projeto de Engenharia de Software

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

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

Visão Geral Dos Requisitos

Diagrama de Casos de Uso

Page 11: Projeto de Engenharia de Software

• 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

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

– 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

– Diagrama de Seqüência:

Casos de Usos - Análise

Page 15: Projeto de Engenharia de Software

– Diagrama de Classe:

Casos de Usos - Análise

Page 16: Projeto de Engenharia de Software

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

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

– Diagrama de Seqüência:

Casos de Usos - Análise

Page 19: Projeto de Engenharia de Software

– Diagrama de Classe:

Casos de Usos - Análise

Page 20: Projeto de Engenharia de Software

Arquitetura do Sistema - Camadas

GUI

Controle

Dados

Repositório

Page 21: Projeto de Engenharia de Software

Arquitetura do Sistema - Camadas

Django

puremvc

MTV• Model• Template• View

MVC• Model• View• Controller

Page 22: Projeto de Engenharia de Software

Arquitetura do Sistema - Camadas

Template

View

Model & ORM

Database

Django

Page 23: Projeto de Engenharia de Software

Arquitetura do Sistema - Camadas

puremvc

Page 24: Projeto de Engenharia de Software

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

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

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

Testes

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

Page 28: Projeto de Engenharia de Software

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

Testes

• Teste de Unidade - Exemplo

Page 30: Projeto de Engenharia de Software

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

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

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

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

Resultados

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

Page 35: Projeto de Engenharia de Software

Resultados

• Versão Html / Janela Entradas de Insumo:

Page 36: Projeto de Engenharia de Software

Perguntas?

• Alguma duvida?