Prévia do material em texto
UNOPAR - APUCARANA
Mauricio Marcos Montenegro Dos Reis Junior
RA 3834370202
SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA:
PROJETO INTEGRADO INOVAÇÃO - ANÁLISE E
DESENVOLVIMENTO DE SISTEMAS
PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA
Projeto Integrado Inovação - Análise e Desenvolvimento
de Sistemas
Mauricio Marcos Montenegro dos Reis Junior
RA 3834370202
2024
Manaus / AM
Trabalho de portfólio apresentado
como requisito parcial para a obtenção de pontos para a
média semestral.
2024
Manaus / Am
SUMÁRIO
1 INTRODUÇÃO ......................................................................................................... 3
2 DESENVOLVIMENTO .............................................. Erro! Indicador não definido.
3 CONCLUSÃO..........................................................................................................17
4 REFERENCIAS.......................................................................................................18
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 dos sistemas, duração
2 semanas.
Fonte: próprio autor
Sprint 2:
Fonte: próprio autor
5
Sprint 3: Desenvolvimento do cadastro de produtos.
Objetivo: Implementar o módulo de cadastro de produtos, duração 3 semanas.
Fonte: próprio autor
Sprint 4: Desenvolvimento da Atualização de estoque.
Objetivo: Implementar o módulo de atualização de estoque, duração 3 semanas.
Fonte: próprio autor
6
Sprint 5: Desenvolvimento do rastreamento de localização.
Objetivo: Implementar o módulo de rastreamento de localização de produtos, duração
3 semanas.
Fonte: próprio autor
Sprint 6: Desenvolvimento de Relatórios.
Objetivo: Implementar o módulo de geração de relatórios, duração 3 semanas.
Fonte: próprio autor
7
Sprint 7:Testes Finais e Deploy.
Objetivo: Realizar testes finais e implantar o sistema, duração 2
semanas.
Fonte: próprio autor
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:
8
Fonte: próprio 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 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:
9
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
Algoritmos de Cadastro e Consulta:
Funções para Cadastro de Produtos e Categorias:
produtos = {}
categorias = {}
movimentacoes = []
Id_produto_counter = 1
id_categoria_counter = 1
10
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
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.quantidadeid_produto, tipo, quantidade, data)
movimentacoes.append(movimentacao)
id_movimentacao_counter += 1
return movimentacao
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")
13
# 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)
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.
14
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
-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
15
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
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.
16
Figura do Fluxograma
Fonte: próprio autor
17
3 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.
18
4 REFERENCIAS
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