Projeto Inovação Compartilhar

Fazer download em doc, pdf ou txt
Fazer download em doc, pdf ou txt
Você está na página 1de 21

3

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

PROJETO INTEGRADO INOVAÇÃO – ADS

NOME:
RA :

SOROCABA / SP
4

NOME

PROJETO INTEGRADO INOVAÇÃO – ADS


“Desenvolvimento de um sistema de gerenciamento de estoque”

Trabalho textual apresentado como requisito parcial para


a obtenção de média semestral.

Tutor EAD:

SOROCABA / SP
2024
5

Sumário
1. INTRODUÇÃO......................................................................................................3
2. DESENVOLVIMENTO..........................................................................................4
2.1. Passo 1......................................................................................................... 4
2.2. Passo 2......................................................................................................... 9
2.3. Passo 3.......................................................................................................10
2.4. Passo 4.......................................................................................................15
3. CONCLUSÃO.....................................................................................................18
REFERÊNCIAS......................................................................................................... 19
3

1 INTRODUÇÃO

O rápido avanço das empresas de comércio eletrônico traz consigo diversos


desafios operacionais, sendo a gestão eficiente de estoque um dos mais relevantes.
Uma administração inadequada do estoque pode gerar uma série de problemas,
como a indisponibilidade de produtos para venda, acúmulo de itens sem demanda,
além de dificuldades para localizar os produtos nos depósitos. Esses obstáculos
comprometem não só a eficiência operacional, mas também afetam diretamente a
satisfação dos clientes, impactando a competitividade da empresa no mercado.

Nesse cenário, uma empresa de e-commerce em rápida expansão está


enfrentando esses mesmos desafios. Para solucionar essas questões e melhorar
suas operações, a organização decidiu criar um Sistema de Gerenciamento de
Estoque. O sistema proposto busca oferecer uma solução integrada e eficaz para o
controle dos produtos, abrangendo desde o cadastro até o monitoramento da
localização nos depósitos.

O objetivo deste Projeto Integrado de Análise e Desenvolvimento de Sistemas


é desenvolver uma solução robusta e eficiente, capaz de não apenas resolver os
problemas atuais da empresa, mas também preparar o negócio para um
crescimento sustentável e escalável. Utilizando uma abordagem metodológica bem
definida e aplicando boas práticas de desenvolvimento de software, o sistema de
gerenciamento de estoque será uma ferramenta fundamental para otimizar as
operações logísticas, proporcionando uma gestão mais precisa e eficiente dos
estoques.
4

2 DESENVOLVIMENTO

2.1 PASSO 1

Sprint 1: Planejamento e Definição de requisitos.


Objetivo: Definir requisitos e planejar o desenvolvimento do sistemas, duração
2 semanas.

Figura 1: Foto do autor.


5

Sprint 2:

Figura 2: Foto do autor.

Sprint 3: Desenvolvimento do cadastro de produtos.


Objetivo: Implementar o módulo de cadastro de produtos, duração 3
semanas.

Figura 3: Foto do autor.


6

Sprint 4: Desenvolvimento da Atualização de estoque.


Objetivo: Implementar o módulo de atualização de estoque, duração 3
semanas.

Figura 4: Foto do autor.

Sprint 5: Desenvolvimento do rastreamento de localização.


Objetivo: Implementar o módulo de rastreamento de localização de produtos,
duração 3 semanas.
7

Figura 5: Foto do autor.

Sprint 6: Desenvolvimento de Relatórios.


Objetivo: Implementar o módulo de geração de reatórios, duração 3 semanas.
8

Figura 6: Foto do autor.

Sprint 7:Testes Finais e Deploy.


Objetivo: Realizar testes finais e implantar o sisitema, duração 2 semanas.

Figura 7: Foto do autor.


9

2.2 PASSO 2

Foi definido as variáveis booleanas para os requisitos:


P - Cadastro de produtos.
E - Atualização de estoque.
L - Rastreamento de localização
R – Relatórios.

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 logica que representa a solução completa ( todos os requisitos
atendidos) é: P/\E/\L/\R.
A Operação lógica E (AND) é representada por ‘‘/\’’. Conforme a tabela:

Tabela verdade - fonte autor.

Interpretação:

P (Produtos): Verdadeiro (V) se o sistema permite a inclusão de novos itens


de produtos.
E (Estoque): Verdadeiro (V) se o sistema possibilita a atualização das
10

quantidades de produtos disponíveis.


L (Localização): Verdadeiro (V) se o sistema oferece a função de rastrear a
posição dos produtos.
R (Relatórios): Verdadeiro (V) se o sistema permite a geração de relatórios
sobre o status do inventário.

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
11

self.id_produto = id_produto
self.tipo = tipo # 'entrada' ou 'saida'
self.quantidade = quantidade
self.data = data

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
12

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 < quantidade:
raise ValueError("Quantidade insuficiente em estoque.")

if tipo == 'entrada':
produto.quantidade += quantidade
elif tipo == 'saida':
produto.quantidade -= quantidade

movimentacao = Movimentacao(id_movimentacao_counter,
id_produto, tipo, quantidade, data)
movimentacoes.append(movimentacao)
id_movimentacao_counter += 1
return movimentacao
13

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
}) 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,
14

'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

relatorio_estoque = gerar_relatorio_estoque()
relatorio_movimentacoes = gerar_relatorio_movimentacoes()
print(relatorio_estoque)
print(relatorio_movimentacoes)
15

2.4 PASSO 4

Descrição dos Papéis

Estoquista: Responsável por registrar a entrada de mercadorias e verificar a


nota fiscal de recebimento.
Usuário: Encarregado de gerar relatórios semanais sobre a posição do
estoque e solicitar a compra de produtos.
Gerente de Setor: Responsável por aprovar a compra de produtos solicitada
pelo Usuário.

Descrição dos Casos de Uso

Registrar Entrada de Produtos: O Estoquista lança a entrada de novos


produtos no sistema.
Validar Nota Fiscal: O Estoquista verifica a validade da nota fiscal dos
produtos recebidos no estoque.
Emitir Relatório Semanal de Estoque: O Usuário gera relatórios periódicos
que indicam a situação do estoque.
Solicitar Compra de Produtos: O Usuário faz o pedido de reposição de
produtos no estoque.
Autorizar Compra de Produtos: O Gerente de Setor aprova a solicitação de
compra feita pelo Usuário.
Consolidação de Pedidos: Processo automatizado que reúne as solicitações
de compra e emite os pedidos ao fornecedor.

Detalhamento dos Casos de Uso


16

-Registrar Entrada de Produtos:


Ator: Estoquista
Descrição: O Estoquista lança no sistema a entrada de novos produtos,
informando quantidade, data e fornecedor.
Precondições: O produto precisa estar cadastrado no sistema.
Pós-condições: A quantidade do produto no estoque é atualizada no
sistema.

-Validar Nota Fiscal


Ator: Estoquista
Descrição: O Estoquista confere e valida a nota fiscal dos produtos
recebidos.
Precondições: A nota fiscal deve estar disponível.
Pós-condições: A entrada dos produtos é confirmada e registrada no
sistema.

-Emitir Relatório Semanal de Estoque


Ator: Usuário
Descrição: O Usuário gera um relatório semanal com informações sobre o
estado do estoque, incluindo movimentações e quantidades.
Precondições: Os produtos precisam estar cadastrados e todas as
movimentações devem ter sido registradas.
Pós-condições: O relatório é gerado e fica disponível para análise.

-Solicitar Compra de Produtos


Ator: Usuário
Descrição: O Usuário faz a solicitação de compra para repor produtos no
estoque.
Precondições: O produto precisa estar previamente cadastrado no sistema.
Pós-condições: A solicitação de compra é registrada e enviada para o
processo de consolidação.

-Autorizar Compra de Produtos


Ator: Gerente de Setor
17

Descrição: O Gerente de Setor aprova a solicitação de compra enviada pelo


Usuário.
Precondições: A solicitação de compra deve estar registrada no sistema.
Pós-condições: A compra é aprovada e o pedido é encaminhado ao
fornecedor.

-Consolidação de Pedidos
Ator: Sistema (Processo Automático)
Descrição: O sistema realiza a consolidação das solicitações de compra e
emite os pedidos para o fornecedor.
Precondições: As solicitações de compra precisam estar registradas no
sistema.
Pós-condições: O pedido consolidado é enviado para o fornecedor.

Figura Diagrama:
18

Fonte autor.
19

3 CONCLUSÃO

O desenvolvimento de um sistema de gerenciamento de estoque para uma


empresa de comércio eletrônico em rápida expansão destacou a relevância de uma
abordagem estruturada e integrada em análise e desenvolvimento de sistemas. A
implementação do sistema foi projetada para solucionar problemas críticos, como
falta de produtos, excesso de estoque e dificuldades na rastreabilidade dos itens
armazenados. Através de uma análise minuciosa dos requisitos e da adoção de
metodologias ágeis, o projeto conseguiu satisfazer as necessidades da empresa de
maneira eficiente.

Ao longo do desenvolvimento, foram enfrentados diversos obstáculos, como a


definição precisa dos requisitos, a adaptação a mudanças nas demandas e a
integração de diferentes módulos do sistema. A adoção de metodologias ágeis,
como o Scrum, permitiu a gestão eficaz desses desafios, assegurando entregas
contínuas e incrementais que atenderam às expectativas da empresa.

Com isso, o projeto de análise e desenvolvimento de sistemas para o


gerenciamento de estoque não apenas alcançou os requisitos iniciais, mas também
criou uma base robusta para o futuro crescimento e sucesso da empresa, mesmo
sendo um exemplo fictício. A aplicação prática de conceitos teóricos e metodologias
ágeis comprovou a eficiência de uma abordagem colaborativa e interdisciplinar para
resolver problemas complexos.
20

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.

TRELLO, https://trello.com/b/zCsaYAKw/desenvolvimento-de-sistemas-de-
gerenciamento-de-estoque-gideone

Você também pode gostar