UNIVERSIDADE FEDERAL DE SERGIPE – CAMPUS ITABAIANA Disciplina: Engenharia de Software I Professor: Marcos Barbosa Dósea Aluno: •Elder dos Santos Nunes Lima • Lucas da Cunha Machado Modelo de Análise – SIMP 1 – Caso de uso Manter Produto Descrição: Ao realizar a compra do(s) produto(s), o fornecedor emite a nota fiscal com todos os produtos pedidos. Com base nesta nota, o funcionário insere todos os dados no sistema (fornecedor, número da nota, nome do produto, código do produto, marca, preço de compra, preço de venda). Permite consultar, alterar ou excluir produto. Diagrama de Classe <<entity>> Fornecedor <<boundary>> TelaManterProduto <<entity>> Produto +inserirProduto(produto: produto) +alterarProduto(produto: produto) +consultarProduto(produto: produto) +removerProduto(produto: produto) +nomeFornecedor: String +codigoFornecedor: Integer <possui> +nomeProduto: String +codigoProduto: Integer +numeroNota: Integer +nomemarca: String +quantidade: Integer +precoVenda: Float +fabricante: String * * 1 1 <<control>> ControladorManterProduto +inserirProduto(produto: produto): Boolean +alterarProduto(produto: produto): Boolean +consultarProduto(codigoProduto: Integer) +removerProduto(codigoProduto: Integer) <<entity collection>> CadastroProduto 1 1 +inserirProduto(produto: produto): Boolean +alterarProduto(produto: produto): Boolean +consultarProduto(codigoProduto: Integer) +removerProduto(codigoPlroduto: Integer) Diagrama de Sequência 2 – Caso de uso Manter Cliente Descrição: O cliente chega na loja para efetuar a compra. O funcionário da Moto Peças faz a pergunta se o mesmo já está cadastrado, caso não esteja, o funcionário pede ao cliente os documentos necessários (nome, RG, CPF, endereço, cidade, estado, bairro, telefone), e insere os dados no sistema, no menu cadastro de cliente. Também pode alterar os dados desse cliente, realizar a consulta e excluir o cliente do banco de dados. Diagrama de Classe <<entity>> Cliente <<boundary>> TelaManterCliente +nomeCliente: String +cpf: Integer +rg: Integer +endereco: String +cidade: String +estado: String +bairro: String +telefone: Integer +inserirCliente(cliente: cliente) +alterarCliente(cliente: cliente) +consultarCliente(cliente: cliente) +removerCliente(cliente: cliente) * * 1 1 <<control>> ControladorManterCliente +inserirCliente(cliente: cliente): Boolean +alterarCliente(cliente: cliente): Boolean +consutarCliente(nomeCliente: String) +removerCliente(nomeCliente: String) <<entity collection>> CadastroCliente 1 1 +inserirCliente(cliente: cliente): Boolean +alterarCliente(cliente: cliente): Boolean +consutarCliente(nomeCliente: String) +removerCliente(nomeCliente: String) Diagrama de Sequência 3 – Caso de uso Consultar Estoque Descrição: Através do menu consultar estoque, é possível fazer a consulta por nome do produto ou o código. Também é possível fazer a consulta pela quantidade do produto, o sistema lista os produtos que estão abaixo de certa quantidade definida pelo usuário do sistema. Ao realizar essa consulta, o funcionário tem as informações detalhadas sobre o determinado produto que foram armazenadas na opção cadastrar produto. Diagrama de Classe <<entity>> Produto +nomeProduto: String +codigoProduto: Integer +numeroNota: Integer +nomemarca: String +quantidade: Integer +precoVenda: Float +fabricante: String <<boundary>> TelaConsultarEstoque +consultarEstoque(estoque: estoque) * * 1 1 <<entity collection>> InformacaoEstoque <<control>> ControladorConsultarEstoque 1 +consultarEstoque(estoque): Boolean 1 +venda(estoque: estoque): Boolean +compra(estoque: estoque): Bollean Diagrama de Sequência 4 – Caso de uso Imprimir Relatório Venda Descrição: Durante um determinado período determinado pela Moto Peças, é imprimido um relatório onde é demonstrado todo histórico de venda feita nesse período. Diagrama de Classe <<entity>> Produto <<boundary>> TelaImpressaoDeRelatorioVenda <<entity>> Venda +mostrarVendaPorPeríodo(dataInicial: Integer, dataFinal: Integer): Venda +totalVenda: Float +codigoVenda: Integer 1 +nomeProduto: String +codigoProduto: Integer +numeroNota: Integer +nomemarca: String +quantidade: Integer +precoVenda: Float +fabricante: String * <<control>> ControladorRelatorioVenda Diagrama de Sequência * 1 * +mostrarVendaPorPeríodo(dataInicial: Integer, dataFinal: Integer): Venda 1 <<entity collection>> CadastroVenda 1 1 +buscarVendasPorPeriodo(dataInicial: Integer, dataFinal: Integer): Collection<Venda> +cadastrarVenda(venda: venda): Boolean 5 – Caso de uso Imprimir Relatório Devedores Descrição: Durante um período estipulado pela Moto Peças é impresso um relatório contendo as relações de devedores, contendo nome, endereço, meses em atraso e o total em R$ que esse cliente está devendo. Diagrama de Classe <<entity>> Cliente <<boundary>> TelaImpressaoRelatorioDevedores <<entity>> Devedores 1 * +mostrarDevedoresPorPeriodo(dataInicial: Integer, dataFinal: Integer): devedores 1 1 +nomeCliente: String +cpf: Integer +rg: Integer +endereco: String +cidade: String +estado: String +bairro: String +telefone: Integer * <<control>> ControladorRelatorioDevedores * +mostrarDevedoresPorPeriodo(dataInicial: Integer, dataFinal: Integer): devedores <<entity collection>> CadastroCliente 1 1 +inserirCliente(cliente: cliente): Boolean +alterarCliente(cliente: cliente): Boolean +consutarCliente(nomeCliente: String) +removerCliente(nomeCliente: String) Diagrama de Sequência 6 – Caso de uso Efetuar Venda Descrição: O cliente vai até a Moto Peças e faz o pedido do(s) produto(s) que deseja. O funcionário olha no sistema se o cliente já está cadastrado. Caso esteja, o funcionário olha a situação do cliente (em débito ou regular), se estiver em débito a venda não pode ser efetuada. Caso não esteja cadastrado, o funcionário realiza o cadastro. O funcionário da Moto Peças vai verificar no estoque a disponibilidade do(s) produto(s) solicitado(s). Caso esse produto esteja em estoque na loja, o funcionário mostra as opções de pagamento estipulado pela Moto Peças. O cliente escolhe a forma de pagamento que esteja em suas condições e realiza o pagamento. É emitida a nota fiscal e concluída a venda. O cliente leva o(s) produto(s). Nesta nota é contida o nome do produto, código do produto, valor do produto por unidade e quantidade do produto. Diagrama de Classe <<entity>> Produto <<boundary>> TelaEfetuarVenda +nomeProduto: String +codigoProduto: Integer +numeroNota: Integer +nomemarca: String +quantidade: Integer +precoVenda: Float +fabricante: String <<control>> ControladorManterProduto +vender(produto: Produto): Boolean +inserirProduto(produto: produto): Boolean +alterarProduto(produto: produto): Boolean +consultarProduto(codigoProduto: Integer) +removerProduto(codigoProduto: Integer) 1 1 1 * 1 1 1 <<control>> ControladorVenda +vender(produto: produto): Boolean 1 1 +totalVenda: Float +codigoVenda: Integer * 1 <<entity collection>> CadastroProduto +inserirProduto(produto: produto): Boolean +alterarProduto(produto: produto): Boolean +consultarProduto(codigoProduto: Integer) +removerProduto(codigoPlroduto: Integer) 1 <<entity>> Venda 1 1 <<entity collection>> CadastroVenda +buscarVendasPorPeriodo(dataInicial: Integer, dataFinal: Integer): Collection<Venda> +cadastrarVenda(venda: venda): Boolean <<control>> ControladorManterCliente <<entity>> Cliente +inserirCliente(cliente: cliente): Boolean +alterarCliente(cliente: cliente): Boolean +consutarCliente(nomeCliente: String) +removerCliente(nomeCliente: String) 1 * 1 +nomeCliente: String +cpf: Integer +rg: Integer +endereco: String +cidade: String +estado: String +bairro: String +telefone: Integer 1 <<entity collection>> CadastroCliente +inserirCliente(cliente: cliente): Boolean +alterarCliente(cliente: cliente): Boolean +consutarCliente(nomeCliente: String) +removerCliente(nomeCliente: String) Diagrama de Sequência 7 – Caso de uso Efetuar Compra Descrição: O usuário do sistema verifica na opção consulta de estoque os produtos que estão em baixa. É impressa uma lista que detalha o(s) produto. Com base nesta lista, é feita uma pesquisa com diversos fornecedores para identificar os produtos de alta qualidade e custo baixo. A partir desta pesquisa a Moto Peças irá enviar o(s) pedido(s) através de representantes que chegam na empresa ou através de telefonemas. Após ser feito o pedido, o fornecedor emite a nota fiscal e estipula um prazo para ser feito a entrega e define as formas de pagamento (a vista ou a prazo). A empresa escolhe a forma de pagamento de acordo com suas condições e realiza o pagamento. Depois de efetuar o pagamento a empresa aguarda o prazo de entrega. Após a entrega do(s) produto(s) o funcionário da Moto Peças dá entrada do(s) produto(s) no sistema com base na nota fiscal emitida pelo fornecedor. Nesta nota é contida o nome do produto, código do produto, valor do produto por unidade e quantidade do produto. Diagrama de Classe <<entity>> Fornecedor <<boundary>> TelaEfetuarCompra +nomeFornecedor: String +codigoFornecedor: Integer +comprarProduto(Estoque): Boolean <possui> 1 * 1 1 <<entity collection>> PedidoFornecedor <<control>> ControladorConsultarEstoque +consultarEstoque(estoque): Boolean <<entity>> Produto 1 * +realizarPedido(fornecedor: fornecedor): Boolean Diagrama de Sequência +nomeProduto: String +codigoProduto: Integer +numeroNota: Integer +nomemarca: String +quantidade: Integer +precoVenda: Float +fabricante: String