Prévia do material em texto
Na empresa Royale Lanches LTDA, sediada em Guarapuava, PR, destaquei-me por minha capacidade de liderar projetos de desenvolvimento de software direcionados à gestão de estoque. Com 16 anos de experiência no mercado alimentício, a empresa enfrentava desafios relacionados à perda de tempo na contagem de estoque e à imprecisão das informações. Reconhecendo a importância das soluções tecnológicas, conduzi uma revisão bibliográfica abrangente e desenvolvi um software personalizado para otimizar os processos de gestão de estoque. Meu compromisso com a inovação e a qualidade dos produtos levou-me a investir em técnicos, treinamento de funcionários e participação em eventos gastronômicos. Estou empenhado em continuar aprimorando minhas habilidades em gestão empresarial, engenharia de software e programação, visando contribuir para o sucesso contínuo das organizações. Aplicação da Tecnologia Java no Desenvolvimento de Sistema de Controle de Estoque Profissional com sólida compreensão da importância da gestão empresarial, especialmente no que diz respeito ao controle de estoque, para o sucesso de uma empresa. Demonstro experiência na identificação de desafios e na implementação de soluções inovadoras para melhorar a eficiência operacional e a precisão das informações. Fundamentação Teórica A administração de estoques é crucial para evitar prejuízos e garantir a satisfação do cliente, abrangendo uma variedade de produtos e desempenhando um papel fundamental na estabilidade das vendas da empresa. Na engenharia de software, são aplicados princípios sólidos para desenvolver softwares confiáveis e eficientes, com métodos, ferramentas e procedimentos que garantem alta qualidade e produtividade. A Nota Fiscal Eletrônica simplifica processos fiscais, e o ciclo de vida de um projeto define a abordagem de desenvolvimento. para o desenvolvimento do projeto, com diferentes modelos sendo empregados para integrar eficientemente as pessoas envolvidas no processo. A prototipagem é uma abordagem gradual e evolutiva para o desenvolvimento de sistemas, enquanto o NetBeans IDE e o XAMPP são ferramentas essenciais para o desenvolvimento e gerenciamento de aplicativos web. O XML é usado para descrever dados estruturados, enquanto a Programação Orientada a Objetos (POO) é amplamente reconhecida por seus benefícios no desenvolvimento de software. O Java, o MySQL e o Framework iReport/JasperReports são tecnologias essenciais para o desenvolvimento de software, oferecendo maneiras eficientes de lidar com informações de bancos de dados, gerar relatórios dinâmicos e manipular documentos XML. O Hibernate e o JDOM são exemplos de ferramentas que simplificam a persistência de dados e a manipulação de documentos XML em ambientes Java. Comparação Após a Implementação do Controle de Estoques Comparação da Evolução do Sistema nas Versões Quadro de Aprovação das Funcionalidades CADASTRAR PRODUTOS **Requisitos Funcionais do Sistema de Cadastro de Produtos:** 1. Cadastro de Produtos: - Permite a adição de novos produtos ao sistema, com inclusão de todos os atributos relevantes, como descrição, código alternativo, LV, NCM, etc. - Os produtos são categorizados com base em suas características, como grupo, LV e fornecedor. 2. Funções Disponíveis: - Salvar: Permite a inserção de um novo registro de produto no banco de dados. - Deletar: Permite a remoção de um produto existente do banco de dados. - Alterar: Possibilita a edição dos dados de um produto cadastrado. - Consulta: Permite a busca por produtos existentes no banco de dados utilizando critérios como descrição, código alternativo, grupo e fornecedor. Esses requisitos funcionais garantem uma gestão eficiente das informações relacionadas aos produtos disponíveis no sistema. CADASTRAR FORNECEDOR 1. Cadastro de Fornecedores: - Permite a adição de novos fornecedores ao sistema, com a opção de especificar o tipo de pessoa (física ou jurídica). 2. Funções Disponíveis: - Salvar: Permite inserir um novo registro do fornecedor no banco de dados, incluindo detalhes como o tipo de pessoa. - Deletar: Permite remover um fornecedor existente do banco de dados. - Alterar: Possibilita a edição dos dados de um fornecedor, incluindo o tipo de pessoa. - Consulta: Permite buscar fornecedores existentes no banco de dados utilizando a descrição como critério de pesquisa. Esses requisitos garantem uma gestão eficiente das informações relacionadas aos fornecedores disponíveis no sistema. CADASTRAR GRUPOS 1. Cadastro de Grupos: - Permite a adição de novos grupos ao sistema. 2. Funções Disponíveis: - Salvar: Permite inserir um novo registro do grupo no banco de dados. - Deletar: Permite remover um grupo existente do banco de dados. - Alterar: Possibilita a edição dos dados de um grupo, como sua descrição. - Consulta: Permite buscar grupos existentes no banco de dados utilizando a descrição como critério de pesquisa. Esses requisitos garantem uma gestão eficiente das informações relacionadas aos grupos disponíveis no sistema de cadastro. ENTRADA E SAÍDA DE ESTOQUES Os requisitos funcionais para o sistema de controle de entrada e saída de estoques incluem: 1. Adicionar: Permite adicionar um novo produto à tabela de estoques, preenchendo os formulários necessários. 2. Retirar: Permite excluir o produto selecionado da tabela de estoques. 3. Importar XML: Permite importar dados de um arquivo XML para a tabela de estoques, facilitando a entrada de estoques. 4. Salvar: Permite salvar um novo registro do sistema no banco de dados após a entrada ou saída de estoques. 5. Deletar: Permite eliminar o registro de estoque selecionado do banco de dados. Esses requisitos garantirão uma gestão eficiente das informações relacionadas ao estoque disponível no banco de dados. CADASTRAR CÓDIGO FORNECEDOR Os requisitos funcionais para o sistema de cadastro de códigos de fornecedores incluem: 1. Salvar: Permite salvar um novo registro do sistema no banco de dados, preenchendo os detalhes do código de fornecedor. 2. Deletar: Permite excluir um registro existente no banco de dados, removendo permanentemente o registro correspondente. 3. Alterar: Possibilita a modificação dos dados cadastrados de um código de fornecedor, permitindo a edição dos atributos e salvando as alterações no banco de dados. 4. Consulta: Permite a consulta de um código de fornecedor existente no banco de dados, utilizando como critério o código, exibindo os códigos de fornecedores correspondentes. Esses requisitos garantirão a funcionalidade adequada do sistema de cadastro de códigos de fornecedores, facilitando a gestão eficiente das informações relacionadas a esses códigos no banco de dados. CADASTRAR USUÁRIOS Os requisitos funcionais para o sistema de cadastro de usuários restrito a administradores incluem: 1. Salvar: Permitirá que um administrador registre um novo usuário, fornecendo detalhes como nome, sobrenome, e-mail e senha, que serão armazenados no banco de dados. 2. Deletar: Permite que um administrador exclua um usuário existente, eliminando permanentemente o registro correspondente no banco de dados. 3. Alterar Dados do Usuário: Dará aos administradores a possibilidade de modificar informações cadastradas de um usuário, como senha ou e-mail. 4. Consultar Usuário: Permitirá aos administradores consultar usuários existentes no sistema, podendo buscar por critérios como código de usuário, nome ou e-mail. Esses requisitos garantirão uma gestão eficiente das informações dos usuários com acesso privilegiado ao sistema. ESTORNO DE ENTRADA E SAÍDA DE ESTOQUES Requisitos Funcionais para o Estorno de Entrada e Saída de Estoques: 1.Consulta com Filtros: - Esta função permitirá localizar registrosde entrada e saída de estoques utilizando filtros como período de data, número da nota ou fornecedor. - Os usuários poderão especificar critérios de pesquisa para encontrar registros relevantes. 2. Deletar (Estorno): - Esta função permitirá aos usuários estornar registros existentes de entrada e saída de estoques. - Ao acionar essa função e selecionar o registro desejado, o sistema deverá estornar as transações, revertendo os efeitos no estoque. 3. Alterar Dados: - A função "Alterar Dados" dará aos usuários a possibilidade de modificar os dados cadastrados em um registro de entrada e saída de estoques. - Isso pode incluir a atualização de informações como quantidade, data ou outros detalhes associados ao registro. Esses requisitos funcionais garantirão a funcionalidade adequada do sistema em relação ao estorno de entrada e saída de estoques, permitindo aos usuários localizar, estornar e alterar dados dos registros conforme necessário. RELATÓRIOS Os requisitos funcionais para a emissão de relatórios incluem a capacidade de separar os dados por grupo, fornecedor ou número da nota, através da função "SEPARAR". Os usuários poderão escolher esses critérios para uma visualização mais específica dos dados. Além disso, a função "ORDENAR" permitirá que os usuários classifiquem os dados por nome ou data, oferecendo flexibilidade na visualização dos resultados. Esses requisitos garantirão a funcionalidade adequada do sistema, conforme descrito nos casos de uso e nos diagramas de UML apresentados nos apêndices. SISTEMA PARA SUPERMERCADOS MODULARIZADO DESENVOLVIDO EM JAVA A gestão informatizada de supermercados é dividida em frente de caixa, que lida com clientes, e retaguarda, que controla estoque e finanças. Este trabalho descreve o desenvolvimento de um sistema para administração de supermercados, utilizando Java para versões web (retaguarda) e desktop (frente de caixa). A modularização do software simplifica a complexidade, facilita a detecção de erros e atende às necessidades dos usuários, incorporando frameworks e bibliotecas para otimizar o processo de desenvolvimento. Considerações Iniciais Gerenciar um estabelecimento varejista envolve lidar com uma variedade de produtos, monitorar datas de validade e controlar estoques. A operação de vendas no ponto de venda é crucial, mas o sistema de retaguarda que o suporta é mais complexo, abrangendo cadastro de produtos, pedidos e controle financeiro. Esses sistemas são compostos por diversos módulos inter- relacionados, facilitando sua análise, projeto e desenvolvimento. Objetivo geral Implementar um sistema para gerenciamento de supermercados. Objetivos específicos Podemos parafrasear os objetivos específicos da seguinte forma: - Fragmentar o sistema em módulos e definir suas interações e complementaridades, visando simplificar a implementação. - Desenvolver um sistema utilizando as tecnologias Java para web e desktop. - Apresentar a implementação do sistema, enfatizando a utilização das tecnologias estudadas, tais como a linguagem Java, o framework Vraptor, o Hibernate e a biblioteca JQuery. Justificativa Um sistema de gerenciamento para supermercados, implementado com Java, oferece controle eficiente de estoques, datas de validade e finanças. Utiliza Java para web (módulos de retaguarda) e desktop (caixas). Usa bancos de dados locais nos caixas para atender aos requisitos do PAF. Frameworks como Vraptor, Hibernate e biblioteca JQuery são empregados para agilizar o desenvolvimento e simplificar a implementação do sistema. APLICAÇÕES JAVA WEB A arquitetura de um sistema computacional é sua estrutura fundamental, incluindo elementos de software, características externas e vínculos entre eles. Essa estrutura pode variar dependendo do modelo adotado, resultando em diferentes visões da arquitetura, que podem focar nos módulos do sistema, nas tecnologias utilizadas ou em outras áreas. Arquiteturas web convencionais As aplicações web são programas que operam através do protocolo HTTP, apresentando sua interface ao usuário em HTML. Podem variar em complexidade, desde páginas simples até sistemas robustos, e são acessíveis através de navegadores. O termo "aplicação web" refere-se ao uso da Internet como meio de comunicação, com foco na web, independentemente das tecnologias específicas utilizadas. Arquiteturas web baseada em Java As aplicações web em Java oferecem uma solução para os desafios encontrados nas arquiteturas baseadas em CGI. Utilizando tecnologias como Java Servlets e JavaServer Pages, essas aplicações permitem distribuir objetos, processamento e dados entre cliente e servidor de forma eficiente. Isso possibilita o desenvolvimento de aplicações web robustas e adaptáveis, atendendo às necessidades específicas de cada projeto. Aplicações Java baseadas em servlets Servlets e JSPs são componentes fundamentais para o desenvolvimento de aplicações web em Java. Enquanto os servlets operam no lado do servidor, os JSPs são compilados para servlets e processados no servidor, retornando conteúdo HTML dinâmico para os clientes. Ambos oferecem vantagens em desempenho e portabilidade, sendo amplamente suportados pelos servidores web modernos. Aplicações Java baseadas em JavaServer Pages O JavaServer Pages (JSP) é uma tecnologia Java que permite a criação de páginas web dinâmicas, onde o conteúdo pode ser definido e alterado durante a execução. Ao combinar código Java e HTML, o JSP simplifica o desenvolvimento de aplicações web, sendo integrado à plataforma Java Enterprise Edition (JEE) junto com Servlets e JavaBeans. Essa integração facilita o desenvolvimento seguro e eficiente de aplicações web. O JSP se destaca por sua abordagem ágil, separando a lógica da página do design, o que o torna uma opção prática para construir aplicações web. No ambiente cliente/servidor web, o servidor converte as páginas JSP em servlets para processar solicitações e enviar respostas HTML aos clientes. Isso oferece benefícios como o uso da linguagem Java e a integração com a plataforma JEE. As páginas JSP passam por fases de tradução e processamento da requisição, podendo ser pré-compiladas para reduzir o tempo de carregamento. Aplicações Java baseadas em Model-View-Controller Nas aplicações centradas em páginas JSP, o cliente controla a lógica de negócios e a apresentação, resultando em baixa reusabilidade de código. Já nas aplicações baseadas em servlets, o servidor controla as solicitações dos clientes e executa a lógica da aplicação, oferecendo melhor manutenibilidade e reusabilidade. Na arquitetura Model-View-Controller (MVC), há uma clara separação de responsabilidades entre as camadas, reduzindo o acoplamento entre os componentes e facilitando a manutenção. O modelo cuida da lógica de negócios e interage com o banco de dados, a visualização gera as interfaces de apresentação, e o controle coordena as requisições dos usuários, delegando tarefas aos modelos e selecionando a apresentação dos dados aos clientes. Materiais Linguagem Java A plataforma Java oferece flexibilidade e independência de sistema operacional, permitindo o desenvolvimento de aplicativos em várias linguagens. É orientada a objetos, suportando herança e oferecendo recursos para acesso remoto e protocolos de Internet comuns. Um recurso crucial do Java é o gerenciamento de memória através da coleta de lixo (garbage collection), que libera automaticamente blocos de memória não utilizados. Embora isso possa diminuir a velocidade de execução do programa devido a uma thread paralela, evita problemas como referências perdidas e falta de memória. IDE Eclipse O Eclipse Juno é uma IDE para desenvolvimento em Java, multiplataforma e repleta de ferramentas para escrever, compilar e depuraraplicativos. Com uma ampla variedade de bibliotecas e APIs, simplifica o desenvolvimento de software. Sendo desenvolvida em Java, é compatível com Linux, Windows e Mac OS. PostgreSQL O PostgreSQL é um sistema de banco de dados relacional de código aberto com uma ampla gama de recursos, incluindo recuperação automática após falhas, suporte a transações e integridade referencial. Esses recursos o tornam uma escolha popular para uma variedade de aplicativos. PgAdmin O pgAdmin é um gerenciador de banco de dados PostgreSQL gratuito, usado para escrever e executar sentenças SQL, desenvolver bancos de dados e administrar o PostgreSQL. Ele oferece suporte a todas as funcionalidades do PostgreSQL e possui uma interface gráfica intuitiva para facilitar a administração do banco de dados. Hibernate O Hibernate é um framework em Java que facilita a integração entre modelos de objetos e bancos de dados relacionais. Ele mapeia classes Java para tabelas de banco de dados e tipos de dados Java para tipos SQL, simplificando as interações entre Java e bancos de dados. Vraptor 3 O VRaptor 3 é um framework MVC em Java que simplifica o desenvolvimento de aplicações web, priorizando a simplicidade e organização do código, facilitando tarefas como manipulação de informações e geração de resultados em diferentes formatos. Ele adota o conceito de POJOs para lógica de negócios, promovendo a criação de objetos Java simples e resultando em um código mais limpo e legível. Jquery A jQuery é uma biblioteca JavaScript amplamente utilizada para simplificar o desenvolvimento web, oferecendo recursos como seleção de elementos HTML, manipulação de eventos, animações e interações Ajax. Criada por John Resig, destaca-se por sua sintaxe fluente e arquitetura extensível com plugins. A jQuery simplifica a criação de interatividade em páginas web, oferecendo recursos para adicionar efeitos visuais, manipular o DOM, realizar requisições ao servidor e atualizar conteúdo dinamicamente. Compatível com os padrões web, suporta diversos sistemas operacionais, navegadores e CSS3, exigindo que os desenvolvedores sigam as diretrizes do W3C para garantir a validade do documento. JBoss 7 O JBoss Application Server 7, conhecido como AS 7, é uma versão avançada da plataforma de aplicativos JBoss, oferecendo inicialização rápida, baixo consumo de recursos e modularidade. É amplamente adotado por desenvolvedores Java EE para aplicações corporativas, especialmente devido à sua adaptabilidade a ambientes modernos, como nuvem e dispositivos móveis, e sua eficiência em produção. Método O método de desenvolvimento do sistema incorpora as fases clássicas de análise, projeto e implementação, expandindo-as com outras etapas para oferecer uma visão mais detalhada do ciclo de vida do sistema. Inicialmente, uma visão geral é estabelecida e os requisitos são detalhados progressivamente à medida que o projeto avança, permitindo revisões e complementações. As fases não são estritamente lineares, possibilitando iterações e revisões para capturar os requisitos de forma abrangente e precisa, atendendo às necessidades dos usuários finais. MODELAGEM DO SISTEMA E IMPLEMENTAÇÃO O capítulo descreve o desenvolvimento de um sistema de gerenciamento para supermercado, dividido em frente de caixa e retaguarda. A modelagem envolve artefatos como estrutura de banco de dados e diagramas, traduzidos em implementações utilizando diversas tecnologias. Na frente de caixa, o sistema inclui funcionalidades como registro de produtos e controle de pagamentos, enquanto na retaguarda abrange gerenciamento de estoque e fluxo de caixa. O objetivo é criar um sistema completo e integrado que atenda às necessidades de gestão do supermercado. Visão geral do sistema O sistema de gerenciamento de supermercado descrito inclui duas partes principais: a frente de caixa e a retaguarda. Na frente de caixa, as vendas são processadas, e os usuários têm acesso apenas às funcionalidades de venda. Cada terminal possui um banco de dados local para operações offline, e o sistema gera relatórios de estoque e vencimento de produtos. No controle financeiro, são abordados aspectos como contas a pagar/receber e gestão de despesas. No módulo administrativo, são cadastradas pessoas e emitidas notas fiscais, além de controlar gastos e promoções. O sistema também permite o gerenciamento de empresas com matriz e filiais. Fontes: https://repositorio.utfpr.edu.br/jspui/bitstream/1/15592/3/PB_COA DS_2013_2_12.pdf : 872-2382-1-RV (1).doc Revista Eletrônica de Sistemas de Informação Tecnológica (Uni- Facef) TECNOLOGIA JAVA NO DESENVOLVIMENTO DE SISTEMA DE VENDAS PARA CONTROLE DE CAIXA E ESTOQUE INTRODUÇÃO A evolução constante dos negócios traz consigo diversos desafios para o dia a dia dos empresários, principalmente relacionados à complexidade dos dados. Empresas que não aderiram à implementação de sistemas de dados correm o risco de perder informações cruciais ou armazenar dados inúteis para o seu funcionamento. A implementação desses sistemas é uma resposta para lidar com os desafios e riscos associados à perda de dados. Com isso em mente foi desenvolvido um software utilizando a linguagem de programação Java, com a implementação dos frameworks Hibernate e JasperReports, para auxiliar nos processos rotineiros de empresas do ramo de vendas. FUNDAMENTAÇÃO TEÓRICA Horstmann (2005) diz que, no campo da tecnologia, a linguagem de programação Java destaca-se como uma ferramenta versátil graças à sua portabilidade e rica biblioteca padrão. Gilfillan (2003) afirma que o uso de Sistemas de Gerenciamento de Banco de Dados (SGBD) como o MySQL, que incorpora muitas das funções necessárias para outros ambientes, mantendo sua alta velocidade e ainda apresentando poderosas permissões do sistema, e frameworks como Hibernate, que realiza o mapeamento objeto/relacional de peso leve para Java, que deixa mais fácil e eficiente o trabalho com informações de banco de dados relacional na forma de objetos Java, facilitam o gerenciamento eficiente de grandes volumes de dados e simplificam o acesso e manipulação das informações, o que é indispensável para a organização e segurança de uma empresa. Também é importante mencionar que, segundo Larman (2002), para evitar futuros problemas durante o desenvolvimento de sistemas e ainda obter melhor controle e organização, é recomendável a utilização do Unified Modeling Language (UML), visto que esta é uma linguagem visual para especificar, construir e documentar as necessidades do sistema. Dentro do conceito de UML, existem diferentes tipos de diagramas. Bezerra (2007) os resumem da seguinte forma: o diagrama de caso de uso, que corresponde a um comportamento específico que é produzido por objetos que compõem o sistema, o diagrama de classe, onde é mostrada a estrutura estática do modelo, em que seus elementos são representados por classes e também o diagrama de sequência, que trabalha com a ordem temporal da troca de mensagens entre objetos envolvidos de algum processo. No desenvolvimento do software, existem vários padrões de projeto para melhor controle, organização e compreensão do sistema a ser desenvolvido. Um padrão frequentemente usado é o Model View Controller que, de acordo com Lima (2012), é considerado uma arquitetura padrão utilizada na Engenharia de Software. Ele separa a lógica da aplicação da interface do usuário, permitindo testar e desenvolver cada parte separadamente. Carvalho (2001) afirma que o padrão MVC possui três camadas: a camada de visualização, que possui a parte de interface visual que recebe os dados inseridos pelo usuário e retorna as mensagens do sistema, a camada de controle define a maneira que a interface reage a uma entrada feita pelo usuário e a camada de modelo, que contém toda lógica daaplicação e representa os dados e as regras de negócio. Segundo Elliott, O'brien e Fowler (2009), uma opção para prover o isolamento da tecnologia de persistência no desenvolvimento do software é o padrão Data Access Object (DAO). O padrão DAO isola o código da aplicação do código responsável pela manipulação de registros no banco de dados, o que significa que ele consegue colocar todas as operações de persistência ao banco de dados em uma única interface, fornecendo também uma implementação dessa interface que pode utilizar qualquer quantidade de diferentes API's de persistência. Para ter a possibilidade de realizar verificações e experimentos antes de o sistema ser finalizado definitivamente, o ciclo de desenvolvimento Prototipação pode ser empregado. Segundo Lessa & Junior (2006), prototipação é, resumidamente, a montagem de protótipos, e pode ser classificada com uma variedade de dimensões, além de trazer vantagens, como não precisar que os requisitos sejam completamente determinados antes do início e maior participação e interação do usuário no processo de desenvolvimento. ETAPAS DO DESENVOLVIMENTO DO TRABALHO O ciclo de vida que orientou o desenvolvimento do software foi a prototipação, iniciando com a coleta de requisitos por meio de diálogos com o proprietário de uma empresa da área de vendas, que acabou se tornando parceira no desenvolvimento do software. Durante conversas informais, foram levantados os seguintes requisitos necessários para um sistema de gerenciamento de vendas: realizar vendas, cadastrar caixas, vendedores, auxiliares de estoque, clientes, produtos, departamentos, setores, seções, fornecedores e transportadoras e a necessidade de geração de relatórios informativos. Após a coleta de requisitos e a criação de um protótipo rápido. No apêndice A, estão registrados os requisitos coletados, enquanto a visualização do protótipo rápido pode ser encontrada no apêndice B. Este protótipo foi submetido à avaliação do usuário, cujo registro está disponível no apêndice C. Depois disso, procedeu-se à elaboração dos diagramas UML usando o Astah. Esses diagramas incluíram os de caso de uso, classe e sequência, disponíveis nos apêndices D, E, F, G e H. Em seguida, utilizando o MySQL Workbench, foi iniciada a modelagem do banco de dados, cujo registro se encontra no apêndice I. Na fase seguinte, o desenvolvimento do software começou seguindo os padrões MVC, para o projeto e o padrão, e DAO, no trabalho com banco de dados. O mapeamento foi realizado com Annotations do Hibernate para persistência no banco de dados, facilitando a identificação de tabelas e atributos. Depois de implementar as classes de modelo, as classes DAO foram criadas no pacote de controle, responsáveis pelas operações salvar, excluir, alterar e listar. Para consultas no banco de dados, foram utilizadas a API Criteria e o Hibernate Query Language (HQL) para facilitar as consultas. Posteriormente, deu-se início ao desenvolvimento das interfaces do sistema, localizadas no pacote Visão. Utilizando a ferramenta NetBeans, foram desenvolvidas telas padronizadas para maior facilidade de uso, com layouts de conjunto de grade predominantes. As telas de cadastro possuem informações gerais na parte superior, uma tabela com registros do banco de dados no meio e botões na parte inferior direita. Após a avaliação de um protótipo, foram criadas telas de pesquisa com acesso rápido, onde apenas os dados são listados para o usuário, com campos de busca na parte superior e uma tabela abaixo para apresentar os registros. Além disso, foram oferecidos temas para escolha do usuário. Algumas das heurísticas aplicadas são a visibilidade de status, relacionamento entre a interface e o mundo real, consistência, prevenção de erros, reconhecimento ao invés de lembrança, flexibilidade e eficiência de uso, estética e design minimalista, e assistência na compreensão de erros. As telas que demonstram a implementação dessas heurísticas estão nos apêndices I e J. Logo depois foram criados relatórios utilizando a biblioteca Jasper Reports com a ferramenta iReport para automatizar o processo de elaboração do design do relatório por meio de código XML. Após a codificação do sistema, uma nova avaliação foi realizada com a participação de quatro usuários. Os usuários diagnosticaram e listaram erros encontrados, esses que foram foram corrigidos e as alterações foram implementadas para a versão final do sistema, junto também de modificações solicitadas pelo proprietário da empresa. As quatro fichas de avaliação dos erros encontrados estão nos apêndices L,M, N e O, e a ficha de avaliação contendo as alterações desejadas encontra-se no apêndice P. Já a ficha de avaliação final do sistema se encontra no apêndice Q. RESULTADOS É necessário que as empresas que atuam na área de vendas mantenham seus processos seguros e organizados. E ao desenvolver um sistema para empresas desse ramo, é fundamental que sejam implementadas validações e permissões de acesso para que não ocorram problemas que possam, futuramente, prejudicar a gestão da empresa. As avaliações com os usuários demonstraram que o software agiliza o gerenciamento de vendas, minimizando o risco de perda de informações e oferecendo facilidade de uso. Os relatórios de controle de vendas fornecem dados importantes, como movimentação da empresa, produtos e clientes cadastrados, e lucros dos vendedores. O ciclo de vida de prototipação permitiu ajustes conforme as necessidades, enquanto os diagramas da UML proporcionaram compreensão das funcionalidades necessárias. Já o desenvolvimento em Java, seguindo a orientação a objetos, simplificou o processo, com reaproveitamento de código e facilitando futuras manutenções. O uso do Hibernate simplificou o desenvolvimento de relatórios e operações, e também das classes responsáveis pela manipulação e dos dados de persistência de dados, enquanto o NetBeans e os plugins do iReport aceleraram a criação de relatórios. Este trabalho proporcionou um ganho de conhecimento em tecnologias e padrões, além de uma compreensão dos processos de empresas de vendas. CONSIDERAÇÕES FINAIS O objetivo do presente estudo consistiu no desenvolvimento de um sistema, com a utilização da linguagem Java, orientado a objetos, banco de dados MySQL e frameworks JasperReports e Hibernate, a fim de controlar o gerenciamento de empresas que trabalham com vendas. REFERÊNCIAS BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. 2a ed. Rio de Janeiro: Elsevier, 2007. CARVALHO, Sérgio Teixeira. Um design pattern para a configuração de arquiteturas de software. Niterói: UFF/CTC, 2001. ELLIOTT, James; O'BRIEN, Tim; FOWLER, Ryan. Dominando hibernate. Rio de Janeiro: Alta Books, 2009. GILFILLAN, Ian. Bíblia de MySQL. Espanha - Madrid: Anaya Multimedia, 2003. HORSTMANN, Cay. Conceitos de computação com o essencial de Java. 3ª ed. Porto Alegre: Bookman, 2005. LARMAN, Craig. Utilizando UML e padrões. 3a ed. Rio Grande do Sul: Bookman, 2002. LESSA, Rafael Orivaldo; JUNIOR, Edson Orivaldo Lessa. Modelos de processos de engenharia de software. Santa Catarina, 2006. LIMA, Adilson da Silva. UML 2.3: do requisito à solução. São Paulo: Érica Ltda, 2012. O uso de probabilidade para método de vendas A probabilidade desempenha uma função muito importante com base no que se diz respeito a compra. Com base no histórico de compras, preferências do usuário e comportamento de navegação, é possível usar algoritmos de recomendação para sugerir produtos relevantes. O Java oferece bibliotecas como o Apache Mahout para implementar esse tipo de sistema. A probabilidade também pode ser usada para ajustar preços com base na demanda e oferta, em tempo real. O Java é adequado para processar grandes volumes de dados, com isso em mente, é viavel usar técnicas estatísticase probabilísticas para prever tendências de vendas, estoque e demanda. Isso ajuda a tomar decisões informadas sobre compras, promoções e logística. Na prática como ela é implementada? A probabilidade normalmente é usado para testes A/B, onde diferentes variantes (por exemplo, páginas de produto, botões de chamada para ação) são comparadas para determinar qual gera mais conversões. O Java pode ser usado para implementar esses testes e analisar os resultados. Modelos probabilísticos, como o funil de conversão, ajudam a entender o processo pelo qual os visitantes se tornam clientes. O que também vale para criar dashboards e visualizações que mostram o progresso da filtragem e identificar as informações mais importantes. Modelos de séries temporais como ARIMA (AutoRegressive Integrated Moving Average), que preveem vendas com base em padrões históricos, permitindo criar simulações de mercado para entender cenários hipotéticos (impacto de mudanças nos preços, promoções ou estratégias de marketing) Na gestão financeira, esses métodos podem também ser usados para integrar sistemas de pagamento, cálculo de frete e rastreamento de pedidos. Por fim, para prever tendências no mercado com base em um banco de dados e padrões, a probabilidade se torna um meio essencial para que empreendedores e empresas explorem horizontes além do habitual. MK MANAGER: SOFTWARE PARA CADASTRO E GERENCIAMENTO DE COSMÉTICOS INTRODUÇÃO A maquiagem teve seu surgimento no Egito, por volta do ano 3000 a.C. A partir de algumas práticas, a maquiagem foi tomando forma e se espalhando pelo mundo (Zattini, 2022). Existe uma alta demanda por produtos de maquiagem no Brasil e, conforme os dados disponibilizados pela Euromonitor International, o país conseguiu render cerca de 29,62 bilhões de dólares no ano de 2019, ocupando o quarto lugar no ranking mundial de cosméticos. Com isso em mente, podemos afirmar que é necessário que haja um controle daquilo que se é vendido. O cadastro e o gerenciamento de produtos podem ser considerados um pilar para a administração e os demais processos de um negócio, como controle de estoque e planejamento de compras. Em vista disso, este projeto visa criar um sistema desktop que gerencie e catalogue as mercadorias de uma revendedora de cosméticos. Dessa forma, o sistema oferece mais praticidade ao ser manuseado sem a preocupação da conexão com internet para ser utilizado. Além disso, o programa conta com uma funcionalidade de emitir um relatório mensal que mostra quais foram seus produtos mais vendidos FUNDAMENTAÇÃO TEÓRICA Foi realizado um levantamento sobre softwares com o mesmo objetivo do sistema proposto. A OTK Sistemas (Figura 1) é uma empresa voltada para a metodologia em implantações de sistemas. O software desta empresa oferece funções que registram suas compras, seu estoque e controle financeiro. Figura 1: Tela principal do sistema OTK. Fonte: OTK SISTEMAS, 2022. Nex, outro software para gerenciamento de produtos desenvolvido pela empresa Nextar, está apresentado na Figura 2. O Nex possui um sistema para cadastros de clientes, fornecedores e vendedores e também gerencia vendas e estoque. Figura 2: Software Nex. Fonte: NEXTAR, 2022. A figura 3 apresenta o Vhsys, software feito pela empresa de mesmo nome. Ele permite o controle de estoque, cadastro de clientes, produtos, emissões de notas fiscais e entre outros tipos de serviços. Figura 3: Sistema Vhsys. Fonte: VHSYS, 2022. O MK Manager, sistema proposto neste trabalho, possui as mesmas funções que os softwares acima. Porém o sistema apresentará a função de relatórios, permitindo que o usuário visualize seus lucros e suas perdas durante os meses e, desse modo, aprimorar o seu negócio. ETAPAS DO DESENVOLVIMENTO DO TRABALHO Dados foram coletados por meio de um questionário feito na plataforma Microsoft Forms. O questionário continha cinco perguntas sobre o uso do software para controle de estoque e foi divulgado em diversas redes sociais. Foram obtidas 66 respostas de pessoas que trabalham com a comercialização de cosméticos. A UML (Unified Modeling Language) foi adotada para modelar e documentar as diversas fases do desenvolvimento de sistemas orientados a objetos (Noleto 2022). Para modelagem de diagrama de entidades e relacionamento foi utilizado a ferramenta Miro. Já para a elaboração do design vetorial de interfaces e protótipos do sistema, foi utilizada a ferramenta online Figma. Na criação de diagramas de classe, caso de uso e atores do sistema foi utilizado o programa Astah UML - Free Student License. A linguagem de programação C# foi a escolhida para o desenvolvimento do projeto, junto do ambiente integrado de desenvolvimento de software, Microsoft Visual Studio 2022. O GitHub foi o escolhido para o controle das versões do programa. Também foi utilizado o framework Guna UI para a criação das telas do sistema, que contém ferramentas adicionadas por DLL, agilizando a codificação do projeto. O SQL Server, ferramenta que serve como sistema de gerenciamento de bancos de dados relacionais, foi utilizada na parte de banco de dados. Seu foco é permitir implementação da linguagem SQL em estruturas, garantindo um trabalho com os padrões desse tipo de ordenação dos dados (Souza, 2020). RESULTADOS 1. Pesquisa Através da pesquisa online, dados sobre quais são os recursos mais utilizados para controlar vendas, lucros e estoque foram obtidos. Analisando as respostas, foi percebido que aproximadamente apenas 5% das pessoas utilizam um sistema próprio para isso, e 45,5% utilizam anotações de caderno, sendo essa a forma mais popular. Depois disso, os contribuidores foram questionados se, com base nos métodos que eles utilizam para organizar seu negócio, é possível ter uma exatidão de suas vendas. 60,6% afirmam que sim, já 33,3% dizem não ter total certeza. Em seguida, eles foram questionados sobre algumas funcionalidades que desejam ter em seu comércio. Foi observado que 59,1% dos comerciantes gostariam de obter projeção de lucro anual, controle de clientes e controle de estoque. E, por fim, foi reservado um espaço para que os comerciantes pudessem explicar o motivo pelo qual eles gostariam de trabalhar com um sistema que exercesse as funções citadas anteriormente. Optimização do tempo e controle amplo da empresa foram algumas das respostas mais comuns. Com base na pesquisa, é seguro afirmar que a maioria dos contribuidores não possuem um sistema que os auxilie com seus respectivos comércios. Levando isso em conta, o MK Manager propõe ajudá-los com as funções necessárias para que os seus negócios cresçam e evoluam. 2. Modelagem orientada a objetos As modelagens de casos de uso definem as ações e fluxos que estarão presentes no sistema e interatividade dos usuários com ele. “Um caso de uso pode ser tomado como um cenário simples que descreve o que o usuário espera de um sistema” (Sommerville, 2011, p. 86). O padrão UML (Unified Modeling Language), ou Linguagem de Modelagem Unificada, define os “atores” como pessoas ou até mesmo hardwares e softwares que, de alguma forma, estarão diretamente ligados ao sistema. Considerando que esse projeto foi pensado para revendedores de cosméticos que operam seu negócio de maneira autônoma, foi identificada a necessidade de somente um ator. O ator do sistema é denominado Usuário, que fará o cadastro de seus produtos e clientes e terá total acesso e controle das funcionalidades do sistema. De acordo com Guedes (2011), os casos de uso se referem aos serviços, tarefas ou funcionalidades que podem ser utilizados de alguma maneira pelos atores que interagem com o sistema. Já o Diagrama de Classes pretende mostrar como as “classes do sistema se relacionam, complementam e transmitem informações entre si. Esse diagrama apresenta uma visão estática de como as classes estãoorganizadas” (Guedes, 2011, p. 101). 3. Logotipo da aplicação e telas do sistema Aqui é apresentado o logotipo e as principais telas do sistema. Na Figura 4 é exibido o logotipo do sistema, composto pelas letras “M” e “K”, uma abreviação da palavra “Mary Kay” (marca norte-americana vendedora de cosméticos). Figura 4: Logotipo da MK Manager Fonte: Elaborada pelos autores do artigo. Já na figura 5, é apresentada a tela principal do sistema, exibindo uma mensagem de boas- vindas e, no seu lado esquerdo, suas funcionalidades, junto com um botão inferior que permite que o usuário peça ajuda com assuntos relacionados à utilização do MK Manager. Figura 5: Tela principal do MK Manager. Fonte: Elaborada pelos autores do artigo. A figura 6 apresenta a tela onde será realizado o cadastramento de clientes, onde são pedidas algumas informações básicas, como nome, e-mail e número de telefone. Figura 6: Tela de cadastro de cliente. Fonte: Elaborada pelos autores do artigo. E por fim, a figura 7 exibe a tela de produtos. Aqui serão cadastrados as mercadorias do usuário, onde será possível colocar a quantidade, preço, o tipo daquele produto e, se desejar, uma breve descrição dele. Figura 7: Tela de listagem de produtos. Fonte: Elaborada pelos autores do artigo. CONSIDERAÇÕES FINAIS O MK Manager ainda está em desenvolvimento, mas ainda que não esteja 100% funcional, espera-se que com mais alguns ajustes ele possa se tornar completamente eficaz, assim como foi proposto. É esperado que o MK Manager possa ajudar empresas, microempreendedores e revendedores a aprimorarem seu negócio. A divulgação do sistema será feita nas redes sociais, com publicações criativas que despertem curiosidade sobre o sistema e façam com que o público alvo queira checar o que ele tem a oferecer. REFERÊNCIAS BRASIL é o quarto maior mercado de beleza e a Adventures está de olho nisso para transformar o setor. Revista Capital Econômico, 28 jan. 2022. Disponível em: https://revistacapitaleconomico.com.br/brasil-e-o-quarto-maior-mercado-de-beleza-e-a-adve ntures-esta-de-olho-nisso-para-transformar-o-setor/ GUEDES, G. T. A. UML 2: uma abordagem prática 2. ed. São Paulo: Novatec, 2011. NEXTAR. Nex. Disponível em: https://www.nextar.com.br/?gclid=Cj0KCQiA14WdBhD8ARIsANao07idJw5Vcvp1Ba4COU% 20wDV-lxuxmNSTVKueh1x0nwF2q2QQj3F8DHM98aAvVDEALw_wcB NOLETO, C. UML: o que é, para que serve e quando usar essa linguagem de notação? 2022. Disponível em: https://blog.betrybe.com/tecnologia/uml/ OTK SISTEMAS. Sistema de gestão online: ERP OTK web. Disponível em: https://www.otk.com.br/sistema-de-gestao-online-otk-web SOUZA, I. PostgreSQL: saiba o que é, para que serve e como instalar. 2020. Disponível em: https://rockcontent.com/br/blog/postgresql/ ZATTINI. A evolução da maquiagem: do Egito Antigo aos tempos atuais. In: ZATTINI. Blog Zattini. São Paulo. Disponível em: https://www.zattini.com.br/blog/beleza/post/a-evolucao-da-maquiagem-do-egito-antigo-aos-t empos-atuais VHSYS. Vhsys. Disponível em: https://www.vhsys.com.br/ https://revistacapitaleconomico.com.br/brasil-e-o-quarto-maior-mercado-de-beleza-e-a-adventures-esta-de-olho-nisso-para-transformar-o-setor/ https://revistacapitaleconomico.com.br/brasil-e-o-quarto-maior-mercado-de-beleza-e-a-adventures-esta-de-olho-nisso-para-transformar-o-setor/ https://www.nextar.com.br/?gclid=Cj0KCQiA14WdBhD8ARIsANao07idJw5Vcvp1Ba4COU%20wDV-lxuxmNSTVKueh1x0nwF2q2QQj3F8DHM98aAvVDEALw_wcB https://www.nextar.com.br/?gclid=Cj0KCQiA14WdBhD8ARIsANao07idJw5Vcvp1Ba4COU%20wDV-lxuxmNSTVKueh1x0nwF2q2QQj3F8DHM98aAvVDEALw_wcB https://blog.betrybe.com/tecnologia/uml/ https://www.otk.com.br/sistema-de-gestao-online-otk-web https://rockcontent.com/br/blog/postgresql/ https://www.zattini.com.br/blog/beleza/post/a-evolucao-da-maquiagem-do-egito-antigo-aos-tempos-atuais https://www.zattini.com.br/blog/beleza/post/a-evolucao-da-maquiagem-do-egito-antigo-aos-tempos-atuais https://www.vhsys.com.br/ SISTEMA DE BANCO DE DADOS SIMPLES PARA COMÉRCIO EM JAVA Quando se tem um estabelecimento, seja uma mercearia ou uma loja de grande porte, é obrigatório, como uma das etapas para se obter sucesso no cenário empresarial, ter uma boa organização sobre as informações do seu próprio negócio. Sendo elas dados de vendas, clientes, estoque e contabilidade. Atualmente, existem sistemas de banco de dados que conseguem facilitar o trabalho de toda uma empresa em relação a administração de dados. Uma das linguagens de programação utilizadas para obter tal solução é o Java, que é referência na área de TI. Desde seu lançamento, em maio de 1995, O Java é aclamado no mundo todo, sendo a linguagem mais rápida a ser adotada do que quaisquer outras na história da programação. (Deitel, Harvey M.) Usaremos esta linguagem como base para resolvermos nosso problema de como iremos programar um banco de dados para nosso estabelecimento. Para desenvolvermos tal sistema, utilizaremos uma abordagem estruturada, dividindo-a em: 1. Análise de Requisitos: Iniciaremos identificando os requisitos do sistema, abrangendo funcionalidades básicas, como por exemplo, o cadastro de produtos, clientes, gestão de vendas e requisitos não funcionais (desempenho, segurança, usabilidade). 2. Modelagem do Sistema: Diagramas UML serão utilizados para representar a estrutura e o comportamento do sistema, incluindo diagramas de classe, de sequência e de atividade. 3. Implementação: Após estas duas etapas serem concluídas, escreveremos o código Java para implementar as funcionalidades do sistema, organizando o código de forma eficiente e manutenível, utilizando padrões de design como o MVC (Model-View-Controller), um padrão de design usado para desacoplar a interface do usuário, os dados e a lógica do aplicativo, no caso, a exibição, o modelo, e o controlador do tal. 4. Persistência de Dados: Utilizaremos um banco de dados para armazenar os dados do sistema, como produtos, clientes e vendas. Isso pode ser feito com JDBC ou frameworks de persistência, como Hibernate. 5. Interface do Usuário: Desenvolvendo uma interface de usuário intuitiva e amigável, utilizando bibliotecas gráficas como JavaFX ou Swing, será mais fácil para os funcionários poderem utilizar de tal programa facilmente, sem muitas complicações. 6. Testes: Realizando testes de unidade, integração e aceitação, iremos garantir que o sistema funcione conforme o esperado e atenda aos requisitos do usuário. 7. Implantação: Implantaremos o sistema em um ambiente de produção, garantindo que todos os pré-requisitos, como servidor de aplicativos e banco de dados, estejam configurados corretamente para o devido funcionamento do programa. Fontes: PINTO, L. Desenvolvimento de software web de controle de vendas para uma farmácia. 2018. Faculdade de Tecnologia de Botucatu. Disponível em: www.jornacitec.fatecbt.edu.br/index.php/VIIJTC/VIIJTC/paper/view/1668. Acesso em: 16 mar. 2024. SANTOS, J. SISTEMA DE VENDAS COM CONTROLE DE ESTOQUE. 2020. Revista Eletrônica de Computação Aplicada. Disponível em: http://periodicos.unifacef.com.br/reca/article/view/2047. Acesso em 16 mar. 2024. https://www.jornacitec.fatecbt.edu.br/index.php/VIIJTC/VIIJTC/paper/view/1668 http://periodicos.unifacef.com.br/reca/article/view/2047 Nomes: Annie Moreira Martins Letícia Rodrigues Cataldo Luiz Gustavo dos Santos Pereir Carlos Magno Gonçalves Alves Aplicação da Tecnologia Java no Desenvolvimento de Sistema de Controle de Estoque Comparação Após a Implementação do Controle de Estoques Quadro de Aprovação das Funcionalidades CADASTRAR FORNECEDOR CADASTRAR GRUPOS ENTRADA E SAÍDA DE ESTOQUES CADASTRAR CÓDIGO FORNECEDOR CADASTRAR USUÁRIOS ESTORNO DE ENTRADA E SAÍDA DE ESTOQUES RELATÓRIOS Considerações Iniciais Objetivo geral Objetivos específicos Justificativa APLICAÇÕESJAVA WEB Arquiteturas web convencionais Arquiteturas web baseada em Java Aplicações Java baseadas em servlets Aplicações Java baseadas em JavaServer Pages Aplicações Java baseadas em Model-View-Controller Materiais IDE Eclipse PgAdmin Hibernate Vraptor 3 Jquery JBoss 7 Método MODELAGEM DO SISTEMA E IMPLEMENTAÇÃO Visão geral do sistema INTRODUÇÃO FUNDAMENTAÇÃO TEÓRICA ETAPAS DO DESENVOLVIMENTO DO TRABALHO RESULTADOS CONSIDERAÇÕES FINAIS REFERÊNCIAS O uso de probabilidade para método de vendas INTRODUÇÃO FUNDAMENTAÇÃO TEÓRICA ETAPAS DO DESENVOLVIMENTO DO TRABALHO RESULTADOS CONSIDERAÇÕES FINAIS REFERÊNCIAS Fontes: