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
Download

Modelo de Análise