Upload
ana-prior
View
213
Download
1
Embed Size (px)
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