Prévia do material em texto
NOME DA FACULDADE
NOME DO CURSO
NOME DO(A) ALUNO(A)
PROJETO INTEGRADO INOVAÇÃO – GESTÃO
“Desenvolvimento de um Sistema de Gerenciamento de Estoque”
CIDADE-UF
2024
NOME DO(A) ALUNO(A)
PROJETO INTEGRADO INOVAÇÃO – GESTÃO
“Desenvolvimento de um Sistema de Gerenciamento de Estoque”
Projeto Integrado Síntese – apresentado à NOME
DA FACULDADE, como requisito parcial para a
obtenção de média semestral por meio de uma
Produção Textual desenvolvida ao longo do
semestre.
Tutor(a) à Distância: ESCREVER O NOME
COMPLETO
CIDADE-UF
2024
SUMÁRIO
1. INTRODUÇÃO .........................................................................................................3
2. Passo 1 ....................................................................................................................4
3. Passo 2 ....................................................................................................................7
4. Passo 3 ....................................................................................................................9
5. Passo 4 ..................................................................................................................13
5. CONCLUSÃO.........................................................................................................16
REFERÊNCIAS...........................................................................................................17
3
1. INTRODUÇÃO
O rápido crescimento das empresas de comércio eletrônico traz consigo uma
série de desafios operacionais, entre os quais a gestão eficiente do estoque se
destaca como um dos mais críticos.
Uma gestão inadequada do estoque pode resultar em diversos problemas,
incluindo a falta de produtos disponíveis para venda, excesso de itens armazenados
sem demanda, e dificuldades para rastrear a localização dos produtos nos
depósitos. Esses problemas não apenas afetam a eficiência operacional da
empresa, mas também impactam diretamente a satisfação do cliente e,
consequentemente, a competitividade no mercado.
Neste contexto, uma empresa de comércio eletrônico em franca expansão
enfrenta exatamente esses desafios. Para resolver esses problemas e otimizar suas
operações, a empresa decidiu desenvolver um Sistema de Gerenciamento de
Estoque. O sistema proposto visa proporcionar uma solução integrada e eficiente
para a gestão de produtos, desde o cadastro até o rastreamento de sua localização
nos depósitos.
O objetivo deste Projeto Integrado de Análise e Desenvolvimento de Sistemas
é, portanto, desenvolver uma solução robusta e eficaz que não apenas resolva os
problemas atuais da empresa de comércio eletrônico, mas também prepare a
organização para um crescimento sustentável e escalável. Através de uma
abordagem metodológica bem estruturada e a aplicação de boas práticas de
desenvolvimento de software, o sistema de gerenciamento de estoque será uma
ferramenta essencial para a otimização das operações logísticas da empresa,
promovendo uma gestão mais precisa e eficiente do seu estoque.
4
2. PASSO 1
Sprint 1: Planejamento e Definição de Requisitos
Objetivo: Definir requisitos e planejar o desenvolvimento do sistema.
Duração: 2 semanas
Figura 1 – Sprint 1.
Fonte: O Autor (2024).
Figura 2 – Sprint 2.
Fonte: O Autor (2024).
Sprint 3: Desenvolvimento do Cadastro de Produtos
Objetivo: Implementar o módulo de cadastro de produtos.
Duração: 3 semanas
5
Figura 3 – Sprint 3.
Fonte: O Autor (2024).
Sprint 4: Desenvolvimento da Atualização de Estoque
Objetivo: Implementar o módulo de atualização de estoque.
Duração: 3 semanas
Figura 4 – Sprint 4.
Fonte: O Autor (2024).
Sprint 5: Desenvolvimento do Rastreamento de Localização
Objetivo: Implementar o módulo de rastreamento de localização de produtos.
6
Duração: 3 semanas
Figura 5 – Sprint 5.
Fonte: O Autor (2024).
Sprint 6: Desenvolvimento de Relatórios
Objetivo: Implementar o módulo de geração de relatórios.
Duração: 3 semanas
Figura 6 – Sprint 6.
Fonte: O Autor (2024).
7
Sprint 7: Testes Finais e Deploy
Objetivo: Realizar testes finais e implantar o sistema.
Duração: 2 semanas
Figura 7 – Sprint 7
Fonte: O Autor (2024).
3. PASSO 2
2 Definimos as seguintes variáveis booleanas para os requisitos:
P (Cadastro de Produtos)
E (Atualização de Estoque)
L (Rastreamento de Localização)
R (Relatórios)
8
A coluna "Solução Completa" será verdadeira (T) apenas quando todas as
variáveis (P, E, L, R) forem verdadeiras, ou seja, todos os requisitos forem atendidos.
A expressão lógica que representa a solução completa (todos os requisitos
atendidos) é: P /\ E /\ L /\ R
A operação lógica "E" (AND) é representada por “/\”.
Conforme Tabela 1:
Tabela 1 – Tabela verdade criada.
Fonte: O Autor (2024).
Interpretação:
P (Produtos): Verdadeiro (T) se o sistema permite o cadastro de novos produtos.
E (Estoque): Verdadeiro (T) se o sistema permite a atualização da quantidade de
produtos em estoque.
L (Localização): Verdadeiro (T) se o sistema possibilita o rastreamento da
localização dos produtos.
R (Relatórios): Verdadeiro (T) se o sistema gera relatórios sobre o estado do
estoque.
9
4. PASSO 3
Criam-se as funções para definição das estruturas de dados, bem como
algoritmos de cadastro e consulta dos produtos, movimentações de estoque e
relatórios.
4.1 Estruturas para Produtos, Categorias e Movimentações:
# Estrutura de Dados para Produtos
class Produto:
def __init__(self, id_produto, nome, categoria, quantidade, preco, localizacao):
self.id_produto = id_produto
self.nome = nome
self.categoria = categoria
self.quantidade = quantidade
self.preco = preco
self.localizacao = localizacao
# Estrutura de Dados para Categorias
class Categoria:
def __init__(self, id_categoria, nome):
self.id_categoria = id_categoria
self.nome = nome #
4.2 Estrutura de Dados para Movimentações de Estoque class Movimentacao:
def __init__(self, id_movimentacao, id_produto, tipo, quantidade, data):
self.id_movimentacao = id_movimentacao
self.id_produto = id_produto
self.tipo = tipo # 'entrada' ou 'saida'
self.quantidade = quantidade
self.data = data
4.3 Algoritmos de Cadastro e Consulta:
Funções para Cadastro de Produtos e Categorias:
produtos = {}
10
categorias = {}
movimentacoes = []
id_produto_counter = 1
id_categoria_counter = 1
id_movimentacao_counter = 1
def cadastrar_categoria(nome):
global id_categoria_counter
categoria = Categoria(id_categoria_counter, nome)
categorias[id_categoria_counter] = categoria
id_categoria_counter += 1
return categoria
def cadastrar_produto(nome, id_categoria, quantidade, preco, localizacao):
global id_produto_counter
if id_categoria not in categorias:
raise ValueError("Categoria não encontrada.")
produto = Produto(id_produto_counter, nome, id_categoria, quantidade, preco,
localizacao)
produtos[id_produto_counter] = produto
id_produto_counter += 1
return produto
def consultar_produto(id_produto):
return produtos.get(id_produto, "Produto não encontrado.")
4.4 Funções para Consulta de Categorias:
def consultar_categoria(id_categoria):
return categorias.get(id_categoria, "Categoria não encontrada.")
4.5 Algoritmos de Movimentação:
Funções para Registrar Entradas e Saídas de Produtos:
def registrar_movimentacao(id_produto, tipo, quantidade, data):
global id_movimentacao_counter
11
if id_produto not in produtos:
raise ValueError("Produto não encontrado.")
if tipo not in ['entrada', 'saida']:
raise ValueError("Tipo de movimentação inválido.")
produto = produtos[id_produto]
if tipo == 'saida' and produto.quantidade'saida':
produto.quantidade -= quantidade
movimentacao = Movimentacao(id_movimentacao_counter, id_produto, tipo,
quantidade, data)
movimentacoes.append(movimentacao)
id_movimentacao_counter += 1
return movimentacao
4.6 Relatórios e Consultas: Funções para Gerar Relatórios e Consultar o
Histórico de Movimentações:
def gerar_relatorio_estoque():
relatorio = []
for id_produto, produto in produtos.items():
relatorio.append({
'id_produto': id_produto,
'nome': produto.nome,
'categoria': categorias[produto.categoria].nome,
'quantidade': produto.quantidade,
'preco': produto.preco,
'localizacao': produto.localizacao
12
}) return relatorio
def consultar_movimentacoes(id_produto):
if id_produto not in produtos:
raise ValueError("Produto não encontrado.")
historico = [mov for mov in movimentacoes if mov.id_produto == id_produto]
return historico
def gerar_relatorio_movimentacoes():
relatorio = []
for mov in movimentacoes:
relatorio.append({
'id_movimentacao': mov.id_movimentacao,
'id_produto': mov.id_produto,
'nome_produto': produtos[mov.id_produto].nome,
'tipo': mov.tipo,
'quantidade': mov.quantidade,
'data': mov.data
})
return relatorio
Exemplo de Uso:
# Cadastro de categorias
cat1 = cadastrar_categoria("Eletrônicos")
cat2 = cadastrar_categoria("Livros")
# Cadastro de produtos
prod1 = cadastrar_produto("Smartphone", cat1.id_categoria, 100, 1500.00, "A1")
prod2 = cadastrar_produto("Livro de Python", cat2.id_categoria, 50, 70.00, "B2")
# Registrar movimentações
mov1 = registrar_movimentacao(prod1.id_produto, 'entrada', 50, "2024-06-25")
mov2 = registrar_movimentacao(prod2.id_produto, 'saida', 5, "2024-06-26")
# Gerar relatórios
13
relatorio_estoque = gerar_relatorio_estoque()
relatorio_movimentacoes = gerar_relatorio_movimentacoes()
print(relatorio_estoque)
print(relatorio_movimentacoes)
5. PASSO 4
5.1 Descrição dos Atores
Estoquista: Responsável por registrar a entrada de produtos e validar a nota fiscal
de entrada.
Usuário: Responsável por emitir relatórios de posição semanal e solicitar a compra
de produtos.
Gerente de Setor: Responsável por autorizar a compra de produtos. Descrição dos
Casos de Uso
Registrar Entrada de Produtos: Estoquista registra a entrada de novos produtos
no sistema.
Validar Nota Fiscal: Estoquista valida a nota fiscal dos produtos que entraram no
estoque.
Emitir Relatório de Posição Semanal: Usuário emite relatórios semanais sobre o
estado do estoque.
Solicitar Compra de Produtos: Usuário solicita a compra de novos produtos para
repor o estoque.
Autorizar Compra de Produtos: Gerente de Setor autoriza a compra de produtos
solicitada pelo Usuário.
Consolidação de Compras: Processo necessário para consolidar as solicitações
de compra e emitir pedidos ao fornecedor.
5.2 Detalhes dos Casos de Uso
1. Registrar Entrada de Produtos
Ator: Estoquista
Descrição: Estoquista registra a entrada de novos produtos no sistema, incluindo
quantidade, data e fornecedor.
Precondições: Produto já deve estar cadastrado no sistema.
Pós-condições: Quantidade de produtos no estoque é atualizada.
14
2. Validar Nota Fiscal
Ator: Estoquista
Descrição: Estoquista valida a nota fiscal dos produtos que entraram no estoque.
Precondições: Nota fiscal deve estar disponível.
Pós-condições: Entrada de produtos é confirmada e registrada.
3. Emitir Relatório de Posição Semanal
Ator: Usuário
Descrição: Usuário gera um relatório semanal sobre o estado do estoque, incluindo
quantidade de produtos e movimentações.
Precondições: Produtos devem estar cadastrados e movimentações registradas.
Pós-condições: Relatório é gerado e pode ser analisado.
4. Solicitar Compra de Produtos
Ator: Usuário
Descrição: Usuário solicita a compra de novos produtos para repor o estoque.
Precondições: Produto deve estar cadastrado no sistema.
Pós-condições: Solicitação de compra é registrada e enviada para consolidação.
5. Autorizar Compra de Produtos
Ator: Gerente de Setor
Descrição: Gerente de Setor autoriza a compra de produtos solicitada pelo Usuário.
Precondições: Solicitação de compra deve estar registrada.
Pós-condições: Solicitação de compra é aprovada e enviada para o fornecedor.
6. Consolidação de Compras
Ator: Sistema (Processo Automático)
Descrição: Processo necessário para consolidar as solicitações de compra e emitir
pedidos ao fornecedor.
Precondições: Solicitações de compra devem estar registradas.
Pós-condições: Pedido consolidado é enviado ao fornecedor.
15
Figura 2 – Diagrama.
Fonte: O Autor (2024).
16
5. CONCLUSÃO
O projeto de desenvolvimento de um sistema de gerenciamento de estoque
para uma empresa de comércio eletrônico em rápido crescimento demonstrou a
importância de uma abordagem estruturada e integrada em análise e
desenvolvimento de sistemas. A implementação do sistema visou resolver
problemas críticos de gerenciamento de estoque, tais como falta de produtos,
excesso de estoque e dificuldades na rastreabilidade dos itens nos depósitos.
Através de uma análise detalhada dos requisitos e da aplicação de metodologias
ágeis, o projeto conseguiu atender às necessidades da empresa de forma eficaz.
Durante o desenvolvimento do projeto, foram enfrentados diversos desafios,
incluindo a definição clara dos requisitos, a adaptação às mudanças nas
necessidades e a integração de diferentes componentes do sistema. A utilização de
metodologias ágeis, como o Scrum, permitiu a gestão eficiente desses desafios,
garantindo entregas contínuas e incrementais que se alinharam às expectativas da
empresa.
Desta forma, o projeto integrado de análise e desenvolvimento de sistemas
para o gerenciamento de estoque não só atendeu aos requisitos iniciais, mas
também estabeleceu uma base sólida para o futuro crescimento e sucesso da
empresa, no caso fictício. A aplicação prática de conceitos teóricos e metodologias
ágeis demonstrou a eficácia de uma abordagem interdisciplinar e colaborativa na
resolução de problemas complexos.
17
REFERÊNCIAS
BORGES, L. E. Python para Desenvolvedores. Rio de Janeiro. Edição do Autor,
2010.
MENEZES, N. N. C. Introdução a Programação com Python: Algoritmos e Lógica
de Programação para Iniciantes. São Paulo. Novatec, 2010.
PRESSMAN, Roger S. Engenharia de Software: Uma Abordagem Profissional. 7ed,
Porto Alegre: AMGH, 2011.
SOMMERVILLE, Ian. Engenharia de Software. 9.ed, São Paulo: Pearson, 2011.
1. INTRODUÇÃO
5. CONCLUSÃO
REFERÊNCIAS