Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

left-side-bubbles-backgroundright-side-bubbles-background

Experimente o Premium!star struck emoji

Acesse conteúdos dessa e de diversas outras disciplinas.

Libere conteúdos
sem pagar

Ajude estudantes e ganhe conteúdos liberados!

Prévia do material em texto

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 
LUCAS SILVA DANTAS 
 
 
 
 
 
 
 
 
 
 
 
PROJETO INTEGRADO 
RA: 3892016401 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Campina Grande 
2024 
2 
 
SUMÁRIO 
 
1. INTRODUÇÃO ....................................................................................................... 3 
2. MÉTODOS E RESULTADOS ................................................................................ 4 
2.1 PASSO 1 – QUADRO KANBAN ........................................................................... 4 
2.2 PASSO 2 – TABELA VERDADE .......................................................................... 5 
2.3 PASSO 3 – CÓDIGO ........................................................................................... 6 
2.4 PASSO 4 – DIAGRAMA DE CASO DE USO ..................................................... 11 
3. CONCLUSÃO ...................................................................................................... 12 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3 
 
1. INTRODUÇÃO 
 
A gestão de estoque é um ponto crucial dentro de qualquer empresa, pois, 
fisicamente, é muito difícil realizar esse controle de produtos (disponibilidade, 
quantidade, localização, etc), por esse motivo, o Sistema de Gerenciamento de 
Estoque é essencial para manter a organização dentro da empresa, para isso, o 
Sistema deve ter alguns requisitos: 
Cadastro de Produtos: O sistema deve permitir o cadastro de novos 
produtos, incluindo informações detalhadas como nome, categoria, quantidade em 
estoque, preço e localização no depósito. 
Atualização de Estoque: O sistema deve permitir a atualização precisa da 
quantidade de produtos em estoque. A atualização em tempo real é crucial para 
manter o controle exato do inventário. 
Rastreamento de Localização: O sistema deve possibilitar o rastreamento 
da localização dos produtos dentro dos depósitos. 
Relatórios: O sistema deve gerar relatórios detalhados sobre o estado do 
estoque. Relatórios informativos são essenciais para a tomada de decisões 
estratégicas. 
Para ajuda no desenvolvimento desse Sistema, também foi realizada a 
criação de uma Tabela Verdade, que ajudará a observar as combinações de valores 
(True e False) para as variáveis booleanas da situação problema e a criação de um 
Diagrama de Caso de Uso para representar visualmente a interação do usuário com 
o sistema e os principais casos de uso. 
 
 
 
 
 
 
 
 
 
 
4 
 
2. MÉTODOS E RESULTADOS 
 
2.1 PASSO 1 – QUADRO KANBAN 
 
Para ajudar a organizar o passo a passo da criação do Sistema, irá ser 
utilizada o método Scrum, que é um framework de gerenciamento, utilizado pelas 
equipes para auto-organização e trabalho conjunto. Ele é composto por um conjunto 
de reuniões, ferramentas e funções, focados em realizar uma entrega eficiente dos 
projetos propostos as equipes. Para uma visualização de forma visual desse método, 
irá ser utilizado o Trello, que é uma ferramenta de gestão de projetos, permitindo uma 
organização de atividades pessoais. 
O quadro Kanban ficará dessa forma: 
 
 
 
 
 
 
 
 
 
5 
 
2.2 PASSO 2 – TABELA VERDADE 
 
Foi definido 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). 
A coluna “Solução Completa” somente será verdadeira se todas as variáveis 
(P, E, L, R) forem verdadeiras, ou seja, quando todos os requisitos forem atendidos. 
Essa situação é representada pela expressão lógica “E” (AND) que é representada 
pelo símbolo “Λ”, ficando da seguinte forma: P Λ E Λ L Λ R. 
A tabela verdade fica da seguinte forma: 
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 
T 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 
 
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. 
6 
 
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 – CÓDIGO 
 
O código ele deve conter as funções básicas se o cliente pediu para o seu 
Sistema, Cadastro de Produtos, Atualização de Estoque, Rastreamento de 
Localização, Relatórios. 
Para uma melhor explicação, foi colocado uma # (função para adicionar 
comentários aos códigos), além disso, foi criado um design visual ao código através 
da biblioteca tkinter, e para salvar as atualizações do código mesmo após o mesmo 
fechar, foi utilizada a biblioteca json, o código foi rodado no software VS Code pois 
tem suporte a visualizações gráficas. 
O código fica da seguinte forma: 
 
import tkinter as tk 
from tkinter import messagebox 
from tkinter import ttk 
import json 
import os 
 
# Listas para armazenar dados 
produtos = [] 
categoria = [] 
movimentacoes = [] 
arquivo_produtos = "produtos.json" 
 
# Função para salvar os produtos no arquivo JSON 
7 
 
def salvar_produtos(): 
 with open(arquivo_produtos, "w") as f: 
 json.dump(produtos, f) 
 
# Função para carregar os produtos do arquivo JSON 
def carregar_produtos(): 
 global produtos 
 if os.path.exists(arquivo_produtos): 
 with open(arquivo_produtos, "r") as f: 
 produtos = json.load(f) 
 
# Função para cadastrar um novo produto 
def cadProduto(id_produto, nome, categoria, quantidade, preco, localizacao): 
 novo_produto = { 
 'id_produto': id_produto, 
 'nome': nome, 
 'categoria': categoria, 
 'quantidade': quantidade, 
 'preco': preco, 
 'localizacao': localizacao 
 } 
 produtos.append(novo_produto) 
 salvar_produtos() # Salvar após cadastrar o produto 
 messagebox.showinfo("Sucesso", "Produto cadastrado com sucesso") 
 
# Função para pegar dados da interface e chamar cadProduto 
def cadastrar(): 
 try: 
 id_produto = int(entry_id.get()) 
 nome = entry_nome.get() 
 categoria = entry_categoria.get() 
 quantidade = int(entry_quantidade.get()) 
 preco = float(entry_preco.get()) 
8 
 
 localizacao = entry_localizacao.get() 
 
 cadProduto(id_produto, nome, categoria, quantidade, preco, localizacao) 
 
 # Limpar campos após cadastro 
 entry_id.delete(0, tk.END) 
 entry_nome.delete(0, tk.END) 
 entry_categoria.delete(0, tk.END) 
 entry_quantidade.delete(0, tk.END) 
 entry_preco.delete(0, tk.END) 
 entry_localizacao.delete(0, tk.END) 
 
 except ValueError: 
 messagebox.showerror("Erro", "Por favor, insira valores válidos.") 
 
# Função para exibir os produtos cadastrados em uma tabela 
def ver_produtos(): 
 # Cria uma nova janela para exibir os produtos 
 janela_produtos = tk.Toplevel(app) 
 janela_produtos.title("Produtos Cadastrados") 
 janela_produtos.geometry("600x400") 
 
 # Cria a estrutura Treeview (tabela) para mostrar os produtos 
 colunas = ("ID", "Nome", "Categoria", "Quantidade", "Preço", "Localização") 
 tree = ttk.Treeview(janela_produtos, columns=colunas, show="headings") 
 
 # Definindo os cabeçalhos das colunas 
 tree.heading("ID", text="ID") 
 tree.heading("Nome", text="Nome") 
 tree.heading("Categoria", text="Categoria") 
 tree.heading("Quantidade", text="Quantidade") 
 tree.heading("Preço", text="Preço") 
 tree.heading("Localização",text="Localização") 
9 
 
 
 # Definindo o tamanho das colunas 
 tree.column("ID", width=50, anchor="center") 
 tree.column("Nome", width=100, anchor="center") 
 tree.column("Categoria", width=100, anchor="center") 
 tree.column("Quantidade", width=80, anchor="center") 
 tree.column("Preço", width=80, anchor="center") 
 tree.column("Localização", width=120, anchor="center") 
 
 # Inserindo os produtos na Treeview 
 for produto in produtos: 
 tree.insert("", "end", values=(produto["id_produto"], produto["nome"], 
produto["categoria"], produto["quantidade"], produto["preco"], produto["localizacao"])) 
 
 tree.pack(expand=True, fill="both") 
 
# Carregar produtos ao iniciar o programa 
carregar_produtos() 
 
# Criando a interface principal 
app = tk.Tk() 
app.title("Cadastro de Produto") 
app.geometry("400x400") 
 
# Labels e entradas de dados 
tk.Label(app, text="ID do Produto:").grid(row=0, column=0, padx=10, 
pady=10) 
entry_id = tk.Entry(app) 
entry_id.grid(row=0, column=1, padx=10, pady=10) 
 
tk.Label(app, text="Nome:").grid(row=1, column=0, padx=10, pady=10) 
entry_nome = tk.Entry(app) 
entry_nome.grid(row=1, column=1, padx=10, pady=10) 
10 
 
 
tk.Label(app, text="Categoria:").grid(row=2, column=0, padx=10, pady=10) 
entry_categoria = tk.Entry(app) 
entry_categoria.grid(row=2, column=1, padx=10, pady=10) 
 
tk.Label(app, text="Quantidade:").grid(row=3, column=0, padx=10, pady=10) 
entry_quantidade = tk.Entry(app) 
entry_quantidade.grid(row=3, column=1, padx=10, pady=10) 
11 
 
 
2.4 PASSO 4 – DIAGRAMA DE CASO DE USO 
 
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 irá validar 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. 
12 
 
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. 
 Diante disso, o Diagrama do Sistema ficará da seguinte forma: 
 
3. CONCLUSÃO 
 
Finalizando o projeto do Sistema de Gerenciamento de Estoque, concluiu-se 
o quão é importante realizar a junção de todo o aprendizado acumulado até esse 
momento do curso, o quadro Kanban ajuda a organização do projeto logo em suas 
fases preliminares, visto que, com uma visualização das tarefas que serão realizadas, 
pode distribuir as tarefas de uma forma mais tranquila para toda a equipe. 
A construção da tabela verdade por sua vez, ajuda na construção de 
visualizara as possíveis probabilidades do programa, e quais as funcionalidades 
13 
 
deverá se implementar nele para que ele cumpra seu objetivo dentro da empresa 
contratante. Justamente por isso se viu a importância de se implementar junto ao 
código uma interface gráfica para facilitar a usabilidade do programa. 
Por fim, o diagrama de caso de uso ajuda ao profissional responsável pelo 
projeto a observar como os atores irão se comportar diante do software. 
Desta forma, o projeto integrado de análise e desenvolvimento de sistemas 
para o gerenciamento de estoque não só atendeu aos requisitos básicos requisitados, 
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. Além disso, deixou a possibilidade de futuras 
mudanças que implementem mais funcionalidades, além de melhorar as 
funcionalidades já existentes.

Mais conteúdos dessa disciplina