Prévia do material em texto
UNIVERSIDADE ANHANGUERA
Caina Correa dos Santos
PROJETO INTEGRADO INOVAÇÃO - ADS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
São Paulo 2024
Caina Correa dos Santos
PROJETO INTEGRADO INOVAÇÃO - ADS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
São Paulo 2024
1
SUMÁRIO
INTRODUÇÃO 3
MÉTODOS E RESULTADOS 5
Passo 1 5
Passo 2 9
Passo 3 11
Passo 4 16
CONCLUSÃO 19
REFERÊNCIAS BIBLIOGRÁFICAS 20
1 INTRODUÇÃO
O avanço acelerado das empresas de comércio eletrônico trouxe novos desafios operacionais, sendo a gestão eficiente de estoques um dos mais relevantes. A falta de um controle adequado pode gerar problemas como a indisponibilidade de produtos para venda, excesso de itens sem demanda armazenados e dificuldades no rastreamento da localização dos produtos nos depósitos. Essas questões comprometem não apenas a eficiência das operações, mas também a satisfação dos clientes, impactando diretamente a competitividade no mercado.
Nesse contexto, uma empresa em pleno crescimento no segmento de e-commerce identificou a necessidade de solucionar essas dificuldades por meio do desenvolvimento de um Sistema de Gerenciamento de Estoque. Esse sistema tem como objetivo oferecer uma ferramenta integrada e funcional para o controle de produtos, desde o cadastro até o rastreamento dentro dos armazéns. O projeto abrange os seguintes requisitos principais:
· Cadastro de produtos: Possibilitar o registro detalhado de novos itens, incluindo informações como nome, categoria, quantidade disponível, preço e localização no depósito, promovendo organização e fácil acesso às informações.
· Atualização de estoque: Implementar um controle em tempo real para ajustes na quantidade de produtos, seja por entrada de novos itens ou pela saída devido às vendas, garantindo a precisão do inventário.
· Rastreamento de localização: Facilitar a logística interna por meio de funcionalidades que permitam localizar produtos rapidamente nos armazéns, otimizando os processos de armazenamento e expedição.
· Geração de relatórios: Fornecer relatórios detalhados com dados sobre produtos com estoque crítico, excesso ou movimentação, auxiliando na tomada de decisões estratégicas.
Além disso, o projeto incluirá a elaboração de uma Tabela Verdade para assegurar a lógica do sistema, bem como um Diagrama de Caso de Uso que ilustrará as interações entre os usuários e as principais funcionalidades do sistema.
O objetivo central deste projeto é criar uma solução tecnológica robusta e escalável que não apenas resolva os desafios atuais da empresa, mas também suporte seu crescimento sustentável. Ao adotar uma abordagem metodológica estruturada e boas práticas de desenvolvimento, espera-se entregar um sistema capaz de otimizar as operações logísticas e melhorar o controle do estoque, contribuindo para uma gestão mais eficiente.
2 MÉTODOS E RESULTADOS
2.1 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).
Sprint 2: Estruturação e Modelagem de Dados
Objetivo: Definir a estrutura de dados e modelar o banco de dados. Duração: 2 semanas
Figura 2 – Sprint 2.
Fonte: O Autor (2024).
Sprint 3: Desenvolvimento do Cadastro de Produtos Objetivo: Implementar o módulo de cadastro de produtos.
5
Duração: 3 semanas
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.
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
7
Figura 6 – Sprint 6.
Fonte: O Autor (2024).
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).
2.2 Passo 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)
9
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.
P
E
L
R
Solução completa
F
F
F
F
F
F
F
F
T
F
F
F
T
F
F
F
F
T
T
F
F
T
F
F
F
F
T
F
T
F
F
T
T
F
F
F
T
T
T
F
T
F
F
F
F
T
F
F
T
F
T
F
T
F
F
T
F
T
T
F
T
T
F
F
F
T
T
F
T
F
T
T
T
F
F
T
T
T
T
T
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.
A coluna "Solução Completa" indica se todos os requisitos são atendidos. Será verdadeira (T) apenas quando P, E, L e R forem todos verdadeiros, isto é, todos os requisitos do sistema forem implementados e funcionais.
2.3 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.
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
# 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
11
Algoritmos de Cadastro e Consulta:
Funções para Cadastro de Produtos e Categorias:
produtos = {} 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.")
Funções para Consulta de Categorias:
def consultar_categoria(id_categoria):
return categorias.get(id_categoria, "Categoria não encontrada.")
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
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