desenvolvimento de sistema de gestão de estoque

29
Desenvolvimento de sistema de gestão de estoque personalizado com o framework Laravel Renan de Oliveira 1 , Marcos Antonio Quinaia 2 , Cauê Ferro Gonzalez 3 1 Bacharelando em Ciência da Computação Departamento de Ciência da Computação Universidade Estadual do Centro-Oeste (UNICENTRO) 2 Docente (Orientador) Departamento de Ciência da Computação Universidade Estadual do Centro-Oeste (UNICENTRO) 3 Docente (Co-Orientador) Colegiado de Tecnologia em Análise e Desenolvimento de Sistemas Faculdade Guairacá [email protected], [email protected], [email protected] Abstract. This article describes the development of inventory management soft- ware for a telecommunications company whose stock is currently controlled th- rough spreadsheets. Through a survey of requirements, with the client, it was possible to make a software project that can be used via the Web, with respon- sive design to allow the use in mobile devices. The system contains the basic functions created to meet the current needs of the company. Several aspects are shown here: the need reported by the customer; the theoretical assumptions underlying the work; the materials, tools and methods used; the reporting of ex- perience in the course of the software development process; and also the results obtained; conclusions and indications of possible future work. Resumo. Este artigo descreve o desenvolvimento de um software de gestão de estoques para uma empresa de telecomunicações cujo estoque, atualmente, é controlado através de planilhas eletrônicas. Por meio de um levantamento de requisitos, junto ao cliente, foi possível fazer um projeto de software que pode ser utilizado via Web, com design responsivo para permitir a utilização em dis- positivos móveis. O sistema contém as funções básicas criadas para atender as necessidades atuais da empresa. São mostrados aqui diversos aspectos: a necessidade relatada pelo cliente; os pressupostos teóricos que embasam o tra- balho; os materiais, ferramentas e métodos utilizados; o relato da experiência no transcorrer do processo desenvolvimento do software; e também os resulta- dos obtidos; as conclusões e os indicações de possíveis trabalhos futuros. 1. Introdução A DataFibra Telecom Interconexões Multimídia Ltda Me é uma empresa de telecomuni- cações da cidade de Guarapuava, cujo principal objetivo é o fornecimento de planos de internet via fibra ótica e rádio para empresas e residências do município.

Upload: others

Post on 01-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento de sistema de gestão de estoque

Desenvolvimento de sistema de gestão de estoquepersonalizado com o framework Laravel

Renan de Oliveira1, Marcos Antonio Quinaia2, Cauê Ferro Gonzalez3

1Bacharelando em Ciência da ComputaçãoDepartamento de Ciência da Computação

Universidade Estadual do Centro-Oeste (UNICENTRO)

2Docente (Orientador)Departamento de Ciência da Computação

Universidade Estadual do Centro-Oeste (UNICENTRO)

3Docente (Co-Orientador)Colegiado de Tecnologia em Análise e Desenolvimento de Sistemas

Faculdade Guairacá

[email protected], [email protected], [email protected]

Abstract. This article describes the development of inventory management soft-ware for a telecommunications company whose stock is currently controlled th-rough spreadsheets. Through a survey of requirements, with the client, it waspossible to make a software project that can be used via the Web, with respon-sive design to allow the use in mobile devices. The system contains the basicfunctions created to meet the current needs of the company. Several aspectsare shown here: the need reported by the customer; the theoretical assumptionsunderlying the work; the materials, tools and methods used; the reporting of ex-perience in the course of the software development process; and also the resultsobtained; conclusions and indications of possible future work.

Resumo. Este artigo descreve o desenvolvimento de um software de gestão deestoques para uma empresa de telecomunicações cujo estoque, atualmente, écontrolado através de planilhas eletrônicas. Por meio de um levantamento derequisitos, junto ao cliente, foi possível fazer um projeto de software que podeser utilizado via Web, com design responsivo para permitir a utilização em dis-positivos móveis. O sistema contém as funções básicas criadas para atenderas necessidades atuais da empresa. São mostrados aqui diversos aspectos: anecessidade relatada pelo cliente; os pressupostos teóricos que embasam o tra-balho; os materiais, ferramentas e métodos utilizados; o relato da experiênciano transcorrer do processo desenvolvimento do software; e também os resulta-dos obtidos; as conclusões e os indicações de possíveis trabalhos futuros.

1. Introdução

A DataFibra Telecom Interconexões Multimídia Ltda Me é uma empresa de telecomuni-cações da cidade de Guarapuava, cujo principal objetivo é o fornecimento de planos deinternet via fibra ótica e rádio para empresas e residências do município.

Page 2: Desenvolvimento de sistema de gestão de estoque

Atualmente, toda a gestão de estoque dos materiais de telecomunicações é feitaem planilhas, que são repassadas de funcionário a funcionário, sem que haja um armaze-namento unificado desses dados, criando uma incerteza quanto à consistência das infor-mações relacionadas.

Devido ao processo de controle de estoque ser manual, somente com o preenchi-mento dos campos da tabela, frequentemente há uma sobrecarga nas planilhas. Outroproblema encontrado é a repetição de trabalho, pois como não há uma base de dados dosfornecedores, acaba obrigando os funcionários a preencherem todos os campos referentes,após cada nova compra.

Para a solução destes problemas foi sugerida a criação de um sistema de gestão deestoques capaz de gerenciar a movimentação dos materiais da empresa em um ambientecentralizado e protegido. O software proposto tem ainda como objetivo prover aos funci-onários uma plataforma básica que serve para o controle de entradas, saídas e posição doestoque da empresa.

Esta aplicação será uma base para o desenvolvimento de outros módulos e fun-cionalidades, conforme a complexidade e as necessidades de administração de materiaisaumentarem na empresa.

2. Fundamentação TeóricaEsta seção tem o objetivo de descrever, resumidamente, os princípios teóricos usadosneste trabalho, os quais são: controle de estoques; Extreme Programming (XP); práticasXP; estórias de usuários; UML; versionamento de projeto; framework; software como umserviço (SaaS) e Web Design Responsivo.

O controle de níveis de estoque é uma das atividades mais importantes da admi-nistração de materiais. Sendo o termo controle de estoques, dentro da logística, a funçãoda necessidade de estipular os diversos níveis de materiais e produtos que a organizaçãodeve manter, dentro de parâmetros econômicos [POZO, 2008, p. 38]. Portanto, a funçãoprincipal da administração de estoques é maximizar o uso dos recursos envolvidos na áreade logística da empresa, com grande efeito dentro dos estoques [POZO, 2008, p. 38].

A abordagem Extreme Programming (XP) descreve um cenário no qual os sta-keholders não proveem uma entrevista adequada para levantamento de requisitos, massim estórias de usuários para todo o processo de elaboração, desenvolvimento, testes eimplantação do software. O XP é um processo de desenvolvimento de software voltadopara projetos cujos requisitos são vagos e mudam com frequência, desenvolvimento desistemas orientados a objeto, equipes pequenas e desenvolvimento incremental, onde osistema começa a ser implementado logo no início [TELES, 2004, p. 21].

No trabalho de [DE SOUZA, 2004] é descrito o uso de algumas práticas XP dentrode projetos em empresas. Cada prática é avaliada, sendo descrito quantas e quais sãoadotadas. Demonstrando, assim, que é possível utilizar apenas algumas práticas para odesenvolvimento dos trabalhos.

Segundo [TELES, 2004, p. 214], toda funcionalidade do sistema começa comuma estória; trata-se de um documento extremamente simples que serve como lembreteda necessidade da equipe dialogar com o cliente no momento de desenvolver a funciona-lidade.

2

Page 3: Desenvolvimento de sistema de gestão de estoque

A UML é uma linguagem visual utilizada para modelar softwares, servindo demodelagem de propósito geral que pode ser aplicada a todos os domínios de aplicação.Não é uma linguagem de programação, e sim uma linguagem de modelagem, uma nota-ção, cujo objetivo é auxiliar os engenheiros de software a definirem as características dosistema, tais como seus requisitos, seu comportamento, sua estrutura lógica, a dinâmicade seus processos e até mesmo suas necessidades físicas em relação ao equipamento sobreo qual sistema deverá ser implantado [GUEDES 2011, p. 19].

TELES [2004, p. 240] descreve que o versionamento significa manter um his-tórico de todas as alterações que são efetuadas em um conjunto de arquivos. Tambémdescreve que para um desenvolvedor, isso representa a habilidade de manter um registrode todas as alterações que foram efetuadas no sistema, desde o seu primeiro dia.

Segundo [TELES, 2004, p. 239], em grande parte dos projetos de desenvolvi-mento é comum deparar-se com pelo menos três ambientes nos quais o sistema poderárodar: desenvolvimento, aceitação e produção. O autor descreve os ambientes como:

• Ambiente de desenvolvimento: aquele do qual a equipe opera o tempo todo. Éonde a equipe faz alterações no código, inclui novas funcionalidades e etc. É umambiente pouco estável, já que várias pessoas estão mexendo no código ao mesmotempo.

• Ambiente de aceitação: aquele do qual a equipe disponibiliza uma versão estáveldo sistema. Ele é usado basicamente para validações de modo que o cliente ou aequipe de qualidade possam verificar a corretude do sistema.

• Ambiente de produção: aquele do qual o software irá rodar. É onde o sistema seráacessado por todos os seus usuários.

Para [TURINI, 2014, p. 7-8] um framework é um projeto pronto onde o desen-volvedor não precisa preocupar-se tanto com a infraestrutura, ajudando em muito na or-ganização e agilizando o desenvolvimento, evitando assim um desperdício de tempo comatividades que podem ser automatizadas. Assim, o Laravel é uma das maiores apostas daatualidade devendo-se muito à sua simplicidade, sintaxe, flexibilidade e rica documenta-ção. [TURINI, 2014, p. 7-8].

Para [SOMMERVILLE, 2011, p. 349] um software como serviço (SaaS) é aqueleque é implantado em um servidor e é acessado por meio de um navegador. As tecnologiasWeb suportam o gerenciamento eficiente de apresentação de página Web e a computaçãolocal por meio de scripts (conjunto de instruções). Isso significa que um navegador podeser configurado e usado como um cliente, com processamento local significativo.

Segundo [ZEMEL, 2017], um Web Design Responsivo é a capacidade de um siteem adaptar-se à tela de qualquer dispositivo, fazendo com que não se tenha perdas devisualização de conteúdo, permitindo que o usuário tenha uma usabilidade confortável dosite. ZEMEL [2017] afirma que o Design Responsivo ainda não é amplamente adotadopelos sistemas Web e sites devido a recente expansão dos dispositivos móveis, onde oselementos destes sites não estão preparados para adaptarem-se as telas destes dispositívos.

3. Materiais e MétodosEsta seção tem o objetivo descrever resumidamente os materiais e métodos empregadospara o desenvolvimento deste trabalho. São descritos: o framework Laravel; as IDEs

3

Page 4: Desenvolvimento de sistema de gestão de estoque

PHPStorm e Atom, o SGBD MySQL; o pacote de aplicativos XAMPP; o gerenciador dedependências Composer; o emulador de console CMDER; o servidor de hospedagem deprojetos Bitbucket; o servidor do sistema como um SaaS Hostinger; o método ExtremmeProgramming; a linguagem de modelagem UML; o Modelo Entidade-Relacionamento(MER); a técnica de Design Responsivo e o conceito de software como um serviço (SaaS).

3.1. Materiais utilizados

Para a codificação do sistema, utilizando o framework Laravel 5.6.11, foram utilizadas asIDEs (ferramentas que ajudam no processo de desenvolvimento de software) PHPStorm(IDE) e Atom, que são ferramentas que aumentam significativamente a produtividade dodesenvolvedor. O PHP é a linguagem principal que permite o funcionamento do Back-end (Sistema responsável pela regra de negócios, webservices e APIs de uma aplicação)do projeto, sendo a versão 7 ou superior necessária para o funcionamento da versão doLaravel utilizada.

Para o armazenamento dos dados de sistema, O SGBD MySQL 5.7 foi utilizadopara o armazenamento dos dados do sistema. Sendo este utilizado em conjunto com opacote de aplicações XAMPP, que este contém o Servidor Web Apache, que é utilizadopara os testes de aceitação.

O Gerenciador de dependências Composer 1.6.4 foi utilizado para instalação doLaravel e seus pacotes e dependências. Sendo este utilizado no emulador de consoleCMDER 1.3.5, que traz uma versão melhorada do CMD nativo do Windows, trazendoum grande ganho na produtividade das atividades de gerenciamento de dependências eversionamento do sistema.

Estas e outras ferramentas que foram utilizadas neste trabalho estão resumida-mente descritas na Tabela 1.

Segundo [SUEHRING, 2002, p. 18] o SGBD MySQL é adequado para aplica-ções Web, também permitindo um gerenciamento de dados para aplicações Enterprise.Além de possuir um suporte de código aberto, estabilidade e também oferecendo umbaixo overhead (Processamento excessivo). Sendo assim, o MySQL torna-se ideal para aaplicação proposta.

O XAMPP [DVORSKI, 2007] é um pacote de aplicativos leve e portátil que écomumente utilizado para ambientes de desenvolvimento, onde foi utilizado em conjuntocom a linguagem PHP e o SGBD MySQL.

Para o versionamento (documentar as inclusões, alterações ou até mesmo exclu-sões de funcionalidades), o Bitbucket é um gerenciador de repositórios online, utilizadocomo repositório principal. Este repositório permite que um software seja desenvolvidoe melhorado com o decorrer do tempo. É um serviço de hospedagem de projetos contro-lados através do Mercurial (ferramenta multiplataforma de controle de versão distribuídopara desenvolvedores de software), um sistema de controle de versões distribuído.

Por último, a Hospedagem Hostinger é utilizada para a disponibilização do sis-tema como um SaaS (Software as a Service).

4

Page 5: Desenvolvimento de sistema de gestão de estoque

Tabela 1. Ferramentas utilizadasFerramenta Ref. Bibliográfica UtilidadeApache [APACHE FRIENDS,

2018]Web Server responsável por prover o softwaredesenvolvido como um serviço

Atom [NUCLIDE, 2018] Melhorar a produtividade da codificação do sis-tema, contendo a funcionalidade de sincroniza-ção com o repositório (Utilizando o softwareGit)

Bitbucket [ATLASSIAN, 2018] Prover um repositório para o projetoComposer [ADERMANN, E

BOGGIANO, 2018]Permitir e facilitar a instalação de pacotes e de-pendências do Laravel

Cmder [VASKO, 2018] Fornecer uma interface melhorada do cmd ori-ginal do Windows

Git [SOFTWARE FRE-EDOM CONSER-VANCY, 2018]

Prover uma sincronização das pastas de projetocom o repositório

Hostinger [HOSTINGER, 2018] Hospedagem onde o sistema Laravel foi insta-lado para servir como serviço (SaaS)

PHPStorm [JETBRAINS, 2018] Idem ao Atom, porém com uma interface paradepuração e correção de código melhorada

PHP [PHP GROUP, 2018] Linguagem de programação em que o back-endfoi desenvolvido

MySQL [APACHE FRIENDS,2018]

SGDB incluso no pacote do XAMPP, recomen-dado para sistemas Web

Laravel [TURINI, 2014] Servir de framework para a execução do projetoXAMPP [APACHE FRIENDS,

2018]Prover um pacote de softwares e serviços Webcomo o SGBD MySQL e o Web Server Apacheque foram utilizados nos testes.

3.2. Métodos empregadosAs técnicas de Extremme Programming (XP) foram utilizadas durante o desenvolvimentodo software, focando principalmente nas práticas que foram adaptadas e utilizadas, ondeo desenvolvedor exerce mais de um papel dentro do projeto. Também foram adotadasapenas algumas das práticas de XP, uma vez que o projeto não permitia a adoção de todaselas, fazendo-se necessário realizar uma adaptação da literatura. portanto são descritas aspráticas que puderam ser adotadas:

• Design Simples: Tal prática é adotada para criar um sistema enxuto, com as fun-cionalidades que atendem às necessidades da empresa.

• Metáfora: Para facilitar a comunicação com o cliente, foram utilizados termossimples, no intuito de facilitar a transmissão de ideias complexas.

• Ritmo Sustentável: Neste projeto, foi adotado um ritmo de trabalho adequado aotamanho do sistema, para fazer com que na programação ocorressem o menornúmero de erros possíveis.

Para o melhor entendimento do sistema e exemplificação das mudanças foi empre-gado a linguagem UML (diagramas de caso de Uso e Classes) e o MER, que mostraram-se

5

Page 6: Desenvolvimento de sistema de gestão de estoque

úteis para o desenvolvimento ágil, sendo principalmente para exemplificar as funcionali-dades do sistema e os papéis de usuários.

Para o sistema adaptar-se a qualquer dispositivo, o uso do Design Responsivodemonstra-se útil para permitir que os elementos deste sistema adaptem-se ao monitorou visor de qualquer dispositivo, também permitindo uma interface amigável e fluída. OWeb Design Responsivo, por padrão, faz parte dos elementos da interface disponível peloframework Laravel, mas também foram utilizadas as técnicas para customizar muitos doselementos visuais do sistema.

Por fim, o emprego do conceito de SaaS (Software as a Service), para permitiruma redução de custos da implementação do sistema, dispensando a aquisição de custososservidores e permitindo com que o sistema seja disponibilizado em um ambiente remoto.O sistema foi hospedado no site Hostinger [HOSTINGER, 2018], para que seja acessadode qualquer dispositivo via navegador, possuindo um acesso à internet.

Sendo assim, surge a necessidade da verificação de Confiabilidade e Segurança dosistema, com o objetivo de proteger a integridade das informações. Para isto, uma senhaforte foi definida como uma necessidade ao usuário, sendo assim, esta deve possuir nomínimo 8 caracteres, com pelo menos uma letra maiúscula e um caractere numérico. Istoé necessário para que o sistema seja capaz de impedir que usuários mal intencionadospossuam um acesso indevido as informações do banco de dados.

4. Desenvolvimento

4.1. Reuniões iniciaisO início do desenvolvimento do projeto deu-se com reuniões com o sócio-proprietárioda empresa, que descreveu suas preocupações com o movimento indevido e parcial-mente controlado dos materiais de telecomunicações do estoque da empresa. O sócio-proprietário então cedeu sua planilha de controle de materiais, onde foram constatados osproblemas de descentralização dos dados, surgiu então como solução apontada a necessi-dade do desenvolvimento de um sistema personalizado para a empresa.

Foi definido, nas reuniões iniciais, que o principal objetivo do sistema a ser desen-volvido, é ser um sistema básico de gestão de estoques, para que funcionalidades futuraspossam ser integradas conforme o surgimento das necessidades; seguindo assim um de-senvolvimento por demanda, conforme os valores e práticas anunciados pelo movimentoágil de software.

4.2. Estórias de UsuárioNo projeto foi adotada uma escrita simples e informal das necessidades do sistema. Apedido do cliente o sistema deve ser:

• Um sistema Web, que dispense a necessidade de instalação em uma máquina eque tenha diferentes níveis de acesso.

• Um sistema simples, que é operado sem dificuldades e com o mínimo de treina-mento possível.

• Um controle de estoques eficiente, que trate o problema e promova um controleem que os funcionários da empresa possam registrar com clareza a movimentaçãode estoques.

6

Page 7: Desenvolvimento de sistema de gestão de estoque

• Uma plataforma cuja a completude e o tamanho do sistema sejam moldados con-forme o tempo e as necessidades da empresa.

Das estórias de usuário foi possível extrair atividades e papéis para os níveis deacesso permitidos ao sistema, os quais estão descritos na Tabela 2.

Tabela 2. Tabela de Ações permitidasAtividade/Papel Administrador Gerente Funcionário

Logar no sistema X X XCriar movimentações X X XManter cadastros (excluindo usuários) X XManter usuários X

4.3. Instalação das ferramentas

Para a execução do projeto, inicialmente foram instaladas ou utilizadas as ferramentasdescritas na (Tabela 1) anteriormente descrita.

O framework Laravel oferece funcionalidades que podem ser instaladas como pa-cotes, onde diminuem o tempo de trabalho do desenvolvedor [OTWELL, 2018]. A es-colha dos pacotes se deu pela análise de complexidade do uso e dos materiais de apoiodisponíveis na internet:

• AdminLTE: É um pacote contendo o Template Responsivo AdminLTE, que faci-lita o trabalho do desenvolvedor para a construção de sistemas Web.

• Laravel-Admin: É um pacote que contém um gerenciador editável de usuários epapéis, que foi utilizado na confecção da autenticação do sistema.

• Laravel-DOMPDF: É um pacote que permite a confecção de páginas HTML quepodem ser convertidas para o formato PDF.

• Laravel-lang: É um pacote que traz uma série de idiomas que podem ser utilizadosna tradução do sistema.

4.4. Git (Versionamento)

Como um branch (galho) é uma ramificação do controle de versão do repositório, repre-sentando uma história alternativa do desenvolvimento [TELES, 2004, p. 242]. A seguir,são descritos os branches que foram criados e usados de forma a representar os ambientesdo projeto:

• Master: refere-se ao ambiente de produção.• Test: refere-se ao ambiente de aceitação.• Dev: refere-se ao ambiente de desenvolvimento.• Original: Que refere-se a um projeto-base, que pode ser utilizado para um rollback

de projeto.

4.5. Definições de projeto

Qualquer acesso ao sistema exige a autenticação de usuário. Esta autenticação é neces-sária para evitar que funcionários não autorizados tenham acesso a informações sensíveis

7

Page 8: Desenvolvimento de sistema de gestão de estoque

da empresa. Qualquer sistema Web operando como um SaaS requer autenticação [SOM-MERVILLE, 2011, p. 349-351]. Assim, foi definido que cada funcionário deve possuirsua própria conta de login, que é usada para acessar os módulos do sistema.

O sistema deve possibilitar a emissão e impressão de relatórios contendo infor-mações úteis para tomada de decisões gerenciais próprias da gerência de estoque [POZO,2008, p. 89-91].

O sistema deverá possuir um rápido carregamento dos elementos, de forma quenão demore muito para exibir as informações contidas na base de dados. A linguagem deprogramação PHP, aliada ao framework Laravel proveem a rapidez necessária no funcio-namento do software.

Como opera numa hospedagem, o mais indicado é o uso do MySQL para o arma-zenamento das informações na base do sistema, já que este é o banco de dados padrãooferecido pela hospedagem Hostinger.

A necessidade de ser operado via navegador e consequentemente poder ser aces-sado de qualquer dispositivo, justificou o desenvolvimento do sistema adotar as técnicasde design responsivo descritas por [ZEMEL, 2017].

4.6. Diagramas UML

Para representar os usuários, as classes e a base de dados, foram utilizados alguns diagra-mas UML (Casos de uso e Classes) e o MER (Modelo Entidade-Relacionamento).

A Figura 1 mostra o diagrama de Caso de Uso do sistema, contendo os papéis dosusuários e os casos de uso refentes às funcionalidades do sistema de controle de estoque.O diagrama de Entidade-Relacionamento (Figura 2), apresenta o diagrama de Entidade-Relacionamento da base de dados construída. E, por último, na Figura 3, pode-se ver odiagrama de classes de análise do sistema e seus atributos, métodos e relacionamentos.

No Apêndice A está documentado de forma detalhada cada caso de Uso do sis-tema.

8

Page 9: Desenvolvimento de sistema de gestão de estoque

Figura 1. Diagrama de Caso de Uso do sistema

Figura 2. Diagrama de Entidade-Relacionamento da base de dados

9

Page 10: Desenvolvimento de sistema de gestão de estoque

Figura 3. Diagrama de Classes do sistema

10

Page 11: Desenvolvimento de sistema de gestão de estoque

4.7. Práticas da metodologia XP adotadasA experiência com a adoção do XP para o desenvolvimento do software demonstrou-serazoavelmente satisfatória. TELES [2004, p. 63] ressalta a dificuldade de manter o clienteenvolvido no processo, onde a ausência ou até mesmo a falta de interesse do mesmoprejudica o progresso da construção do software. Para isto, foi necessário adaptar-se aosdesafios e aproveitar a plasticidade e flexibilidade das práticas.

Ainda sim, mesmo com algumas deficiencias de projeto, foi possível criar umprojeto que gerou um sistema resultante que atende as necessidades descritas pelos sta-keholders. Mesmo assim, o sistema ainda carece de uma avaliação melhor do cliente paraque as melhorias sejam implantadas e este aproxime-se cada vez mais do ideal descritonas estórias da subseção 4.2.

Seguindo o formato do trabalho de [DE SOUZA, 2004] foram utilizadas as práti-cas XP descritas na Tabela 3:

Tabela 3. Práticas XPPRÁTICA SITUAÇÃO

Cliente Presente Não adotadoJogo do Planejamento AdotadoStand Up Meeting Não AdotadoProgramação em par Parcialmente AdotadoDesenvolvimento Guiado por Testes Parcialmente AdotadoRefactoring Parcialmente AdotadoCódigo Coletivo AdotadoCódigo Padronizado AdotadoDesign Simples AdotadoMetáfora AdotadoRitmo Sustentável Parcialmente AdotadoIntegração Contínua Não adotadoReleases Curtos Adotado

5. Resultados e DiscussõesEsta seção tem por objetivo mostrar os resultados alcançados. São apresentadas algumasfuncionalidades do sistema desenvolvido, bem como algumas telas e relatórios.

5.1. Sistema desenvolvidoSeguindo as definições do projeto, o sistema conta com um Front-end (Interface de inte-ração com o usuário) que se adapta a qualquer dispositivo em que seja operado. Para isto,foi empregado o pacote do Template AdminLTE [PIERCE, 2018] para a criação de umaaplicação responsiva.

Este Template é um conjunto de formas, campos, tabelas e dentre outros que tra-zem uma facilidade para o desenvolvimento de sistemas, diminuindo o custo do trabalhoe agilizando o processo da criação das aplicações.

A autenticação para entrada no sistema é feita por permissões, conforme os papéisde usuários definidos no diagrama de casos de uso (Figura 1). Logo após a autenticação

11

Page 12: Desenvolvimento de sistema de gestão de estoque

(Figura 4), o sistema traz uma tela inicial com o logo da empresa e um cabeçalho contendouma mensagem de boas vindas (Figura 5).

Figura 4. Tela de Login do sistema

Figura 5. Tela de Boas Vindas do sistema

Os cadastros básicos se dão pela adição de Clientes, Fornecedores e Produtos(Figura 6). Utilizando o menu lateral à esquerda, pode-se acessar o controle de movi-mentações, que possibilita criar uma movimentação, seja ela de entrada ou de saída, eutiliza os dados dos cadastros básicos como fonte de informação. Por padrão, os produtospossuem colunas ocultas de quantidade, custo médio e valor total. Na inserção de pro-dutos, estes campos são inseridos com valores zerados pois serão calculados a partir dasmovimentações do sistema.

12

Page 13: Desenvolvimento de sistema de gestão de estoque

Figura 6. Área de cadastros

Os movimentos de entrada e saída do sistema são armazenados em uma únicatabela e diferenciados pelo campo tipo, que pode armazenar apenas um dos seguintes va-lores Entrada ou Saída. Dessa forma, uma movimentação de saída sempre deve possuirum cliente vinculado, indicando quem está vinculado com esta saída do estoque. Con-sequentemente, uma movimentação de entrada precisa estar vinculada a um fornecedorrepresentando qual fornecedor foi responsável por esta entrada (Figura 7).

Figura 7. Área de movimentação

13

Page 14: Desenvolvimento de sistema de gestão de estoque

Todos os registros da tabela movimentos possuem um produto vinculado. Esteregistro armazena ainda a quantidade e o valor unitário. Todas as entradas recebem seusvalores unitários conforme o preço do produto seguindo um preço de compra. Sendoassim, o valor total da compra é calculado como o produto da quantidade do lote com ovalor unitário. [POZO, 2008].

Seguindo um dos padrões representados por [POZO, 2008] de saída de estoque,foi adotado a saída por custo médio. O cálculo do custo médio é dado pela divisão dovalor total dos produtos com a quantidade total. A partir desse custo, são debitados osprodutos do estoque. Por padrão, este cálculo é adicionado também à tabela de produtos.

Figura 8. Visão da versão Desktop

Na (Figura 8) pode-se ver uma representação da tela apresentada em um navegadoracessado pelo computador e na (Figura 9) uma representação da tela apresentada em umnavegador de um dispositivo mobile. Note que na versão mobile os menus são escondidos,podendo ser acessados pelo botão de menu sanduíche (aquele com três linhas horizontais)fazendo com que a usabilidade do sistema seja melhorada.

O Design dos relatórios do sistema traz uma estrutura de elementos compostapor: Cabeçalho com o tipo do relatório à esquerda e o logotipo da empresa à direita;Subcabeçalho contendo informações gerais que variam conforme o relatório; Corpo dorelatório contendo os dados emitidos; Rodapé contendo o nome do sistema e a versãoatual (Figura 10).

Outras telas e relatórios do sistema estão disponíveis para a visualização nosApêndices B e C respectivamente.

14

Page 15: Desenvolvimento de sistema de gestão de estoque

Figura 9. Visão da versão Mobile

Figura 10. Exemplo de um dos relatórios

6. Considerações FinaisCom o andamento do projeto, foi possível obter um bom aprendizado sobre o desenvol-vimento de sistemas utilizando metodologias ágeis, assim como o domínio do frameworkLaravel, que demonstra ser uma plataforma robusta.

Os elementos de Web Design Responsivo atendem a proposta de proporcionarum sistema que se adapta a qualquer dispositivo, permitindo que os usuários do sistema

15

Page 16: Desenvolvimento de sistema de gestão de estoque

tenham a possibilidade de utilizar aparelhos como tablets ou celulares para acessar aosistema enquanto deslocam-se. O software ainda está na primeira versão, podendo seradaptado conforme as necessidades do negócio, ampliando sua gama de ações e abran-gência.

6.1. Trabalhos Futuros

Ainda é necessário um refinamento maior do software, para que este torne-se um produtopara o mercado. A intenção é realizar este refinamento para possibilitar que o sistema sejaimplantado em empresas com necessidades semelhantes.

O sistema atende a gestão básica de estoque, ignorando partes como filtros avança-dos, validações melhoradas dos campos, visão dos módulos por papéis, adoção de permis-sões para a criação de papéis personalizados, outros módulos e visões como, por exemplo,a curva ABC (curva ou tabela que descreve os itens de maior valor do estoque [POZO,2008]) dentre outros.

Referências

ADERMANN, Nils; Boggiano, Jordi. Composer: Dependency Manager for PHP. Dis-ponível em: <https://getcomposer.org/>. Acessado em: 18 abr. 2018.

APACHE FRIENDS. XAMPP Apache + MariaDB + PHP + Perl. Disponível em:<https://www.apachefriends.org/ptbr/index.html>. Acessado em: 18 de abril de 2018.

ATLASSIAN. Bitbucket. Disponível em: <https://bitbucket.org/product>. Acessado em:18 abr. 2018.

DE SOUZA, Luiz F. S. Equipes XP nas empresas. Disponível em:<xp.edugraf.ufsc.br/pub/XP/EquipesXPNasEmpresas/EquipesXP.doc>. Acessadoem: 15 abr. 2018.

DVORSKI, Dalibor D. Installing, Configuring and Developing with XAMPP. Ontario,Skills Canada, 2007.

GUEDES, Gilleanes T. A. UML 2: Uma abordagem prática – 3a ed. – São Paulo: NovatecEditora Ltda. 2011.

HOSTINGER. Hospedagem de Sites e Sistemas Disponível em:<https://www.hostinger.com.br/>. Acessado em: 01 mai. 2018.

JETBRAINS. PhpStorm: Lightning-smart PHP IDE. Disponível em:<https://www.jetbrains.com/phpstorm/>. Acessado em: 18 abr. 2018.

NUCLIDE. Atom IDE: Improved language integration. Disponível em:<https://ide.atom.io/>. Acesso em: 18 abr. 2018.

OTWELL, Taylor. Laravel: Documentation. Disponível em:<https://laravel.com/docs/5.6>. Acessado em 18 abr. 2018.

PIERCE, Alexander. AdminLTE 2. Disponível em:<https://adminlte.io/themes/AdminLTE/index2.html>. Acessado em: 19 abr. 2018.

PHP GROUP. PHP. Disponível em: <www.php.net>. Acessado em: 20 jun. 2018.

16

Page 17: Desenvolvimento de sistema de gestão de estoque

POZO, Hamilton. Administração de recursos materiais e patrimoniais: uma abordagemlogística / Hamilton Pozo. - 5. ed. - São Paulo : Atlas, 2008.

SOMMERVILLE, Ian. Engenharia de Software / Ian Sommerville; tradução Ivan Bosnice Kalinka G. de O. Gonçalves; Revisão técnica Kechi Hirama. – 9. Ed – São Paulo:Pearson Prentice Hall, 2011.

SOFTWARE FREEDOM CONSERVANCY. Git. Disponível em: <https://git-scm.com/>. Acessado em: 18 abr. 2018.

SUEHRING, Steve. MySQL Bible. – New York: Wiley Publishing, Inc. 2002.

TELES, Vinícius M. Extreme Programming: Aprenda como encantar seus usuários de-senvolvendo software com agilidade e alta qualidade. – São Paulo: Novatec Editora Ltda,2004.

TURINI, Rodrigo. PHP e Laravel: Crie aplicações web como um verdadeiro artesão. –São Paulo: Editora Caelum, 2014.

VASKO, Samuel. CMDER: Portable console emulator for Windows. Disponível em:<http://cmder.net/>. Acessado em: 18 abr. 2018.

Zemel, Tárcio. Web Design Responsivo - Páginas adaptáveis para todos os dispositivos.São Paulo, Casa do Código, 2017.

17

Page 18: Desenvolvimento de sistema de gestão de estoque

Apêndice A - Descrição dos casos de Uso

Tabela 4. Documentação do Caso de Uso 1Nome do Caso de Uso UC01 - Logar no SistemaCaso de Uso GeralAtor Principal UsuárioAtores SecundáriosResumo Acessar o sistema através de um e-mail e senhaPré-condições O usuário deve ser cadastradoPós-condições Permite acessar a tela de boas vindas e outras

funções do sistema conforme o papel do usuárioCenário Principal

Ações do Ator Ações do SistemaInformar o e-mail e asenha

Validar o e-mail e a senha conforme as informa-ções contidas no banco de dados

Restrições/Validações O e-mail e a senha fornecidos devem ser válidos

Tabela 5. Documentação do Caso de Uso 2Nome do Caso de Uso UC02 - Manter UsuáriosCaso de Uso GeralAtor Principal AdministradorAtores Secundários UsuáriosResumo O administrador é o responsável por manter o

cadastro dos usuários do sistemaPré-condições O administrador precisa estar logado no sistemaPós-condições Permite criar, editar e também ver informações

específicas de cada usuárioCenário Principal

Ações do Ator Ações do Sistema1. Criar usuário2. Editar usuário3. Excluir usuário

4. Apresentar dados de usuário5. Fornecer relatórios sobre o usuário

Restrições/Validações 1. Dados como Nome, E-mail e Senha devemser manipulados.

18

Page 19: Desenvolvimento de sistema de gestão de estoque

Tabela 6. Documentação do Caso de Uso 3Nome do Caso de Uso UC03 - Associar PapéisCaso de Uso Geral Manter UsuáriosAtor Principal AdministradorAtores Secundários UsuáriosResumo O administrador associa os papéis do usuário

com as permissões daquele usuário.Pré-condições O administrador precisa estar logado no sistemaPós-condições Atribui a um usuário criado ou existente um pa-

pel dentro do sistema.Cenário Principal

Ações do Ator Ações do SistemaAtribuir um papel aousuário

Conceder ao usuário as permissões referentes

Restrições/Validações Necessita existir o cadastro ou alteração de umusuário

Tabela 7. Documentação do Caso de Uso 4Nome do Caso de Uso UC04 - Manter CadastrosCaso de Uso GeralAtores Principais Administrador e GerenteAtores Secundários Clientes e FuncionáriosResumo Os usuários administrador e gerente possuem o

poder de manter cadastros dentro do sistemaPré-condições O usuário precisa estar logado no sistemaPós-condições Permite criar, alterar ou excluir um cadastro do

sistemaCenário Principal

Ações do Ator Ações do SistemaCadastrar ou alterarum cliente, fornecedor,produto ou categoria

Fornecer uma resposta da ação dentro do sis-tema

Restrições/Validações

19

Page 20: Desenvolvimento de sistema de gestão de estoque

Tabela 8. Documentação do Caso de Uso 5Nome do Caso de Uso UC05 - Gerenciar ClientesCaso de Uso Geral Manter CadastrosAtores Principais Administrador e GerenteAtor Secundário ClienteResumo O usuário manipula as informações referentes

aos clientesPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar, alterar ou excluir um

cliente.Cenário Principal

Ações do Ator Ações do Sistema1. Criar cliente2. Editar cliente3. Excluir cliente

4. Apresentar dados de cliente5. Fornecer relatórios sobre o cliente

Restrições/Validações 1. Dados como Nome, CEP, Logradouro, Nu-mero, Bairro, Bidade, Estado e Telefones de-vem ser manipulados.

Tabela 9. Documentação do Caso de Uso 6Nome do Caso de Uso UC06 - Gerenciar FornecedoresCaso de Uso Geral Manter CadastrosAtores Principais Administrador e GerenteAtores Secundários FornecedorResumo O usuário manipula as informações referentes

aos fornecedoresPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar, alterar ou excluir um

fornecedorCenário Principal

Ações do Ator Ações do Sistema1. Criar fornecedor2. Editar fornecedor3. Excluir fornecedor

4. Apresentar dados de fornecedor5. Fornecer relatórios sobre o fornecedor

Restrições/Validações 1. Dados como Nome, CEP, Logradouro, Nu-mero, Bairro, Cidade, Estado e Telefones de-vem ser manipulados.

20

Page 21: Desenvolvimento de sistema de gestão de estoque

Tabela 10. Documentação do Caso de Uso 7Nome do Caso de Uso UC07 - Gerenciar ProdutosCaso de Uso Geral Manter CadastrosAtores Principais Administrador e GerenteAtor SecundárioResumo O usuário manipula as informações referentes

aos produtosPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar, alterar ou excluir um

produtoCenário Principal

Ações do Ator Ações do Sistema1. Criar produto2. Editar produto3. Excluir produto

4. Apresentar dados de produto5. Fornecer relatórios sobre o produto

Restrições/Validações 1. Dados como Nome, Marca e Descrição de-vem ser manipulados.

Tabela 11. Documentação do Caso de Uso 8Nome do Caso de Uso UC08 - Gerenciar CategoriasCaso de Uso Geral Manter CadastrosAtores Principais Administrador e GerenteAtor SecundárioResumo O usuário manipula as informações referentes

as categoriasPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar, alterar ou excluir uma

categoriaCenário Principal

Ações do Ator Ações do Sistema1. Criar categoria2. Editar categoria3. Excluir categoria

4. Apresentar dados de categoria5. Fornecer relatórios sobre o categoria

Restrições/Validações 1. Dados como Nome e Descrição devem sermanipulados.

21

Page 22: Desenvolvimento de sistema de gestão de estoque

Tabela 12. Documentação do Caso de Uso 9Nome do Caso de Uso UC09 - Criar MovimentaçõesCaso de Uso GeralAtor Principal Usuário (Todos os papéis)Ator SecundárioResumo O usuário cria uma movimentação de estoque

no sistemaPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar movimentações de en-

trada e saída de estoqueCenário Principal

Ações do Ator Ações do Sistema1. Registrar movimen-tações

2. Apresentar dados de movimentações3. Fornecer relatórios sobre as movimentações

Restrições/Validações

Tabela 13. Documentação do Caso de Uso 10Nome do Caso de Uso UC10 - Gerar EntradasCaso de Uso Geral Criar MovimentaçõesAtor Principal Usuário (Todos os papéis)Ator SecundárioResumo O usuário cria uma entrada no estoque do sis-

temaPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar movimentações de en-

trada de estoqueCenário Principal

Ações do Ator Ações do Sistema1. Registrar Entradas

2. Apresentar dados de entradas3. Fornecer relatórios sobre as movimentações

Restrições/Validações 1. Dados como Fornecedor, Produto, Valor Uni-tário, Quantidade, Motivo e Comentários de-vem ser manipulados

22

Page 23: Desenvolvimento de sistema de gestão de estoque

Tabela 14. Documentação do Caso de Uso 11Nome do Caso de Uso UC11 - Gerar SaídaCaso de Uso Geral Criar MovimentaçõesAtor Principal Usuário (Todos os papéis)Ator SecundárioResumo O usuário cria uma entrada no estoque do sis-

temaPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário criar movimentações de en-

trada de estoqueCenário Principal

Ações do Ator Ações do Sistema1. Registrar Entradas

2. Apresentar dados de entradas3. Fornecer relatórios sobre as movimentações

Restrições/Validações 1. Dados como Fornecedor, Produto, Valor Uni-tário, Quantidade, Motivo e Comentários de-vem ser manipulados

Tabela 15. Documentação do Caso de Uso 12Nome do Caso de Uso UC12 - Emitir RelatóriosCaso de Uso GeralAtor Principal Usuário (Todos os papéis)Ator SecundárioResumo O usuário emite um relatório do sistemaPré-condições O usuário necessita ter permissões e estar lo-

gado no sistemaPós-condições Permite o usuário emitir relatórios do sistema

Cenário PrincipalAções do Ator Ações do Sistema1. Emitir Relatório

2. Apresentar dados em PDFRestrições/Validações 1. Informações sobre o tipo de relatório devem

ser validados

23

Page 24: Desenvolvimento de sistema de gestão de estoque

Apêndice B - Telas do sistema

Figura 11. Tela de Posição de Estoques

Figura 12. Tela de Gerenciamento de Usuários

24

Page 25: Desenvolvimento de sistema de gestão de estoque

Figura 13. Tela de Cadastro de Clientes

Figura 14. Tela de Cadastro de Fornecedores

25

Page 26: Desenvolvimento de sistema de gestão de estoque

Figura 15. Tela de Cadastro de Produtos

Figura 16. Tela de Cadastro de Categorias

26

Page 27: Desenvolvimento de sistema de gestão de estoque

Figura 17. Tela de Movimentações

Figura 18. Tela de Emissão de Relatório Especial (Movimentação por Período)

27

Page 28: Desenvolvimento de sistema de gestão de estoque

Apêndice C - Relatórios do sistema

Figura 19. Relatório da Posição de Estoque

Figura 20. Relatório de Movimentações por Usuário

28

Page 29: Desenvolvimento de sistema de gestão de estoque

Figura 21. Relatório de Movimentações por Período

Figura 22. Relatório de Movimentação Individual

29