Prévia do material em texto
3
3
ANALISE E DESENVOLVIMENTO DE SISTEMAS
Gabriel Amorim de Morais
PROJETO INTEGRADOINOVAÇÃO - ADS
Carmo do Rio Claro MG
2024
GABRIEL AMORIM DE MORAIS
PROJETO INTEGRADOINOVAÇÃO - ADS
Trabalho de portfólio apresentado como requisito parcial para a obtenção de média semestral.
Orientador: Prof. Dorival Magro Junior
SUMÁRIO
1 INTRODUÇÃO 3
2 DESENVOLVIMENTO 4
2.1 Tarefa 1 4
2.2 Tarefa 2 4
2.3 Tarefa 3 5
2.4 Tarefa 4 5
3 CONCLUSÃO 6
REFERÊNCIAS 7
1 INTRODUÇÃO
Nos últimos anos, a gestão de estoques tem enfrentado desafios consideráveis devido ao rápido crescimento do comércio eletrônico. Numerosas empresas têm problemas para gerir a disponibilidade de produtos, levando à escassez de itens populares, acúmulo excessivo de produtos não comercializados e ineficiências logísticas. Para aprimorar essas atividades, é crucial estabelecer um sistema sólido de gestão de estoque, que possibilite uma visão nítida e exata do estado dos produtos, auxiliando na tomada de decisões estratégicas.
Este projeto tem como objetivo criar um sistema de gestão de estoque para uma empresa de comércio eletrônico em expansão acelerada. Este sistema será desenvolvido para cumprir exigências essenciais, tais como registro de produtos, atualização de inventário, monitoramento de localização e produção de relatórios minuciosos. A Com a implementação de metodologias ágeis, como Scrum, o projeto será segmentado em sprints, possibilitando um progresso incremental e a constante adaptação às necessidades da organização, garantindo a entrega de uma solução eficiente e em sintonia com as exigências do mercado.
2 DESENVOLVIMENTO
Para a criação do sistema de controle de estoque, adotaremos uma metodologia modular que possibilita a adição gradual de funcionalidades vitais. O primeiro passo consiste em desenvolver uma interface intuitiva para o registro de produtos, na qual dados como nome, categoria, quantidade, preço e localização no armazém possam ser inseridos de maneira simples. Esta será incorporada a um banco de dados, assegurando que todos os dados sejam guardados de maneira segura. Adicionalmente, o sistema terá recursos para atualização do inventário, possibilitando que as entradas e saídas de produtos sejam documentadas em tempo real, reduzindo falhas e simplificando a administração dos itens em estoque.
A implementação de ferramentas de rastreamento de localização e a produção de relatórios serão outros elementos fundamentais do projeto. O rastreamento possibilitará aos usuários identificar rapidamente o local de armazenamento de cada produto, aprimorando a eficácia logística e diminuindo o tempo despendido na procura de itens específicos. Em relação aos relatórios, o sistema oferecerá percepções úteis sobre a situação do inventário, ressaltando produtos com baixa rotatividade ou excesso de inventário, auxiliando a equipe a fazer escolhas conscientes sobre aquisições e promoções. Com essas características, buscamos não só resolver as dificuldades presentes da companhia, mas também estabelecer um alicerce robusto para um desenvolvimento sustentável no futuro.
2. 1. Tabela Verdade
Variáveis Booleanas:
P: Cadastro de Produtos
E: Atualização de Estoque
L: Rastreamento de Localização
R: Relatórios
P
E
L
R
Solução Completa
T
T
T
T
T
T
T
T
F
F
T
T
F
T
F
T
F
T
T
F
F
T
T
T
F
T
F
F
F
F
F
F
F
F
F
F
T
T
F
F
Expressão Lógica: 𝑃∧𝐸∧𝐿∧𝑅P∧E∧L∧R
3 Definição de Estruturas de Dados
class Produto:
def __init__(self, id_produto, nome, categoria, preco, quantidade):
self.id_produto = id_produto
self.nome = nome
self.categoria = categoria
self.preco = preco
self.quantidade = quantidade
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 "saída"
self.quantidade = quantidade
self.data = data
2. 1. Algoritmos de Cadastro e Consulta
class SistemaEstoque:
def __init__(self):
self.produtos = {}
self.movimentacoes = []
self.id_produto_atual = 1
self.id_movimentacao_atual = 1
def cadastrar_produto(self, nome, categoria, preco, quantidade):
novo_produto = Produto(self.id_produto_atual, nome, categoria, preco, quantidade)
self.produtos[self.id_produto_atual] = novo_produto
self.id_produto_atual += 1
print(f"Produto {nome} cadastrado com sucesso.")
def consultar_produto(self, id_produto):
produto = self.produtos.get(id_produto)
if produto:
return vars(produto)
return "Produto não encontrado."
3. 2. Algoritmos de Movimentação
def registrar_movimentacao(self, id_produto, tipo, quantidade, data):
if id_produto not in self.produtos:
return "Produto não encontrado."
produto = self.produtos[id_produto]
if tipo == "entrada":
produto.quantidade += quantidade
elif tipo == "saída":
if produto.quantidade >= quantidade:
produto.quantidade -= quantidade
else:
return "Estoque insuficiente."
else:
return "Tipo de movimentação inválido."
nova_movimentacao = Movimentacao(self.id_movimentacao_atual, id_produto, tipo, quantidade, data)
self.movimentacoes.append(nova_movimentacao)
self.id_movimentacao_atual += 1
return "Movimentação registrada com sucesso."
3. 3. Relatórios e Consultas
def gerar_relatorio(self):
relatorio = []
for id_produto, produto in self.produtos.items():
relatorio.append({
"id": id_produto,
"nome": produto.nome,
"categoria": produto.categoria,
"preco": produto.preco,
"quantidade": produto.quantidade
})
return relatorio
def consultar_historico(self):
return [vars(mov) for mov in self.movimentacoes]
3. 5. Exemplo
sistema = SistemaEstoque()
sistema.cadastrar_produto("Produto A", "Categoria 1", 10.0, 100)
sistema.cadastrar_produto("Produto B", "Categoria 2", 20.0, 50)
print(sistema.consultar_produto(1))
sistema.registrar_movimentacao(1, "entrada", 20, "2023-10-01")
sistema.registrar_movimentacao(1, "saída", 10, "2023-10-02")
print(sistema.gerar_relatorio())
print(sistema.consultar_historico())
4. Conclusão
Resultados Alcançados:
A tarefa sugerida para a criação do Sistema de Gestão de Estoque foi crucial para compreender e implementar os princípios do gerenciamento ágil com Scrum, além de aprimorar competências em lógica, programação e design de sistemas.
Planejamento e Organização: O uso do quadro no Trello possibilitou um planejamento eficiente das tarefas, simplificando a visualização do avanço e a detecção de barreiras durante o processo de desenvolvimento. A metodologia ágil fomentou um espaço de trabalho colaborativo e flexível, no qual as prioridades podiam ser modificadas conforme a necessidade.
Definição Clara de Requisitos: A elaboração da tabela verdade proporcionou uma compreensão mais profunda dos requisitos do sistema, ajudando a identificar as combinações necessárias para a funcionalidade completa. Isso garantiu que todos os aspectos essenciais do sistema fossem considerados e implementados.
Aplicação Prática: As estruturas de dados e algoritmos criados proporcionam um alicerce robusto para a gestão de produtos e movimentações de inventário. A experiência com codificação e testes destacou a relevância de um design sólido e eficaz, além de preparar o caminho para futuras expansões e aprimoramentos no sistema.
Visualização da Interação do Usuário: O diagrama de casos de usodestacou a importância de considerar diferentes tipos de usuários e suas interações com o sistema. Isso é crucial para garantir que o sistema atenda às necessidades reais dos usuários e para melhorar a experiência geral.
Desafios e Lições: Durante o processo de desenvolvimento, surgiram obstáculos ligados à lógica de gestão de estoque e à integração das funções. Contudo, essas barreiras foram ultrapassadas através de testes e iterações, consolidando a noção de que a prática e a constante revisão são fundamentais para o êxito de qualquer projeto.
Possibilidades Futuras: Nas próximas fases, é crucial prosseguir aprimorando o sistema, incorporando recursos extras como relatórios sofisticados e uma interface de usuário simplificada. Ademais, é crucial recolher opiniões de usuários reais para assegurar que o sistema corresponda totalmente às suas demandas.
Em resumo, esta tarefa não só ofereceu uma aprendizagem valiosa sobre desenvolvimento de software, como também destacou a relevância da cooperação, organização e adaptação em projetos de grande complexidade.
REFERÊNCIAS
Título: "Designing Data-Intensive Applications"
Autor: Martin Kleppmann
Ano: 2017
Editora: O'Reilly Media
Explora como projetar sistemas que gerenciam dados de forma eficaz, útil para o desenvolvimento de aplicações robustas.
COORDENAÇÃO DE APERFEIÇOAMENTO DE PESSOAL DE NIVEL
SUPERIOR(CAPES). Orientação Capes: Combate ao plagio 2011. Disponível em https://www.capes.gov.br/images/stories/download/diversos/OrientacoesCapes_Com bateAoPlagio.pdf - Acesso em 22/08/2019
DEMO, Pedro. Metodologia do conhecimento científico. São Paulo: Atlas, 1999.
______. Pesquisa: princípio científico e educativo. 6. ed. São Paulo: Cortez, 2000.
UNIVERSIDADE FEDERAL DO PARANÁ. Biblioteca Central. Normas para apresentação de trabalhos. 2. ed. Curitiba: UFPR, 1992. v. 2.
image3.png
image1.jpg