340 likes | 458 Views
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
E N D
Delicatessen System RG Grupo: Arthur Cireno Rizzo (acr2) Eduardo MenezesPires (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 Planejamento Requisitos Arquitetura Testes Execução do programa
Escopo O Delicatessen System é um sistemaeficiente, robusto e corretoque, de maneira simples e direta, vemparasuprir as necessidades de gerenciamento de uma Delicatessen.
Curiosidade O termo Delicatessen surgiu a partir do termoemLatimDelicatus, quesignificadelicadeza
Planejamento • A equipe é composta de cinco integrantes: • Arthur Cireno Rizzo – Analista de Sistemas e desenvolvedor • Eduardo Menezes Pires – Arquiteto de Software e desenvolvedor • Paulo de Barros e Silva Filho – Gerente de Projeto e desenvolvedor • Rafael Loureiro de Carvalho – Subgerente de Projeto e desenvolvedor • Romero Teixeira Gonçalves – Analista de Sistemas e desenvolvedor • Recursos do Projeto:
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 • Demaisfunçõesrealizadassomentepelogerente/ administrador • de Performance • O tempo de retorno das pesquisasnãopode ser superior a 5 segundos • A efetivação de umavenda (baixa no estoque) nãopodedemorarmaisque 2 segundos. • Deveráhaverespaçoem disco suficienteparacadastros e atualizações
Requisitos Não-funcionais • de Usabilidade • O tratamento de exceçõesdeve ser feito de maneiraeficiente. • O sistema utiliza uma interface intuitiva • A interface será adaptável ao tipo de usuário do sistema (segurança) • de Manutenção • Sistemamodularizado (arquiteturaemcamadasbemdefinidas)
Requisitos Funcionais • Logindo funcionário • Faturamento • Consultar produtos • Adicionar produto • Realizar venda • Adicionar cliente • Consultar cliente • Atualizar cliente • Excluir cliente • Cadastrar fornecedor • ... Na seção de arquitetura, detalharemososcasos de uso Login do funcionário e Faturamento
Arquitetura • Fachada privateNegocioFuncionarionegocioFuncionario; privateNegocioFornecedornegocioFornecedor; privateNegocioClientenegocioCliente; privateNegocioProdutonegocioProduto; privateNegocioServiconegocioServico; public Fachada() { this.negocioFuncionario = newNegocioFuncionario(); this.negocioFornecedor = newNegocioFornecedor(); this.negocioCliente = newNegocioCliente(); this.negocioProduto = newNegocioProduto(); this.negocioServico = newNegocioServico(); } publicList<Fornecedor> consultarFornecedor(String nome) throwsSQLException, ClassNotFoundException { returnnegocioFornecedor.consultarFornecedor(nome); } ...
Arquitetura Realizarvenda
Arquitetura Realizarvenda
Arquitetura Realizarvenda
Arquitetura • TelaRealizacao Venda Realizarvenda privatevoidrealizarVenda() { ... this.fachada.realizarVenda(venda) ... }
Arquitetura • Fachada Realizarvenda publicvoidrealizarVenda(Venda v) throwsClassNotFoundException, SQLException { negocioServico.realizarVenda(v); }
Arquitetura • NegócioServiço Realizarvenda publicvoidrealizarVenda(Venda v) throwsClassNotFoundException, SQLException { this.repositorioVenda.inserirVenda(v); }
Arquitetura • Repositório Venda Realizarvenda publicvoidinserirVenda(Venda v) throwsClassNotFoundException, SQLException { Connection connection = Conexao.getConnection(); ... }
Arquitetura Fazerbalanço
Arquitetura Fazerbalanço
Arquitetura Fazerbalanço
Arquitetura • TelaFazer • Balanco Fazerbalanç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; }
Arquitetura • Fachada Fazerbalanço publicdoublefaturamento(String dataInicial,StringdataFinal) throwsClassNotFoundException, SQLException{ returnnegocioProduto.faturamento(dataInicial, dataFinal); }
Arquitetura • NegócioServiço Fazerbalanço publicdoublefaturamento(String dataInicial, String dataFinal) throwsClassNotFoundException, SQLException { returnrepositorioProduto.faturamento(dataInicial, dataFinal); }
Arquitetura • Repositório Venda Fazerbalanço publicdoublefaturamento(String dataInicial, String dataFinal) throwsClassNotFoundException, SQLException { Connection connection = Conexao.getConnection(); PreparedStatementprepstmt = connection.prepareStatement(FATURAMENTO); prepstmt.setString(1, dataInicial); prepstmt.setString(2, dataFinal); ResultSetselect = prepstmt.executeQuery(); double faturamento = 0; if (select.next()) { faturamento = select.getDouble("preco"); } Conexao.closeConnection(); return faturamento; }