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
Identificação
RNF/PROC-01
RNF/PROC-02
RNF/PROC-03
Descrição
O sistema deverá ser implementado em Python 2.6 e Flex 3 utilizando o
SGBD MySQL Server 5.0.
O sistema deverá rodar em Windows e Linux.
Deverá ser utilizada ferramenta CASE e a modelagem deverá ser feita em
UML.
Requisitos de Produto - Segurança
Identificação
RNF/SEG-01
RNF/SEG-02
RNF/SEG-03
RNF/SEG-04
RNF/SEG-05
RNF/SEG-06
Descrição
É necessário autenticar o usuário por meio de login e senha.
Os atores terão acesso apenas a um conjunto mínimo de funcionalidades,
que compreendem as funções operacionais básicas.
O gerente tem acesso a todas as funcionalidades.
O acesso a funções com esse requisito não funcional só poderá ser feito
pelo gerente, identificado através de login e senha.
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.
O acesso a funções relacionadas a pagamento, deve ser de uso exclusivo
do caixa e do gerente.
Requisitos
• Requisitos funcionais:
Código
RF-01
RF-16
RF-31
RF-02
RF-17
RF-32
RF-03
RF-18
RF-33
RF-04
RF-19
RF-34
RF-05
RF-20
RF-35
RF-06
RF-21
RF-36
RF-07
RF-22
RF-08
RF-37
RF-23
RF-09
RF-24
RF-38
RF-10
RF-25
RF-39
RF-11
RF-26
RF-40
RF-12
RF-27
RF-41
RF-13
RF-28
RF-42
RF-14
RF-29
RF-43
RF-15
RF-30
Nome
Efetuar
Login
Saída
Informar
Insumo
Finalização do Pedido
Cadastrar
Cliente
Abrir
Mesa/Cartão
Cadastrar
Categoria
Alterar Mesa/Cartão
Cliente
Trocar
Remover
Categoria
Remover
Cliente
Juntar
Mesa/Cartão
Cadastrar Funcionário
Consultar
Cliente
Fechar
Mesa/Cartão
Alterar
Funcionário
Cadastrar
Pedido Delivery
Efetuar
Pagamento
Remover
Funcionário
Alterar Pedido
Delivery
Cadastrar
Produto
Consultar
Cancelar
Pedido
Funcionário
Alterar Produto Delivery
ConsultarProduto
Pedido
Delivery
Remover
Informação
do plantel
dos funcionários
Despachar
Pedido
Delivery
Consultar
Produto
Calcular comissão
Entregar
Pedido
Cadastrar InsumoDelivery
Gerar relatórios de funcionários
Cadastrar
Pedido Mesa/Cartão
Alterar
Insumo
Gerar relatórios de estoque
Alterar Pedido
Mesa/Cartão
Remover
Insumo
Gerar
relatórios
finaceiros
Cancelar Pedido
Mesa/Cartão
Consultar
Insumo
Gerar
relatórios
Consultar
Pedidoextras
Mesa/Cartão
Entrada
Insumo
Prioridade
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Essencial
Importante
Essencial
Essencial
Essencial
Essencial
Essencial
Desejável
Essencial
Essencial
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
Django
MTV
• Model
• Template
• View
puremvc
MVC
• Model
• View
• Controller
Arquitetura do Sistema - Camadas
Django
Template
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
Flex Builder 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?
Download

Apresenta o ppt v1.0