Delicatessen System RG

Preview:

DESCRIPTION

Delicatessen System RG. Grupo: Arthur Cireno Rizzo (acr2) Eduardo Menezes Pires ( emp ) Paulo de Barros e Silva Filho ( pbsf ) Rafael Loureiro de Carvalho ( rlc ) Romero Teixeira Gonçalves ( rtg ) Monitora : Sara Carvalho da Rocha Brito (scrb2 ). Agenda. Escopo - PowerPoint PPT Presentation

Citation preview

Delicatessen System RG

Grupo:Arthur Cireno Rizzo (acr2)Eduardo Menezes Pires (emp)Paulo de Barros e Silva Filho (pbsf)Rafael Loureiro de Carvalho (rlc)Romero Teixeira Gonçalves (rtg)

Monitora:Sara Carvalho da Rocha Brito (scrb2 )

Agenda

1. Escopo2. Planejamento3. Requisitos4. Arquitetura5. Testes6. Execução do programa

Escopo

O Delicatessen System é um sistema eficiente, robusto e correto que, de maneira simples e direta, vem para suprir as necessidades de gerenciamento de uma Delicatessen.

Curiosidade

O termo Delicatessen surgiu a partir do termo em Latim Delicatus, que significa delicadeza

Planejamento

A equipe é composta de cinco integrantes: Arthur Cireno Rizzo – Analista de Sistemas e desenvolvedorEduardo Menezes Pires – Arquiteto de Software e desenvolvedorPaulo de Barros e Silva Filho – Gerente de Projeto e desenvolvedorRafael Loureiro de Carvalho – Subgerente de Projeto e desenvolvedorRomero Teixeira Gonçalves – Analista de Sistemas e desenvolvedor

Recursos do Projeto:

Planejamento

Requisitos

Não-funcionais

•de Produto• Implementado na linguagem JAVA• IDE Eclipse

•de Segurança• Os funcionários terão acesso a apenas um conjunto restrito de

funcionalidades, que compreendem as funções operacionais básicas • Demais funções realizadas somente pelo gerente / administrador

•de Performance• O tempo de retorno das pesquisas não pode ser superior a 5 segundos• A efetivação de uma venda (baixa no estoque) não pode demorar mais

que 2 segundos.• Deverá haver espaço em disco suficiente para cadastros e atualizações

Requisitos

Não-funcionais

•de Usabilidade• O tratamento de exceções deve ser feito de maneira eficiente.• O sistema utiliza uma interface intuitiva• A interface será adaptável ao tipo de usuário do sistema

(segurança)

•de Manutenção• Sistema modularizado (arquitetura em camadas bem definidas)

Requisitos

Funcionais

• Login do funcionário• Faturamento• Consultar produtos• Adicionar produto• Realizar venda• Adicionar cliente• Consultar cliente• Atualizar cliente• Excluir cliente•Cadastrar fornecedor•...

Na seção de arquitetura, detalharemos os casos de uso Login do funcionário e Faturamento

Arquitetura

Fachada

Negócio

Repositório

Dados

ArquiteturaFachada

private NegocioFuncionario negocioFuncionario;private NegocioFornecedor negocioFornecedor;private NegocioCliente negocioCliente;private NegocioProduto negocioProduto;private NegocioServico negocioServico;

public Fachada() {this.negocioFuncionario = new NegocioFuncionario();this.negocioFornecedor = new NegocioFornecedor();this.negocioCliente = new NegocioCliente();this.negocioProduto = new NegocioProduto();this.negocioServico = new NegocioServico();}

public List<Fornecedor> consultarFornecedor(String nome)throws SQLException, ClassNotFoundException {return negocioFornecedor.consultarFornecedor(nome);}...

Arquitetura

Realizar venda

Arquitetura

Realizar venda

TelaRealizacao Venda Fachada Negócio

ServiçoRepositório

Venda

Arquitetura

Realizar venda

Arquitetura

Realizar venda

private void realizarVenda() {...this.fachada.realizarVenda(venda)...

}

TelaRealizacao Venda

Arquitetura

Realizar venda

public void realizarVenda(Venda v) throws ClassNotFoundException,SQLException {

negocioServico.realizarVenda(v);

}

Fachada

Arquitetura

Realizar venda

public void realizarVenda(Venda v) throws ClassNotFoundException,SQLException {

this.repositorioVenda.inserirVenda(v);

}

Negócio Serviço

Arquitetura

Realizar venda

public void inserirVenda(Venda v) throws ClassNotFoundException,SQLException {

Connection connection = Conexao.getConnection();...

}

Repositório Venda

Arquitetura

Fazer balanço

Arquitetura

Fazer balanço

TelaFazer Balanço Fachada

NegocioProduto

Repositório Produto

Arquitetura

Fazer balanço

Arquitetura

Fazer balanço

double faturamento = 0;

try {faturamento = this.fachada.faturamento(dataI, dataF);} catch (ClassNotFoundException e) {GuiUtil.JanelaErro(this, "Ocorreu um erro inesperado no sistema.");return;} catch (SQLException e) {GuiUtil.JanelaErro(this, "Ocorreu um erro no acesso ao banco de dados.\nErro: "+e.getErrorCode());e.printStackTrace();return;}

TelaFazerBalanco

Arquitetura

Fazer balanço

public double faturamento(String dataInicial,String dataFinal) throws ClassNotFoundException, SQLException {

return negocioProduto.faturamento(dataInicial, dataFinal);

}

Fachada

Arquitetura

Fazer balanço

public double faturamento(String dataInicial, String dataFinal) throws ClassNotFoundException, SQLException {

return repositorioProduto.faturamento(dataInicial, dataFinal);}

Negócio Serviço

Arquitetura

Fazer balanço

public double faturamento(String dataInicial, String dataFinal)throws ClassNotFoundException, SQLException {Connection connection = Conexao.getConnection();PreparedStatement prepstmt = connection.prepareStatement(FATURAMENTO);prepstmt.setString(1, dataInicial);prepstmt.setString(2, dataFinal);ResultSet select = prepstmt.executeQuery();double faturamento = 0;if (select.next()) {faturamento = select.getDouble("preco");}Conexao.closeConnection();return faturamento;

}

Repositório Venda

Testes

Testes

Testes

Execução do Programa

Recommended