Prévia do material em texto
18 curso: análise e desenvolvimento de sistemas ALUNO: Paulo Sérgio Yuri dos Santos RA: 4465449101 PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA DISCIPLINA: PROJETO INTEGRADO INOVAÇÃO - ADS Rio de Janeiro / RJ 2024 Paulo Sergio Yuri dos Santos RA 4465449101 PORTFÓLIO – RELATÓRIO DE AULA PRÁTICA DISCIPLINA: PROJETO INTEGRADO INOVAÇÃO - ADS Trabalho de portfólio apresentado como requisito parcial para a obtenção de pontos para a média semestral. Orientador: Ricardo Hiroshi J. Suzuki Rio de Janeiro Sumário Digite o título do capítulo (nível 1) 1 Digite o título do capítulo (nível 2) 2 Digite o título do capítulo (nível 3) 3 Digite o título do capítulo (nível 1) 4 Digite o título do capítulo (nível 2) 5 Digite o título do capítulo (nível 3) 6 eiro / RJ 2024 jenewbewoefbofbfuoebow Sumário 1 INTRODUÇÃO 4 2 DESENVOLVIMENTO 5 2.1 Criação de Quadro Scrum no Trello 5 2.2 Criação da Tabela Verdade em Lógica e Matemática 7 2.3 Criação de Funções e Algoritmos 9 2.4 Criação do Diagrama de Casos de Uso 14 3 CONCLUSÃO 17 4 REFERÊNCIAS 18 INTRODUÇÃO O presente trabalho tem como objetivo desenvolver um sistema de gerenciamento de estoque para uma empresa de comércio eletrônico em rápido crescimento, utilizando abordagens baseadas em lógica, metodologias ágeis e modelagem de sistemas. O projeto abrange desde a definição do problema até a implementação de soluções práticas, sendo um estudo que engloba diversas etapas, cada uma com seu foco e técnica específica. O desafio inicial consistia em criar um sistema que resolvesse problemas comuns de gestão de estoque, como falta de produtos, excesso de mercadorias e a dificuldade em rastrear itens no depósito. A empresa precisava de uma solução que permitisse o cadastro de produtos, atualização do estoque, rastreamento da localização dos produtos e a geração de relatórios para facilitar o processo de tomada de decisão. DESENVOLVIMENTO Criação de Quadro Scrum no Trello Com base nos princípios da metodologia ágil Scrum, foi criado um quadro no Trello para organizar e acompanhar o progresso do desenvolvimento. O quadro foi dividido em quatro listas principais: backlog, sprint atual, em andamento e concluído. O projeto foi subdividido em três sprints de 2 semanas cada, com objetivos específicos: · Sprint 1: Implementação do cadastro de produtos e atualização de estoque. · Sprint 2: Desenvolvimento da funcionalidade de rastreamento de localização. · Sprint 3: Geração de relatórios e ajustes finais. Cada tarefa foi gerida dentro das sprints, e foram feitas movimentações conforme o progresso, permitindo uma visualização clara das etapas do desenvolvimento. Relatório ao Final de Cada Sprint Relatório Sprint 1: · Progresso: Todas as funcionalidades relacionadas ao cadastro de produtos foram desenvolvidas com sucesso. O sistema agora permite adicionar novos produtos com validação de dados. · Desafios: Encontramos dificuldades iniciais ao configurar a estrutura do banco de dados, o que atrasou ligeiramente o início da implementação. A equipa conseguiu ultrapassar os desafios com sessões de brainstorming. · O que funcionou bem: Colaboração eficaz entre os desenvolvedores na implementação da interface de usuário. · O que melhorar: Planejar melhor as dependências entre as tarefas para evitar bloqueios no futuro. Relatório Sprint 2: · Progresso: Implementamos com sucesso a funcionalidade de rastreamento de produtos nos depósitos e a atualização de estoque. O sistema agora rastreia e localiza produtos conforme necessário. · Desafios: A integração com o banco de dados para o rastreamento de localização exigiu mais tempo do que o esperado devido à complexidade de otimizar o desempenho. · O que funcionou bem: Melhoria significativa na comunicação entre a equipa para resolver os desafios de integração. · O que melhorar: Revisar o código com mais frequência para identificar problemas mais cedo. Relatório Sprint 3: · Progresso: A funcionalidade de geração de relatórios foi concluída com sucesso. O sistema está completamente funcional, e os relatórios fornecem insights sobre o estado do estoque. · Desafios: Pequenos bugs foram identificados durante os testes de integração final, mas foram corrigidos antes do prazo. · O que funcionou bem: O sistema de gestão de tempo e as iterações anteriores ajudaram a manter o foco e a evitar retrabalho. · O que melhorar: Melhorar a automação dos testes para futuras manutenções. Criação da Tabela Verdade em Lógica e Matemática Para formalizar o comportamento do sistema, será desenvolvida uma tabela verdade utilizando variáveis booleanas para os principais requisitos: · P: Cadastro de Produtos. · E: Atualização de Estoque. · L: Rastreamento de Localização. · R: Relatórios. A tabela demonstra todas as combinações possíveis entre essas variáveis e se o sistema atende a todos os requisitos, sendo verdadeira somente quando todos os requisitos forem atendidos simultaneamente, representado pela expressão lógica: P ∧ E ∧ L ∧ R. Esta etapa assegura que o sistema cumpre as funcionalidades principais de forma lógica. Tabela Verdade para o Sistema de Gerenciamento de Estoque Definimos as seguintes variáveis booleanas que representam os principais requisitos do sistema de gerenciamento de estoque: · 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 tabela verdade mostra todas as combinações possíveis dos valores das variáveis booleanas e determina se a solução completa foi atendida, ou seja, se P, E, L e R são todos verdadeiros, representado pela coluna "Solução Completa". A expressão lógica que representa a solução completa é: Solução completa = P ∧ E ∧ L ∧ R Onde ∧ é a operação lógica AND, que resulta em verdadeiro apenas quando todas as variáveis são verdadeiras. Tabela Verdade P (Produtos) E (Estoque) L (Localização) R (Relatórios) Solução Completa (P ∧ E ∧ L ∧ R) 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 Interpretação: · A solução completa é verdadeira (T) apenas quando P, E, L, e R são todos verdadeiros, ou seja, quando o sistema atende a todos os requisitos: cadastro de produtos, atualização de estoque, rastreamento de localização e geração de relatórios. · Em qualquer outro caso, quando um ou mais requisitos não são atendidos, a solução não é completa, resultando em falso (F). Essa tabela ajuda a visualizar todas as combinações possíveis de funcionalidades e determinar se o sistema está completamente funcional de acordo com os requisitos definidos. Criação de Funções e Algoritmos Nesta fase, definimos as estruturas de dados necessárias para armazenar produtos, categorias e movimentações. Posteriormente, temos a implementação das funções e algoritmos que compõem o sistema, como: · Cadastro de Produtos: Função que permite o registo de novos produtos com atributos como nome, categoria, quantidade, preço e localização no depósito. · Movimentação de Estoque: Função que registra entradas e saídas de produtos, atualizando o estoque automaticamente. · Relatórios e Consultas: Funções que geram relatórios sobre o estado do estoque (ex. produtos com estoque baixo) e o histórico de movimentações, permitindo uma análise mais precisa da situação do inventário. Essas funções são implementadas com base na necessidade da empresa de automatizar e otimizar a gestão de seu estoque. Definição de Estruturas de Dados Vamos utilizar uma abordagem baseada em dicionários e listas, que são estruturas de dados comuns emlinguagens como Python. As principais entidades serão: Produto, Categoria e Movimentação. Estrutura para Produto Cada produto terá os seguintes atributos: · ID: Identificador único do produto. · Nome: Nome do produto. · Categoria: Categoria do produto. · Quantidade: Quantidade disponível em estoque. · Preço: Preço do produto. · Localização: Localização do produto no depósito. Estrutura para Categoria: Uma categoria agrupa vários produtos e pode ter um ID (Identificador da categoria) e um nome da categoria. Estrutura para Movimentação: Cada movimentação registra uma entrada ou saída de produtos no estoque. · ID: Identificador da movimentação. · Produto: Referência ao produto movimentado. · Tipo: Entrada ou saída. · Quantidade: Quantidade movimentada. · Data: Data da movimentação. Algoritmos de Cadastro e Consulta Devem ser criadas funções para cadastro e consulta de produto, as duas funções permitem adicionar novos produtos ao sistema, assim como consultar informações de um produto pelo seu ID. Algoritmos de Movimentação de estoque Para registrar movimentação, a função atualiza a quantidade de um produto no estoque e registra a movimentação (definido com entrada ou saída). Relatórios e Consultas É necessário criar uma função que gera um relatório dos produtos com estoque abaixo de um limite definido, assim como também é preciso criar uma função para consultar o histórico de movimentações de um determinado produto. Relatório de Estoque Baixo Relatório de Movimentações Abaixo temos um exemplo de como essas funções podem ser utilizadas Com essas estruturas e algoritmos, temos um sistema básico que permite cadastrar e consultar produtos no estoque; registrar entradas e saídas de produtos, atualizando automaticamente o estoque; gerar relatórios que ajudam na gestão, como alertas de produtos com estoque baixo e histórico de movimentações. Essas funcionalidades podem ser expandidas e personalizadas conforme as necessidades da empresa de comércio eletrônico. Criação do Diagrama de Casos de Uso O diagrama de casos de uso ilustra a interação entre os três tipos de usuários do sistema de gerenciamento de estoque: Estoquista, Usuário e Gerente de Setor, e as funcionalidades que cada um pode aceder. Vamos detalhar as responsabilidades e as interações. Atores: · Estoquista: Responsável por registrar a entrada de produtos e validar a nota fiscal. · Usuário: Emite relatórios semanais e solicita compras de produtos. · Gerente de Setor: Autoriza as compras solicitadas pelos usuários. Casos de Uso: · Registrar Entrada de Produtos: O estoquista registra a entrada dos produtos no sistema, após validar a nota fiscal. · Validar Nota Fiscal: O estoquista valida a nota fiscal antes de registrar a entrada dos produtos. · Emitir Relatório Semanal: O usuário pode emitir relatórios semanais sobre o status do estoque. · Solicitar Compra de Produtos: O usuário pode solicitar a compra de produtos ao identificar uma necessidade de reposição. · Consolidar Compras: O sistema consolida as solicitações de compras feitas pelos usuários. · Autorizar Compra de Produtos: O gerente de setor autoriza ou nega as solicitações de compra feitas pelo usuário. Descrição dos Casos de Uso: 1. Registrar Entrada de Produtos: · Ator: Estoquista · Descrição: O estoquista registra a entrada de novos produtos no sistema, após validar a nota fiscal. 2. Validar Nota Fiscal: · Ator: Estoquista · Descrição: O estoquista verifica a validade da nota fiscal antes de aceitar a entrada do produto no sistema. 3. Emitir Relatório Semanal: · Ator: Usuário · Descrição: O usuário emite relatórios semanais sobre a posição do estoque, que servem para a análise do estado dos produtos. 4. Solicitar Compra de Produtos: · Ator: Usuário · Descrição: Ao observar necessidade de reposição, o usuário solicita a compra de novos produtos. 5. Consolidar Compras: · Ator: Sistema · Descrição: O sistema recebe todas as solicitações de compra feitas pelos usuários e as consolida para uma análise centralizada. 6. Autorizar Compra de Produtos: · Ator: Gerente de Setor · Descrição: O gerente de setor revisa e autoriza (ou nega) as solicitações de compra consolidadas pelos usuários. Diagrama de casos de uso (descrição visual) O Estoquista realiza as funções relacionadas à entrada de produtos, validando notas fiscais e atualizando o estoque. O Usuário pode emitir relatórios semanais e solicitar compras, ações que necessitam da consolidação das compras. Por sua vez, o Gerente de Setor tem a função de autorizar as compras solicitadas, fechando o processo de aquisição de produtos. O diagrama mapeia as funcionalidades do sistema e mostra como cada ator interage com ele, destacando processos como a consolidação de compras e a autorização de pedidos, essenciais para a tomada de decisão e reposição de produtos. CONCLUSÃO Este trabalho apresenta um processo completo de desenvolvimento de um sistema de gerenciamento de estoque, desde a identificação e análise do problema, passando pela gestão ágil do projeto com Scrum, até a criação de funções e algoritmos que atendem às necessidades da empresa. A modelagem, tanto lógica (com a tabela verdade) quanto visual (com o diagrama), oferece uma visão clara e estruturada do sistema, garantindo que todas as funcionalidades sejam implementadas de forma eficiente e lógica. REFERÊNCIAS · Pressman, R. S., & Maxim, B. R. (2014). Software Engineering: A Practitioner's Approach. 8ª Edição, McGraw-Hill Education. · Schwaber, K., & Sutherland, J. (2020). The Scrum Guide. Scrum.org. · Booch, G., Rumbaugh, J., & Jacobson, I. (2005). The Unified Modeling Language User Guide. 2ª Edição, Addison-Wesley. · Knuth, D. E. (1997). The Art of Computer Programming, Volume 1: Fundamental Algorithms. 3ª Edição, Addison-Wesley. · Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms. 3ª Edição, MIT Press. · Larman, C. (2005). Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development. 3ª Edição, Prentice Hall. image1.png image2.png image3.png image4.png image5.png image6.png image7.png image8.png image9.png image10.png image11.png image12.jpg