Baixe o app para aproveitar ainda mais
Prévia do material em texto
UNISALESIANO Centro Universitário Católico Salesiano Auxilium Curso de Tecnologia em Sistemas para Internet Luis Augusto Moura Brandão Mauricio Pavanelli Piona Maycon Casarini Vieira SGE – Sistema Gerenciador de Estoque LINS – SP 2011 LUIS AUGUSTO MOURA BRANDÃO MAURICIO PAVANELLI PIONA MAYCON CASARINI VIEIRA SGE – SISTEMA GERENCIADOR DE ESTOQUE Trabalho de Conclusão de Curso apresentado à Banca Examinadora do Centro Universitário Católico Salesiano Auxilium, curso de Tecnologia em Sistemas para Internet, sob a orientação do(a) Prof. (ª) M.Sc Luiz Eduardo Cortes Bergamo LINS – SP 2011 Brandão, Luis Augusto Moura; Piona, Mauricio Pavanelli; Vieira, Maycon Casarini; Tecnologia em desenvolvimento de sistemas para Internet: SGE – Sistema Gerenciador de Estoque / Luis Augusto Moura Brandão; Mauricio Pavanelli Piona; Maycon Casarini Vieira. – – Lins, 2011. 79p. il. 31cm. Monografia apresentada ao Centro Universitário Católico Salesiano Auxilium – UNISALESIANO, Lins-SP, para graduação em Tecnologia em Desenvolvimento de Sistemas para Internet, 2011 Orientador: Luiz Eduardo Cortes Bergamo 1. Gerenciamento de Estoque. 2. Código Livre. 3. Aplicação WEB I. Título. CDU 004 B818t LUIS AUGUSTO MOURA BRANDÃO MAURICIO PAVANELLI PIONA MAYCON CASARINI VIEIRA SGE – SISTEMA GERENCIADOR DE ESTOQUE Monografia apresentada ao Centro Universitário Católico Salesiano Auxilium, para obtenção do título de Tecnólogo em Sistemas para Internet. Aprovada em: _____/______/_____ Banca Examinadora: Prof(a) Orientador(a): _____________________________________________ Titulação: ______________________________________________________ _______________________________________________________________ Assinatura: _________________________________ 1º Prof(a): ______________________________________________________ Titulação: ______________________________________________________ _______________________________________________________________ Assinatura: _________________________________ 2º Prof(a): ______________________________________________________ Titulação: ______________________________________________________ _______________________________________________________________ Assinatura: _________________________________ DEDICATÓRIA Dedico aos meus pais e familiares com muito amor, pois sem eles não conseguiria alcançar esse sonho e com isso sigo em frente com mais um vitória em minha vida sempre... Quero “tropeçar” e depois "continuar"... Quero “cair” e depois "levantar"... Quero "chorar" e depois "sorrir"... Quero "perder" e depois "ganhar"... Quero "não ser" e depois "ser"... Quero "correr o mundo" e voltar ao "ponto de partida"... Quero simplesmente "errar" para depois "acertar"... Quero "brigar" para depois "amar"... Quero "sentir frio" para depois sentir "calor"... Quero-me "molhar" para depois me "secar"... Quero "olhar para vocês" e dizer não somente "pais”; mas poder dizer junto destes "pais", eu "amo vocês"... Luis Augusto Dedico este trabalho primeiramente a Deus, que nos possibilitou mais essa etapa em nossas vidas. Dedico também a Michelle Siviero que por muitos momentos esteve ao meu lado, também dedico a toda sua família, que deram grande apoio para que tudo desse certo. Dedico aos meus pais Leonisio e Angelina, mesmo por não estarem presentes e certos momentos da minha vida, ainda assim são meus pais, e sem eles não teria com estar nesse mundo. Dedico também para meus amigos de sala e de Trabalho de Conclusão de Curso, Maycon e Luis Augusto. Maurício Dedico este trabalho primeiramente a Deus, pois sem Ele, nada seria possível. Aos meus pais, Jairo e Zizi, que em nenhum momento mediram esforços para que eu chegasse aonde cheguei. Amo muito vocês! Aos meus irmãos Jam, Dayana, minha avó Nadir e meu sobrinho Arthur, que estiveram sempre ao meu lado me dando força e me ajudando a seguir o caminho correto da vida. Não sei viver sem ter vocês. Sem esquecer da minha sobrinha Maria Eduarda que está por vir Em especial Fernanda Ravazi que nesta etapa da minha vida, esteve o tempo todo ao meu lado me ajudando e nunca desistiu de mim. Você é muito especial pra mim. Maycon AGRADECIMENTOS Agradeço à minha família por estarem sempre ao meu lado, apoiando-me e incentivando-me em todos os momentos. À minha namorada, pelo amor, carinho e compreensão e também por sua ajuda, sem a qual este trabalho não ficaria pronto. Ao meu orientador, Luiz Eduardo C. Bergamo e o professor Anderson Pazin que me auxiliou nesta jornada, compartilhando suas idéias e reflexões, e também por seu apoio e compreensão. Agradeço também a todos os amigos que conviveram comigo durante esse tempo todo, pelos momentos agradáveis e descontraídos, e também pelos momentos de concentração e estudos. E, principalmente, a Deus. Não apenas pelas oportunidades e desafios que ele tem colocado diante de mim, mas, sobretudo por iluminar meu caminho e guiar meus passos, hoje e sempre. Luis Augusto Agradeço primeiramente a Deus, que nos deu essa chance de estar nos formando, de poder mostrar que não foi por acaso que escolhemos este curso, também por ter colocado alguns obstáculos em nosso caminho, pois aprendemos que nunca devemos desistir mais sim a cada queda nos levantarmos com mais força. Agradeço a meus colegas de sala, que se tornaram grandes amigos, e nos ajudaram em todas as etapas da faculdade, e que proporcionaram ótimos momentos de alegria e descontração. Agradeço minha namorada Michelle e sua família, pelo apoio dado e compreensão nos momentos de desabafo e nervosismo, por alguma etapa do trabalho não estar dando certo. Agradeço também a todos os professores do Unisalesiano, em especial ao nosso orientador Luiz Eduardo C. Bergamo e o professor Anderson Pazin, que em toda hora se mostravam de prontidão a ajudar, o meu muito obrigado por tudo. Aos parceiros de TCC, Luis Augusto e Maycon, minha eterna gratidão e amizade, meu pedido de desculpas pelos momentos de nervosismo e grosseria. Mas espero que esta amizade dure por muito e muito tempo. Um abraço. Maurício Agradeço primeiramente a Deus, pois confiando nele, iluminou meu caminho e fez com que conseguisse chegar até aqui. Aos meus pais Jairo e Zizi que sempre me deram força e estiveram o tempo todo comigo, cobrando sempre o máximo de mim para que hoje fosse a pessoa na qual sou. Aos meus irmãos Jam e a Dadá que sempre estiveram do meu lado me aconselhando e ajudando nos momentos em que mais precisei, irmãos dos quais não tenho o que reclamar, somente agradeço a vocês por tudo. Agradeço também meus amigos, uns mais próximos outros nem tanto, mas que de alguma forma tiveram presença marcante na minha vida, em especial João Banhara, que por muitas vezes quebrou a cabeça me ajudando nos trabalhos da faculdade e sempre me ajudou nos momentos em que precisei ao meu amigo/irmão Coto, que desde quando me conheço por gente está do meu lado sempre me ajudando e como sempre, juntos pro que der e vier. Agradeço também a Fernanda Ravazi que nos últimos tempos esteve sempre comigo me dando força, e nunca desistiu de mim, uma pessoa que em muitos momentos de tristeza e angústia com um singelo sorriso me deixou feliz e que em pouco tempo comecei a sentir um carinho muito forte, gosto muito de você. Agradeço principalmente aos professores Eduardo Bergamo por todos os dias que nos auxiliou no projeto e principalmente pelos conselhos, ao Anderson Pazin por ter paciência conosco nesses anos e nos auxiliando sempreque necessário. A todos que de alguma maneira passaram na minha vida, obrigado. Maycon RESUMO O presente trabalho tem por objetivo apresentar um produto que auxilie no controle de estoque no setor de supermercados. Este setor tem por característica manter em estoque produtos perecíveis, o que faz com que o controle de estoque tenha uma atenção especial, evitando a perda de produtos por vencimento do prazo de validade. Para tanto, é feito um estudo de alguns softwares disponíveis no mercado que tem como objetivo o controle de estoque. O trabalho apresenta alguns pontos levantados das funcionalidades destes softwares e que também são reutilizados como funcionalidades no software desenvolvido, tais como: Relatórios de entrada, saída e situação de produtos. Em especial a funcionalidade da saída de produtos do estoque, que tem as datas de vencimento como controlado principal, é implementada, situação que torna o trabalho do responsável pelo estoque físico mais completo. Um ponto positivo no software desenvolvido é a utilização de tecnologias atuais voltadas para o desenvolvimento web, como a exploração dos recursos da tecnologia AJAX, que permitem a obtenção de uma página mais dinâmica e interativa com o usuário. Tal característica não foi identificada nos softwares pesquisados, que já foram desenvolvidos há algum tempo e se utilizam de tecnologias desatualizadas, como Delphi 7. O projeto utiliza ferramentas de uso gratuito, tais como: Java Enterprise Edition (JEE), como linguagem de programação principal e como plataforma de desenvolvimento é utilizado o Eclipse. Para armazenamento de dados é utilizado o gerenciador de banco de dados Oracle Database Express Edition e para a criação de páginas é utilizado o Microsoft SharePoint Design. O trabalho apresenta a parte teórica sobre as tecnologias utilizadas, além da modelagem do sistema, utilizando UML e finalmente apresenta as funcionalidades de cada uma das interfaces desenvolvidas. Palavras-chave: Gerenciamento de Estoque. Código livre. Aplicação WEB ABSTRACT This work has the objective to present a product that assists in the stock control of the sector merchandise. This sector has for characteristic to keep in perishable stock products, what makes the stock control to have a special attention, avoiding the products loss for period of validity expiration. For as much, a study of some available computer programs in the market that it has as goal the stock control. The work presents some points raised of the functionalities of these programs and that also are reused as functionalities in the developed software. A special attention to the stock products removed from stock, taking in consideration the due dates, is implemented, facilitating the work of the person responsible for the physical stock. A positive point in the developed software is the utilization of current technologies, geared to the web development. Such characteristic was not identified in the searched computer program, that were already developed some time ago and the usage of outdated technologies. The project uses tools of free use, such as: Java Enterprise Edition (J2EE), as the main programming language and as creation platform used the Eclipse. For data storage is used the database manager Oracle Database Express Edition and for the page creation is used the Microsoft SharePoint Design, still exploring the AJAX technology resources, who allow the obtainment of a more dynamic and interactive page with the user. The present work presents the theoretical part about the used technologies, besides the modeling system, using UML and finally presents the functionalities of each one of the developed interfaces. Keywords: Stock management. Free code. WEB Application LISTA DE FIGURAS Figura 1. Classe ............................................................................................. 23 Figura 2. Diagrama de Classes ...................................................................... 24 Figura 3. Diagrama de Caso de Uso .............................................................. 25 Figura 4. Diagrama de Sequência .................................................................. 26 Figura 5. Diagrama de Pacotes ...................................................................... 26 Figura 6. Diagrama de Objetos ....................................................................... 27 Figura 7. Diagrama de Estrutura Composta ................................................... 27 Figura 8. Diagrama de Componentes ............................................................. 28 Figura 9. Diagrama de Implantação................................................................ 28 Figura 10. Caixa de Dialogo com o método alert() ......................................... 34 Figura 11. Caixa de Dialogo com o método prompt() ..................................... 34 Figura 12. Caixa de Dialogo com o método confirm()..................................... 34 Figura 13. Cadastro de produtos - Controle de Estoque, Best Software ........ 39 Figura 14. Saída de produtos - Controle de Estoque, Best Software ............. 39 Figura 15. Relatório de produtos .................................................................... 40 Figura 16. Cadastro de fornecedores ............................................................. 41 Figura 17. Cadastro de empresa .................................................................... 41 Figura 18. Diagrama de Classes completo. .................................................... 45 Figura 19. Diagrama de Use Case – Cadastro de produto ............................. 48 Figura 20. Diagrama de Use Case – Cadastro solicitação de compra ........... 48 Figura 21. Diagrama de Use Case – Cadastro solicitação pendente ............. 49 Figura 22. Diagrama de Use Case – Cadastro entrada produto estoque ....... 49 Figura 23. Diagrama de Use Case – Cadastro saída produto estoque .......... 50 Figura 24. Diagrama de Use Case – Cadastro Fornecedor ............................ 51 Figura 25. Diagrama de Use Case – Gerar relatório ...................................... 51 Figura 26. Diagrama de Seqüência: Usuário solicita cadastro de produto ..... 56 Figura 27. Diagrama Sequência: Usuário cadastra entrada de produto. ........ 57 Figura 28. Diagrama Sequência: Usuário cadastra saída de produto ............ 58 Figura 29. Tela inicial ...................................................................................... 59 Figura 30. Interface de manutenção de produtos ........................................... 60 Figura 31. Manutenção de produto ................................................................. 61 Figura 32. Produto Cadastrado ...................................................................... 62 Figura 33. Entrada de produto ........................................................................ 63 Figura 34. Entrada inserida ............................................................................ 64 Figura 35. Saída de produto ........................................................................... 64 Figura 36. Sub-menu solicitação .................................................................... 66 Figura 37. Solicitação de produtos no sistema ............................................... 66 Figura 38. Atendimento de solicitações efetuadas no sistema ....................... 67 Figura 39. Interface de sub-menu de relatórios .............................................. 68 Figura 40. Relatório de produtos cadastrados ................................................ 69 Figura 41. Relatório de produtos solicitados ................................................... 70 Figura 42. Relatório de solicitações atendidas ............................................... 71 Figura 43. Relatório de entrada de produtos ..................................................71 Figura 44. Relatório de saída de produto ....................................................... 72 Figura 45. Relatório de situação de produtos ................................................. 73 LISTA DE QUADROS Quadro 1. Diferenças entre Java e JavaScript. .............................................. 32 Quadro 2. Diferenças entre JavaScript e Java ............................................... 33 Quadro 3. Lista de Caso de Uso .................................................................... 47 Quadro 4. Estrutura da tabela de usuario ....................................................... 52 Quadro 5. Estrutura da tabela de categoria de produto .................................. 52 Quadro 6. Estrutura da tabela de unidade de medida .................................... 52 Quadro 7. Estrutura da tabela de produtos ..................................................... 53 Quadro 8. Estrutura da tabela de solicitacao .................................................. 53 Quadro 9. Estrutura da tabela de saída de produtos no estoque ................... 54 Quadro 10. Estrutura da tabela de entrada de produtos no estoque .............. 54 Quadro 11. Estrutura da tabela de pedido de produto .................................... 54 Quadro 12. Estrutura da tabela de fornecedor ............................................... 55 Quadro 13. Estrutura da tabela de itens pedidos ........................................... 55 LISTA DE SIGLAS E ABREVIATURAS AJAX: Asynchronous JavaScript and XML CEP: Código de Endereçamento Postal CPF: Cadastro Nacional de Pessoa Física CSS: Cascading Style Sheets FIFO: First In First Out HTML: Hypertext Markup Language J2EE: Java 2 Enterprise Edition LIFO: Last In First Out OMG: Object Management Group OMT: Object Modeling Technique OO: Orientada a Objeto OOSE: Object Oriented Software Engineering PEPS: Primeiro Entrar Primeiro Sair PVPS: Primeiro Vencer Primeiro Sair SQL: Structured Query Language UEPS: Ultimo Entrar Primeiro Sair UF: Unidade da Federação UML: Unified Modeling Language XML: Extensible Markup Language SUMÁRIO INTRODUÇÃO .................................................................................................. 17 1 FUNDAMENTOS CONCEITUAIS ............................................................... 19 1.1 JAVA............................................................................................................ 19 1.2 SISTEMA GERENCIADOR DE BANCO DE DADOS ORACLE.................................. 20 1.3 UNIFIED MODELING LANGUAGE – UML.......................................................... 22 1.3.1 CLASSES................................................................................................... 23 1.3.2 DIAGRAMA DE CLASSES.............................................................................. 23 1.3.3 DIAGRAMA DE CASO DE USO “USE CASE”.................................................... 24 1.3.4 DIAGRAMA DE SEQUÊNCIA.......................................................................... 25 1.3.5 DIAGRAMA DE PACOTES............................................................................. 26 1.3.6 DIAGRAMA DE OBJETOS............................................................................. 27 1.3.7 DIAGRAMA DE ESTRUTURA COMPOSTA........................................................ 27 1.3.8 DIAGRAMA DE COMPONENTES.................................................................... 28 1.3.9 DIAGRAMA DE IMPLANTAÇÃO....................................................................... 28 1.4 CASCADING STYLE SHEETS – CSS............................................................... 29 1.4.1 UTILIZAÇÃO DA TAG LINK............................................................................ 30 1.4.2 UTILIZAÇÃO DA TAG @IMPORT.................................................................... 30 1.5 HIPERTEXT MARKUP LANGUAGE (HTML)....................................................... 31 1.6 JAVASCRIPT................................................................................................. 31 1.6.1 MÉTODOS EM JAVASCRIPT:........................................................................ 33 1.7 ESTOQUE CONCEITOS E CUSTOS................................................................... 35 1.7.1 CUSTOS DE ESTOQUES............................................................................... 35 1.8 MODELO PEPS OU FIFO (FIRST IN, FIRST OUT)………………………………. 36 1.9 MODELO UEPS OU LIFO (LAST IN, FIRST OUT)……………………………….. 37 1.10 MODELO PVPS (PRIMEIRO A VENCER, PRIMEIRO A SAIR)............................... 37 2 LEVANTAMENTO DE REQUISITOS .......................................................... 38 2.1 ANÁLISE DE MERCADO.................................................................................. 38 2.1.1 BEST SOFTWARE....................................................................................... 38 2.1.2 CONTROLE DE ESTOQUE 9.0...................................................................... 40 2.2 DOCUMENTOS DE REQUISITOS...................................................................... 42 2.2.1 VISÃO GERAL DO SISTEMA.......................................................................... 42 2.2.2 REQUISITOS FUNCIONAIS............................................................................ 42 2.2.3 IMPRESSÃO DE DIVERSOS TIPOS DE RELATÓRIOS E CONSULTAS..................... 43 2.2.4 PROCESSAMENTOS.................................................................................... 44 2.3 DIAGRAMA DE CLASSES DO SISTEMA COMPLETO............................................. 45 2.4 DIAGRAMA DE CLASSES IMPLEMENTADO........................................................ 46 3 ANÁLISE ORIENTADA A OBJETOS ......................................................... 47 3.1.1 LISTA DE CASOS DE USO............................................................................ 47 3.2 DIAGRAMA DE CASOS DE USO....................................................................... 48 3.2.1 USE CASE 01 – USUÁRIO CADASTRA PRODUTO.............................................48 3.2.2 USE CASE 02 - USUÁRIO CADASTRA SOLICITAÇÃO DE COMPRA...................... 48 3.2.3 USE CASE 03 - USUÁRIO ATENDE SOLICITAÇÃO PENDENTE............................ 49 3.2.4 USE CASE 04 - USUÁRIO CADASTRA ENTRADA DE PRODUTO NO ESTOQUE...... 49 3.2.5 USE CASE 05 - USUÁRIO CADASTRA SAÍDA DE PRODUTO NO ESTOQUE............50 3.2.6 USE CASE 06 - USUÁRIO CADASTRA FORNECEDOR....................................... 50 3.2.7 USE CASE 07 – USUÁRIO SOLICITA RELATÓRIO............................................ 51 4 PROJETO DE BANCO DE DADOS ............................................................ 52 4.1 TABELAS...................................................................................................... 52 5 PROJETO ORIENTADO A OBJETOS ....................................................... 56 5.1 DIAGRAMAS DE SEQÜENCIAS......................................................................... 56 5.1.1 USUÁRIO SOLICITA CADASTRO DE PRODUTO................................................. 56 5.1.2 USUÁRIO CADASTRA ENTRADA DE PRODUTO NO SISTEMA.............................. 57 5.1.3 USUÁRIO CADASTRA SAÍDA DE PRODUTO NO ESTOQUE.................................. 58 6 IMPLEMENTAÇÃO ORIENTADA A OBJETOS ......................................... 59 6.1 LAYOUT DE INTERFACES............................................................................... 59 6.1.1 TELA INICIAL.............................................................................................. 59 6.1.2 MANUTENÇÃO DE PRODUTOS...................................................................... 60 6.1.3 INTERFACE DE MANUTENÇÃO DE PRODUTOS................................................. 61 6.1.4 INTERFACE DE PRODUTOCADASTRADO........................................................ 62 6.1.5 INTERFACE DE ENTRADA DE PRODUTOS NO ESTOQUE.................................... 63 6.1.6 INTERFACE DE ENTRADA INSERIDA............................................................... 64 6.1.7 INTERFACE DE SAÍDA DE PRODUTO NO ESTOQUE........................................... 64 6.1.8 MANUTENÇÃO DA SOLICITAÇÃO................................................................... 65 6.1.9 INTERFACE SOLICITAÇÃO DE PRODUTO......................................................... 66 6.1.10 INTERFACE DE SOLICITAÇÕES EFETUADAS NO SISTEMA..................................67 6.1.11 INTERFACE DE SUB-MENU DE RELATÓRIO..................................................... 68 6.1.12 INTERFACE DO RELATÓRIO DE PRODUTOS CADASTRADOS NO SISTEMA............69 6.1.13 INTERFACE DO RELATÓRIO DE SOLICITAÇÃO DE PRODUTOS............................ 70 6.1.14 INTERFACE DO RELATÓRIO DE SOLICITAÇÕES ATENDIDAS.............................. 71 6.1.15 INTERFACE DO RELATÓRIO DE ENTRADA DE PRODUTO NO ESTOQUE............... 71 6.1.16 INTERFACE DO RELATÓRIO DE SAÍDA DE PRODUTOS DO ESTOQUE...................72 6.1.17 INTERFACE DO RELATÓRIO DE SITUAÇÃO DO PRODUTO POR ENTRADA.............73 CONCLUSÃO ................................................................................................... 74 REFERÊNCIAS ................................................................................................ 76 GLOSSÁRIO .................................................................................................... 79 17 INTRODUÇÃO Depois de analisado os impactos da informatização na gestão dos supermercados, afirma-se que a evolução ocorrida no setor, foi no sentido da integração das unidades de negócios, da terceirização de atividades não essenciais e das parcerias logísticas com fornecedores, onde o volume de mercadorias em estoque tendem a ser reduzidos e melhor planejados. (SAPATA, 2007) O controle de estoque é uma área muito importante de uma empresa, grande ou pequena, pois é através dele que ela será capaz de prever o quanto será necessário comprar no próximo pedido ao fornecedor. (DIAS, 1995) Estoque é definido como a acumulação armazenada de recursos de materiais em um sistema de transformação. Estoque também é usado para descrever qualquer recurso armazenado. (SLACK; CHAMBERS; JOHNSTON, 2002) Os objetivos do presente trabalho são: Modelar um software capaz de gerenciar o controle de estoques, voltado ao seguimento de supermercados; Implementar parcialmente este software, utilizando-se das tecnologias atualmente disponíveis no mercado e que são aprendidas durante o curso. Com a utilização de conhecimento de campo sobre o assunto, onde com experiência de trabalho e a falta de um software que gerencia-se de tal maneira, foi possível aprendizado suficiente para a escolha do presente tema, na observação de que não existem muitos softwares com este objetivo disponíveis atualmente no mercado, e ainda, os disponíveis foram desenvolvidos com tecnologia ultrapassada, onde pode haver espaço para erros, tanto humano quanto do sistema, não proporcionando um controle de estoque eficaz, ocorrendo à perda de mercadoria. Alem da perda de produtos, existe mais um fator que afeta os custos dentro do supermercado, fator esse que é essencial para a venda, o cliente. 18 Um controle de estoque bem estruturado faz com que as necessidades do cliente sejam sempre supridas, isso cria um relacionamento de confiança entre ambos, onde o consumidor tem a certeza que o produto vendido em determinado estabelecimento esta em ótimas condições de consumo. Sabendo ainda, que um consumidor insatisfeito é uma mídia de divulgação negativa, por motivos alheios, que fizeram com que suas expectativas não fossem atendidas, comprometendo a imagem da empresa, que por sua vez poderá sentir esse efeito financeiramente. O software tem interface amigável e de fácil utilização, foi feito uso de funções que auxiliam o usuário, através de alertas que informam sobre erros e ações efetuadas, também foi utilizado o bloqueio de certas ações, tais como: a digitação de quantidades incorretas, uso de caracteres indevidos e preenchimento incorreto de formulário. 19 1 FUNDAMENTOS CONCEITUAIS 1.1 Java Segundo Pereira (2006), a linguagem Java tem base na linguagem de programação C++. Desenvolvida pela Sun Microsystem, uma linguagem orientada a objeto, seu projeto original teve como foco os dispositivos móveis que deveriam ter características de dispositivos portáveis, seguros e distribuídos.. Ainda segundo Pereira (2006), Java acabou ganhando muito o mercado após seu desenvolvimento, por ter características que a diferenciam de outras linguagens, um grande exemplo desse diferencial é a qualidade apresentada no uso para internet. Resumindo, o Java é uma tecnologia largamente utilizada nos dias de hoje, e deve interessar desde programadores até arquitetos de soluções que lidam com aplicações diversas, e mesmo que não venham a trabalhar com Java, em um futuro próximo grande parte das aplicações web, sistemas de integração e softwares distribuídos ainda serão escritos nessa linguagem. (PEREIRA, 2006, p. 3). Segundo Kölling e Barnes (2004), Java é formada por classes, objetos e métodos. As classes são onde vão ser manipuladas todas as ações de um objeto e descreve o tipo do próprio, os objetos são criados a partir de uma determinada classe, também podem receber o nome de instâncias e são manipulados dentro das classes, já os métodos podem ser definidos como a ação que essa classe poderá realizar. Basicamente as classes são o que se quer manipular, os objetos são as características, os métodos são o que essa classe pode realizar, uma parte importante são os parâmetros que ficam dentro dos métodos, eles fornecem informações adicionais para uma tarefa realizada pelo método. Ainda segundo Kölling e Barnes (2004), os parâmetros em Java possuem tipos de dados que são definidos de acordo com a necessidade da aplicação, tendo formas diferentes, assim como números inteiros, números decimais, caracteres e datas. Segundo Hopson e Ingram (1997), Java foi dita como linguagem para internet, essa referência tem sua base nas aplicações chamadas applets, que 20 são nada mais que pequenos programas tendo como principal característica melhorar a página web. Contudo, os applets do Java são muito mais que pequenos programas que complementam as páginas da web. O Java é um ambiente sofisticado e extensivo, que oferece os alicerces para a construção de aplicativos de qualidade industrial. Essa capacidade é proveniente das várias facetas do Java – desde sua natureza orientada a objetos, até sua simplicidade e possibilidade de funcionar em ambientes distribuídos. Em conseqüência disso, ver Java como uma “simples” ferramenta para aperfeiçoar suas páginas da web é uma forma de subestimar seriamente seus recursos. (HOPSON, 1997, p. Introdução). Ainda segundo Hopson e Ingram (1997), por ser uma linguagem orientada a objeto (OO) e tratar de abstração, encapsulamento e modularidade, faz da linguagem OO uma solução completa, mas para obter uma “Solução completa” Java precisa ser não apenas entendida com uma linguagem de programação, mas sim que ela interage em um ambiente de uso estendido e geral. 1.2 Sistema Gerenciador de Banco de Dados Oracle Segundo Abbey, Corey e Abramson (2000), inicialmente a Oracle era apenas uma empresa de banco de dados, com o surgimento do banco de dados relacional, também surgiu uma nova maneira de pensar como seria feita a estruturação e armazenagem dos dados. O que é um banco de dados? Resumindo ao extremo, banco de dados é um conjunto de programas que manipulam arquivos de dados. Segundo Oracle (2009a), há três princípios básicos para orientação da informação:A simplicidade, padronização e a automatização. Segundo Oracle (2009b), Simplicidade: Quando acelerada a disponibilidade das informações com sistemas integrados em um único banco de dados. Isso se trata do fácil acesso às informações pelas empresas, uma empresa precisa ter o controle de estoque correto e monitorar também os seus concorrentes, saber em que rumo os negócios andam, a velocidade em que às mudanças acontecem, pois, o desempenho corporativo depende de vários pontos, também dependendo de disponibilidade para acesso a informações precisas e consolidadas. 21 Segundo Oracle (2009c), Padronização: Com a redução de custos com equipamentos e utilizando tecnologias que tenham eficiência e proporcionem maior produtividade para a empresa. Segundo Oracle (2009d), Automatização: Distingue duas eras, uma é a era em que o cliente tinha que se preocupar com o funcionamento do seu software, a nova era em que se fala, é a que o cliente não precisa mais se preocupar com o funcionamento do software, mais sim se concentrar no que é critico para sua empresa, assim tornando mais viável. Segundo Ramalho (2005), uma nova tecnologia desenvolvida pela Oracle e lançada no Brasil em novembro de 2003, foi a família de produtos 10g, que inclui em si os produtos Oracle Entreprise Manager 10g, Oracle Application Server 10g e o Oracle database 10g. Podemos citar mais sobre o Oracle Database 10g, trata-se de um gerenciamento dos recursos de rede que são feitos dentro de uma malha corporativa, assim possibilitando que o armazenamento e o processamento dos dados tenham maior agilidade, de uma maneira que se tornem usuais. Ainda segundo Ramalho (2005), a nova tecnologia 10g, fez com que tudo o que já foi feito até a sua criação fosse deixado para trás, pois algumas das principais características dessa nova tecnologia é que exista redução tanto nas infra-estruturas tecnológicas que tem um custo elevado, quanto nos servidores com alta capacidade, para somente suportar picos de demanda. Outra importante parte são as inovações feitas na malha de computação, a primeira das inovações foi padronizar os equipamentos, que permitem um baixo custo e melhorias significativas. A segunda foi à facilidade de apenas um administrador poder controlar vários servidores em clusters simultaneamente, isso tal como a padronização de equipamentos reduz significativamente os gastos com a parte de administração e suporte. A terceira foi o fato da habilitação de serviços de infra-estrutura e de aplicativos, isso facilita tanto ao usuário quanto ao administrador, pois evita o desperdício de tempo, a utilização de apenas uma interface padrão que controla as demais, evita que a cada aplicativo que desejar acessar seja utilizado um novo login ou senha. 22 1.3 Unified Modeling Language - UML Segundo Pender (2004), a Linguagem de Modelagem Unificada (UML) é muito utilizada na atualidade e desde que foi desenvolvida em 1994, não parou mais de ser inovada, sendo que este padrão de modelagem OO é usado pela maioria dos centros de tecnologia da Informática. Ainda segundo Pender (2004), a UML foi projetada para a representação de sistemas que utilizem a orientação a objeto, ela funciona basicamente como se fosse uma planta de uma casa, ou melhor, ela é o modelo para o sistema a ser desenvolvido. Pelo fato do desenvolvimento OO ter uma longa e ótima referência, pois desde a década de 1970, vêm se desenvolvendo métodos para se explorar o mesmo, pois cada representação gráfica elaborada mostra uma ação de um objeto ou método usado na elaboração do sistema. Segundo Souza e Reis (2009), a UML, linguagem visual para especificação de sistemas orientados a objetos, dispõe da parte gráfica para os principais pontos do desenvolvimento OO, dispondo de classes, atributos e objetos. Ainda segundo Souza e Reis (2009), a UML surgiu da união de metodologias, sendo elas o método do americano Grady Booch, o Object Modeling Technique (OMT) do sueco Ivar Jacobson e o método Object- Oriented Software Engineering (OOSE) do Americano James Rumbaugh. Até meados de 1990, essas três metodologias eram as mais usadas, muita ajuda foi oferecida à união dessas tecnologias e principalmente o apoio de grandes empresas, como a Rational Software, que apoiou e também financiou a união das três, outras empresas que tinham atuação na área também contribuíram com o projeto. Em 1997 a UML foi adotada pela Object Management Group (OMG) como a linguagem padrão para a modelagem. Arquitetura é a organização fundamental do sistema como um todo. Entre os aspectos de uma arquitetura, estão incluídos elementos estáticos, elementos dinâmicos, o modo como estes elementos trabalham juntos e o estilo arquitetônico total que guia a organização do sistema. A arquitetura também se refere a questões como desempenho, escapabilidade, reuso e restrições econômicas e tecnológicas. (SCOTT, 2003, p. 21) 23 A UML dispõe de gráficos que quando bem elaborados, proporcionam maior facilidade para o desenvolvimento de aplicações ou sistemas, tais gráficos como: Diagrama de Classe, Diagrama de Caso de Uso “Use Case”, Diagrama de Sequência, Diagrama de Colaboração. 1.3.1 Classes Uma classe pode ser definida como um elemento abstrato que representa determinado conjunto de objetos, grupo de pessoas, animais ou coisas com atributos semelhantes. A classe contém a especificação do objeto; suas características: Atributos e métodos (ações e comportamento). Segundo Silva (2008a), uma classe dispõe de atributos e métodos, onde na primeira parte está o nome ou descrição da classe. Na segunda temos os atributos da classe que são: “CPF, nome, telefone, status”. Na terceira que fica bem abaixo, temos os métodos da classe, que neste caso apenas contém o método consulta, que tem como parâmetro um valor do tipo long e retorna uma instância da classe. Fonte: Silva, 2008a Figura 1. Classe 1.3.2 Diagrama de classes 24 Segundo Silva (2008a), o diagrama de classes é um dos mais utilizados e tem sido considerado por muitos autores como o diagrama mais importante no desenvolvimento de um projeto. Sua principal característica é a facilidade de visualização e modelagem de uma ou mais classes e relacionamentos que aconteçam entre elas, ainda o diagrama de classes serve para de base para os demais diagramas, ilustrado pela figura 2. Fonte: Silva, 2008a Figura 2. Diagrama de Classes 1.3.3 Diagrama de Caso de Uso “Use Case” O diagrama de Caso de Uso tem como objetivo auxiliar a comunicação entre analista e o cliente. Este diagrama serve para descrever um cenário e mostra as funcionalidades do sistema do ponto de vista do usuário Ele é representado por: a) Atores; b) Casos de uso; 25 c) Relacionamento entre esses elementos Estes elementos podem ser: a) Associação entre atores e caso de uso; b) Generalizações entre os atores; c) Generalizações, extends e includes entre os casos de uso. Um caso de uso é uma sequência de ações, executadas por um ou mais atores (pessoas ou entidades não humanas fora do sistema) e pelo próprio sistema, que produz um ou mais resultados de valor para um ou mais atores. (SCOTT, 2003, p 21). Fonte: Silva, 2008e Figura 3. Diagrama de Caso de Uso 1.3.4 Diagrama de Sequência Segundo Silva (2008c), basicamente o diagrama de sequência ajuda a definir a ordem temporal das trocas de mensagens entre os envolvidos em determinado processo, ele é baseado no desenvolvimento do diagrama de Caso de Uso, e também no diagrama de Classes, o diagrama de Sequência tem como seu principal objetivo determinar como irão acontecer os eventos, como serão trocadas as mensagens, como os métodos vão interagir entre si dentro de determinado processo e como vão ser chamados. 26 Fonte: Silva, 2008c Figura 4. Diagrama de Sequência 1.3.5 Diagrama de PacotesSegundo Silva (2008d), o diagrama de Pacotes é utilizado para dividir em pacotes lógicos, seu modelo descreve as interações entre eles em alto nível de abstração. Este diagrama representa os demais sistemas que estão dentro de um único, ele determina as partes que compõe o sistema em si. Fonte: Silva, 2008d Figura 5. Diagrama de Pacotes 27 1.3.6 Diagrama de Objetos Segundo Silva (2008d), o diagrama de Objetos é considerado um complemento do diagrama de Classes, fornecendo visualização dos valores que são armazenados em um diagrama de classes, os dados que são mostrados são de determinado ponto da execução do processo. Fonte: Silva, 2008d Figura 6. Diagrama de Objetos 1.3.7 Diagrama de Estrutura Composta Segundo Silva (2008d), o diagrama de Estrutura Composta tem como finalidade descrever a estrutura interna de determinado classificador, sendo uma classe ou componente, mostrando a comunicação interna das pastas. Fonte: Silva, 2008d Figura 7. Diagrama de Estrutura Composta 28 1.3.8 Diagrama de Componentes Segundo Silva (2008d), como o próprio nome já diz, o diagrama de componentes apresenta uma visão do que será implementado no sistema, onde é associado com a linguagem que o software será desenvolvido. Fonte: Silva, 2008d Figura 8. Diagrama de Componentes 1.3.9 Diagrama de Implantação Fonte: Silva, 2008d Figura 9. Diagrama de Implantação 29 Segundo Silva (2008d), o diagrama de implantação tem como finalidade determinar necessidades físicas (hardware) de um sistema, tais como: servidores, estações, topologias e protocolos de comunicação. Um ponto importante é que o diagrama de Componente e o de Implantação são bastante associados, podendo ser representados juntos ou separados. 1.4 Cascading Style Sheets - CSS Segundo Macedo (2006), o Cascading Style Sheets (CSS) é um padrão de páginas web, permiti-se que a página tenha uma alteração com apenas uma modificação no arquivo, isso facilita bruscamente para o desenvolvedor, pois, se não houver o arquivo CSS o desenvolvedor terá que modificar tag a tag de cada página que queira com tal formatação. Ainda segundo Macedo (2006), existe uma simples definição de estilos, que tem variação de três formas. a) Local: somente determinada tag recebe a modificação, em determinado local da aplicação, tal como: <img alt="imagem" src="imagens/imagem.jpg" stlyle="width: 500px; height: 500px"/> b) Incorporada: dentro da própria página web já contém o arquivo CSS, então apenas aquela página recebe determinado tratamento, tal como: <html> <head> <title>1 sem título</title> <style type="text/css"> body{ color: navy; font: arial;; } </style> </head> <body> </body> </html> 30 c) Externa: Define que apenas um arquivo irá ficar responsável por padronizar todas as demais páginas, sejam quantas forem, sendo que cada uma que for conter a determinada formatação tenha uma “tag” que estenda o arquivo CSS, , pode-se usar de duas maneiras, a primeira é através da “tag” <link> e a outra pela “tag” @import. 1.4.1 Utilização da tag Link. A linha em destaque é utilizada para a importação do arquivo CSS. <html> <head> <link href="lib/arquivo.css" rel="stylesheet" type="text/css"> <title>Tag <link> </title> </head> <body> </body> </html> 1.4.2 Utilização da tag @import. <html> <head> <style type="text/css"> <!- @import url (lib/arquivo.css); .seletor{ color:black; font-family:Arial, Helvetica, sans-serif; } --> </style> <title>Tag @import</title> </head> <body> </body> </html> A grande diferença entre os dois (link e @import) é que utilizando o @import se consegue manter o arquivo externo de CSS, utilizando também um estilo que está dentro da própria aplicação. 31 1.5 Hipertext Markup Language (HTML) Segundo Marcondes (2007), HTML é a mais antiga linguagem utilizada para aplicativos ou páginas na web, ela é baseada em uma mais antiga e muito mais complexa que recebe o nome de Standart Generalized Markup Language (SGML). Umas das maiores características do HTML é que ela apenas define a estrutura básica de uma página, tornando-se apenas uma linguagem de marcação de texto, a estrutura define apenas título, texto, subtítulo, listas e também definindo o local de imagens, etc. Uma página, ou um documento HTML, nada mais é do que um arquivo-texto, e pode ser editado até no Word ou EDIT, o que facilita ainda mais sua manipulação. Se você tiver o domínio total da linguagem é possível criar uma Home Page em qualquer computador. A única exigência é que salve sua página com extensão .HTM ou .HTML, não interessando em que editor de textos você fez, já que toda a formação e a manipulação de imagens são feitas por meio de comandos da linguagem. (MARCONDES, 2007, p.40). Ainda segundo Marcondes (2007), dados recentes informam que mais de 95% dos sites usam as tags do HTML, as opções para substituir o HTML são limitadas e não tão rápidas, são duas as mais conhecidas, os Applets em Java que tem menor agilidade e são úteis na geração de gráficos e desenhos, já o outro é o Flash, que utiliza Action Script, tendo melhor desenvoltura em animações interativas. A definição correta de Action Script é que ela tem seu funcionamento exclusivo dentro do Macromedia Flash, a utilização de Action é semelhante a do JavaScript utilizado no HTML. 1.6 JavaScript Segundo Crane, Pascarello e James (2007), JavaScript não é derivada da linguagem Java. Ela vem de outras linguagens tais como: Scheme e Self. Também tendo similaridade com o Phyton, já o nome vem de uma jogada de marketing da Netscape, que o tinha batizado com “livescript” depois se tornado a tão famosa JavaScript. Uma grande diferença dela para o Java, é que em Javascript o código pode ser escrito em uma única página de digitação, sendo que na linguagem Java, a programação é OO. Ainda segundo Crane, Pascarello e James (2007), o JavaScript realiza para a pesquisa incremental três tarefas principais: a) O usuário é monitorado através de bloqueio de ações do mouse ou do teclado; 32 b) Capacidade de enviar e receber dados do servidor; c) Fazer com que o usuário possa interagir com o conteúdo HTML. Segundo Truques (2009b), existem grandes diferenças entre Java e JavaScript, apesar de existir grande similaridade entre os nomes, muitos podem confundir, mas conhecendo bem, as diferenças são fáceis de se notar. Fonte: Truques, 2009b Quadro 1. Diferenças entre Java e JavaScript. Segundo Crane, Pascarello e James (2007), diferenças entre Java e JavaScript. Recurso Implicações Variáveis são fracamente tipadas As variáveis só são declaradas como variáveis, não como inteiros, strings ou objetos de uma classe especifica. No JavaScript, é valido atribuir valores de tipos diferentes a mesma variável. O código é interpretado dinamicamente. Em tempo de execução. O código é armazenado como texto e interpretado em instruções de maquina enquanto o programa executa, ao contrario das linguagens pré- compiladas como Java, C e C#. Os usuários do seu site web geralmente podem ver o código-fonte de seu aplicativo AJAX. Alem disso, o código pode ser gerado dinamicamente por outro código sem recorrer a geradores de códigos de bytes especiais. (continua) 33 As funções JavaScript são objetos de primeira classe. Os métodos de um objeto Java são amarrados ao objeto que os possui e só podem ser invocados por esse objeto. As funções JavaScript podem ser anexadas a objetos para se comportar como métodos, mas também podem ser invocadas em outros contextos e/ou reanexadas a outros objetos em tempode execução. Os objetos JavaScript são baseados em protótipo. Um objeto Java, C++ ou C# tem um tipo definido, com superclasses e superclasses virtuais ou interfaces, isso define estritamente sua funcionabilidade. Qualquer objeto JavaScript é apenas um objeto, que é simplesmente um Array associado disfarçado. Os protótipos podem ser utilizados para limitar tipos de estilo Java em JavaScript, mas a semelhança é superficial. Fonte: Grane, Pascarello e James, 2007. Quadro 2. Diferenças entre JavaScript e Java Segundo Truques (2009a), com a utilização de JavaScript a aplicação web tem seu potencial estendido, onde é possível fazer com que o usuário seja forçado a fazer o correto, usando as mensagens de alerta pode-se prevenir contra uso inadequado do software. Não só as mensagens de alerta, mais também restrições feitas dentro da própria página deixam a aplicação segura e ágil. Algumas restrições tais como: algarismos em campos que só podem aceitar caracteres. Um grande exemplo é o uso do campo data, que normalmente se utiliza apenas algarismos, exemplo: 10/10/2009, também há exceções, tal como: 10/Out/2009. Ainda segundo Truques (2009a), JavaScript tem como padrão para as caixas de alerta três métodos do object window. 1.6.1 Métodos em JavaScript: a) alert(): É fixada uma caixa de alerta, pode ser para avisar sobre uma zona da internet desconhecida ou de perigo ao acessar a página. Quando a caixa é afixada bloqueia-se aplicação até o usuário interagir com o alerta. (conclusão) 34 Fonte: Truques, 2009a Figura 10. Caixa de Dialogo com o método alert() b) prompt(): Usa-se para incrementar dados fornecidos pelo usuário, sendo que quando o mesmo confirma a aplicação clicando no botão “ok” é reenviado o valor que foi escrito pelo usuário ou resposta proposta. Se no “prompt” também estiver um botão “Cancel”, ao clicar, é utilizado um valor nulo para o reenvio. Fonte: truques, 2009a Figura 11. Caixa de Dialogo com o método prompt() c) confirm(): Como o próprio nome já diz, é uma caixa de confirmação, quando o usuário interage com a caixa clicando em “ok” é enviado um valor “true” e clicando em “cancel” o valor enviado é o oposto “false”. Fonte: truques, 2009a Figura 12. Caixa de Dialogo com o método confirm() 35 1.7 Estoque Conceitos e Custos Para Corrêa, H.; Corrêa, C. (2005), os estoques são “acúmulos de recursos materiais entre fases específicas de processos de transformação”. Esses recursos armazenados seriam então uma forma de garantir a demanda existente, tanto no que se refere à venda quanto à produção, não deixando de ser atendidos. Os estoques têm como função dar suporte às atividades produtivas, sendo assim, é necessário que haja sempre produtos disponíveis em quantidade suficiente para suprir toda e qualquer necessidade de comercialização. Na função de suprir as vendas, os estoques visam atender às flutuações da demanda, e por conseqüência melhorar o nível de serviço ao cliente. Manter itens em estoque para o caso de consumidores ou programas de produção os demandarem é uma espécie de garantia contra o inesperado (SLACK, 2002). Os estoques desempenham grande importância principalmente na parte financeira, pois a partir do momento que a empresa promove o giro desses estoques, o seu valor se transforma em dinheiro, o que traz benefícios ao fluxo de caixa, assim há retorno sobre o investimento aplicado. As empresas procuram preservar-se da demanda inconstante em que todas estão sujeitas, com a utilização de técnicas para manter os seus estoques continuamente abastecidos. É para que se possa evitar o problema de falta de mercadorias, e por conseqüência os prejuízos relacionados às perdas de vendas, que os estoques são necessários, apesar dos custos a eles atribuídos. 1.7.1 Custos de estoques O armazenamento e a manutenção dos estoques geram custos que devem ser analisados pelo administrador de materiais. Dentre esses custos podemos destacar: a) Custo de pedido: está diretamente ligado aos custos administrativos e operacionais do setor de compras, como gastos com mão de obra, equipamentos para atividade de compra entre outros. Arnold (1999), 36 afirma que “o custo anual com pedidos depende do número de pedidos emitidos em um ano”. Pode ser reduzido se a cada pedido forem requisitadas mais unidades, o que resulta na emissão de menos pedidos.” b) Custo de armazenagem: exige espaço físico, funcionários para manuseio e manutenção do estoque, equipamentos e muito mais. Slack (1999), acrescenta que: “Locação, climatização e iluminação do armazém podem ser caros, especialmente quando são requeridas condições especiais, como baixa temperatura ou armazenagem de segurança”. Entende-se que o custo de armazenagem está diretamente ligado à quantidade de itens estocados, quanto maior o volume de estoque, proporcionalmente terá um custo mais elevado. c) Custo de falta: a falta de produto no estoque pode ser prejudicial para a empresa, acarretando a perda da oportunidade de venda, deixando de lucrar. Arnold (1999) afirma que: “Um esvaziamento de estoque pode ser potencialmente caro por causa dos custos de pedidos não atendidos, de vendas perdidas e de clientes possivelmente perdidos”. d) Estoque máximo: uma quantidade elevada de um mesmo item estocado implica em desperdício e capital parado, a quantidade considerada acúmulo deve ser bem analisada para evitar desperdício. Segundo Slack (2002), “os principais custos de manutenção de estoques estão geralmente associados com o capital de giro”. Além das implicações financeiras, também há dificuldades de ordem física, já que os excessos precisam ser devidamente armazenados. 1.8 Modelo PEPS ou FIFO (First In, First Out) Este modelo de avaliação consiste em determinar que as primeiras mercadorias adquiridas sejam as primeiras a serem comercializadas, então, as que permanecerem no estoque deverão ser provenientes das últimas compras. “A avaliação por este método é feita pela ordem cronológica das entradas, sendo substituída pela mesma ordem cronológica em que foi recebido, devendo o seu custo real ser aplicado”. (DIAS, 1993). O FIFO tem sido muito utilizado, pois permite uma constante atualização dos preços, ao levar em conta que os estoques consistem nas compras mais recentes. 37 1.9 Modelo UEPS ou LIFO (Last In, First Out) Dias (1993), afirma que esse método de avaliação considera que devem em primeiro lugar sair as últimas peças que deram entrada no estoque, o que faz com que o saldo seja avaliado ao preço das últimas entradas. Este método não deve ser utilizado na íntegra, pois o mesmo não se refere somente ao produto, mais ao custo que lhe foi atribuído devendo ser considerado, ou seja, deve-se atualizar o valor das mercadorias existentes no estoque de acordo com esse critério, não necessariamente vender o produto que foi comprado por último, pois o mesmo sofre influências como vencimento, avarias, etc. 1.10 Modelo PVPS (Primeiro a Vencer, Primeiro a Sair) O PVPS é o mais usado pelo ramo de supermercadistas e baseia-se no método de avaliação de estoque PEPS (Primeiro a Entrar, Primeiro a Sair). “Os produtos perecíveis devem ser armazenados conforme a técnica FIFO (First In First Out), ou seja, primeiro a entrar primeiro que sai, de forma a permitir que naturalmente seja observada a validade dos produtos” (VIANA, 2002) O modelo PVPS, consiste em controlar as vendas dos produtos perecíveis, ou seja, a mercadoria cujo vencimento é de curto prazo, tendo que ser vendido o mais rápido possível e principalmente controlar casos diferenciados, como propostas irrecusáveis onde as empresas ofertam determinados produtos com preços considerados baixos de venda no mercado, por se tratarem de produtos perecíveis que estão a 30 ou 45 dias para o vencimento. 382 LEVANTAMENTO DE REQUISITOS 2.1 Análise de Mercado A análise de mercado foi realizada com o intuito de verificar os programas gerenciadores de estoques disponíveis no mercado e aplicar no sistema proposto melhorias que facilitem o gerenciamento, utilizando diferentes tecnologias, mas com a mesma intenção, de melhorar e facilitar o controle de estoque e diminuir os prejuízos causados pela perda de produtos. 2.1.1 Best Software. Controle de Estoque Best Software: foi desenvolvido especialmente para atender as necessidades de controle das rotinas diárias de uma empresa de pequeno, médio ou grande porte, atendendo qualquer ramo de atividade. Onde pode-se realizar as principais funções de entrada e saída, encomendas e devoluções, comissão de vendedores, e diversos relatórios. A empresa disponibiliza suporte on-line para o software (BEST, 2010). O sistema otimiza e organiza todos os processos de movimentação dos produtos em estoque, possibilitando um melhor controle sobre as entradas e saídas dos produtos, e seus relatórios possuem diversas informações que auxiliam no trabalho do responsável (BEST, 2010). A figura 13 demonstra a interface responsável pelo cadastro de produtos no sistema. Nela o usuário pode fazer a pesquisa dos produtos, podendo alterar um já existente e adicionar um novo produto. O usuário pode também na aba imagem, adicionar uma foto do produto (BEST, 2010). A interface responsável por permitir a saída do estoque (venda de produto), é exibida na figura 14. Na parte superior esquerda da interface são visualizados os dados da venda, tais como: Data, cliente, documento e vendedor. No centro da interface são exibidos dados do produto vendido e detalhes da venda (BEST, 2010). 39 A figura 15 exibe um dos relatórios disponibilizados pelo sistema onde são fornecidas informações sobre as posições físicas de armazenamento dos produtos. Fonte: Best , 2006 Figura 13. Cadastro de produtos - Controle de Estoque, Best Software Fonte: Best, 2006 Figura 14. Saída de produtos - Controle de Estoque, Best Software 40 Fonte: Best, 2006 Figura 15. Relatório de produtos 2.1.2 Controle de Estoque 9.0 É um programa que possibilita fazer entradas, saídas, estornos, monitoramento da movimentação do estoque e diversos relatórios, tais como: listas de preços, lista de itens no estoque, movimentação de estoque em geral, por produto e por tipo de saída. Possui a base de dados FireBird, além de usar a linguagem Delphi 7. O aplicativo permite dividir o estoque por áreas como classes e fornecedores, mantendo assim o nível de organização mínimo para o bom funcionamento do negócio. Com ele o usuário tem controle físico total do estoque, além do seu fluxo de caixa e orçamento, cadastro de clientes e fornecedores, contas a pagar/receber e muito mais. O sistema permite controle de acesso de usuários com configuração de permissões, assim como as http://ziggi.uol.com.br/downloads/controle-de-estoque http://ziggi.uol.com.br/downloads/controle-de-estoque 41 comissões de vendedores. Os produtos em estoque podem ser organizados por grupos e sub-grupos, cadastrados por código numérico, alfanumérico ou código de barras (ESTOQUE, 2010). A figura 16 exibe a interface responsável pelo cadastro de fornecedores no sistema, o usuário pode informar um código e pesquisar se há fornecedor associado ao código, se não existir o cadastro pode ser efetuado (ESTOQUE, 2010). A figura 17 exibe a interface responsável pelo cadastro de empresas no sistema com os seguintes atributos: Empresa, endereço, cidade, estado, CPNJ e Inscrição estadual (ESTOQUE, 2010). Fonte: Estoque, 2010 Figura 16. Cadastro de fornecedores Fonte: Estoque, 2010 Figura 17. Cadastro de empresa 42 2.2 Documentos de Requisitos 2.2.1 Visão geral do sistema O sistema para controle de estoque trata do gerenciamento de produtos dentro do almoxarifado. É um sistema voltado para o controle de estoque de supermercados, onde existem diversos itens perecíveis, ele trata o gerenciamento das saídas pelos itens com vencimentos mais próximos. O gerenciamento é realizado de forma rápida e eficaz, o que diminui o erro humano na manipulação dos produtos dentro do estoque, assim tornando o processo mais eficiente. O sistema tem controle sobre a saída, entrada e cadastro dos produtos, e emitem diversos tipos de relatórios, esses relatórios possuem diversas informações sobre os produtos e suas condições, tais como: restante de dias para o vencimento, produto vencido, data de entrada do produto, quantidade disponível de produto e de cada entrada do mesmo, solicitações pendentes e solicitações atendidas. Com essas informações o usuário pode fazer uma manutenção preventiva dos produtos, o que evita a perda de produtos. 2.2.2 Requisitos funcionais a) O sistema deve permitir a inclusão, alteração de produto com os seguintes atributos: código, descrição do produto, categoria, estoque máximo, estoque mínimo e unidade de medida. b) O sistema deve permitir que o usuário faça uma ou mais entradas, com os seguintes atributos: descrição do produto, unidade medida, quantidade, data de validade, data da entrada. c) O sistema deve permitir que o usuário faça uma ou mais saídas, com os seguintes atributos: descrição do produto, unidade de medida, quantidade, data da saída. d) O sistema deve permitir que o usuário faça uma ou mais solicitações de produtos para o fornecedor com os seguintes atributos: código solicitação, descrição do produto, data da solicitação e quantidade. 43 e) O sistema deve permitir a inclusão, alteração de fornecedor com os seguintes atributos: razão social, inscrição estadual, CNPJ, nome fantasia, rua, numero, bairro, cidade, CEP, UF (Unidade da Federação), país, telefone, e-mail, notas e observações. f) O sistema deve permitir o atendimento de solicitações de produtos com os seguintes atributos: descrição do produto, quantidade, data de solicitação, data do atendimento. 2.2.3 Impressão de diversos tipos de relatórios e consultas. a) O sistema deve permitir o processamento de relatórios com listagem dos produtos em estoque com os atributos a seguir: código do produto, descrição, estoque máximo, estoque mínimo, estoque atual, categoria, unidade de medida. b) O sistema deve permitir o processamento de relatórios de situação do produto dentro do estoque com os seguintes atributos: código da entrada do produto, código do produto, descrição, quantidade da entrada, vencimento, dias para vencer e quantidade disponível. c) O sistema deve permitir o processamento de relatórios de listagem saída de produtos do estoque com os seguintes atributos: código de saída, código produto, descrição do produto, categoria, quantidade retirada, data saída. d) O sistema deve permitir o processamento de relatórios de entrada de produtos, com os seguintes atributos: código de entrada, código produto, descrição, categoria, quantidade de entrada, quantidade disponível por entrada, data de vencimento e data entrada. e) O sistema deve permitir o relatório de solicitações pendentes, com atributos que facilitam a visualização, tais como: código da solicitação, código produto, descrição, quantidade solicitada, data atendimento que é 44 o controlador principal da solicitação, pois sempre quando uma solicitação não for atendida a mesma estará com a data de atendimento “Pendente”. f) O sistema deve permitir o relatório de solicitações atendidas com os seguintes atributos: código da solicitação, código do produto, descrição, quantidade solicitada e data do atendimento. 2.2.4 Processamentos a) O sistema deve gerenciar as saídas dos produtos através da data de vencimento. 45 2.3 Diagrama deClasses do sistema completo Fonte: Elaborado pelos autores, 2009 Figura 18. Diagrama de Classes completo. 46 A figura 18 é responsável por demonstrar o diagrama de classes completo do sistema. Poderá ser implementado futuramente. O diagrama a seguir trata-se da implementação atual do sistema 2.4 Diagrama de Classes implementado Fonte: Elaborado pelos autores, 2011 Diagrama de classes implementado no sistema 47 3 ANÁLISE ORIENTADA A OBJETOS 3.1.1 Lista de Casos de Uso Fonte: Elaborado pelos autores, 2010 Quadro 3. Lista de Caso de Uso Nº Descrição Evento Caso de Uso Resposta 01 Usuário cadastra produto Dados Produto Cadastrar Produto Msg01 02 Usuário cadastra solicitação de compra Dados Solicitação de Compra Cadastrar Solicitação de Compra Msg02 03 Usuário atende solicitação pendente Dados solicitação pendente Cadastrar atendimento de solicitação pendente Msg03 04 Usuário cadastra entrada de produto no estoque Dados entrada de produto Cadastrar entrada e atualizar produto Msg04 05 Usuário cadastra saída de produto no estoque Dados saída de produto Cadastrar saída e atualizar produto Msg05 06 Usuário cadastra Fornecedor Dados Fornecedor Cadastrar Fornecedor Msg06 07 Usuário solicita relatório de estoque DadosRelEstoqu e GerarRelEstoque Rel01 08 Usuário solicita relatório de saída de produtos do estoque DadosRelSaidaP rod GerarRelSaidaProdu tos Rel03 09 Usuário solicita relatório de entrada de produtos DadosRelEntrad aProd GerarRelEntProd Rel04 10 Usuário solicita relatório de situação de produtos DadosRelSituaç ãoProd Gerar RelSituacaoProd Rel05 11 Usuário solicita relatório de Solicitação Pendente DadosRelSolPen dente GerarRelSolPendent e Rel06 12 Usuário solicita relatório de Solicitação atendida DadosRelSolAte ndida GerarRelSolAtendid a Rel07 48 3.2 Diagrama de Casos de Uso 3.2.1 Use case 01 – Usuário cadastra produto Fonte: Elaborado pelos autores, 2010 Figura 19. Diagrama de Use Case – Cadastro de produto 3.2.2 Use case 02 - Usuário cadastra solicitação de compra Fonte: Elaborado pelos autores, 2010 Figura 20. Diagrama de Use Case – Cadastro solicitação de compra 49 3.2.3 Use case 03 - Usuário atende solicitação pendente. Fonte: Elaborado pelos autores, 2010 Figura 21. Diagrama de Use Case – Cadastro solicitação pendente 3.2.4 Use case 04 - Usuário cadastra entrada de produto no estoque Fonte: Elaborado pelos autores, 2010 Figura 22. Diagrama de Use Case – Cadastro entrada produto estoque 50 3.2.5 Use case 05 - Usuário cadastra saída de produto no estoque Fonte: Elaborado pelos autores, 2010 Figura 23. Diagrama de Use Case – Cadastro saída produto estoque 3.2.6 Use case 06 - Usuário cadastra fornecedor 51 Fonte: Elaborado pelos autores, 2010 Figura 24. Diagrama de Use Case – Cadastro Fornecedor 3.2.7 Use case 07 – Usuário solicita relatório Fonte: Elaborado pelos autores, 2010 Figura 25. Diagrama de Use Case – Gerar relatório 52 4 PROJETO DE BANCO DE DADOS Para a realização do trabalho escolheu-se para o sistema gerenciador de banco de dados o Oracle Database Express Edition, um software gratuito, trabalha com linguagem SQL, de fácil manipulação e com uma capacidade de armazenamento de dados razoável para a criação do sistema. 4.1 Tabelas Tabela: USUARIO Chave-Primária (PK): codUsuario Nome do Campo Tipo de Dado Tamanho Permite Nulo? codUsuario Numero 5 Não nomeUsuario Texto 30 Não dtAdmissao Data - Não setorFuncionario Texto 30 Não Fonte: Elaborado pelos autores, 2009 Quadro 4. Estrutura da tabela de usuario Tabela: CATEGORIAPRODUTO Chave-Primária (PK): codCategoria Nome do Campo Tipo de Dado Tamanho Permite Nulo? codCategoria Numero 5 Não nomeCategoria Texto 30 Não Fonte: Elaborado pelos autores, 2009 Quadro 5. Estrutura da tabela de categoria de produto Tabela: UNIDADEMEDIDA Chave-Primária (PK): codUnidade Nome do Campo Tipo de Dado Tamanho Permite Nulo? codUnidade Numero 5 Não descricaoUnidade Texto 15 Não Fonte: Elaborado pelos autores, 2009 Quadro 6. Estrutura da tabela de unidade de medida 53 Tabela: PRODUTO Chave-Primária (PK): codProduto Chave-Estrangeira(FK):codCategoria(categoriaProduto.codCategoria), codUnidade(unidadeUnidade.codUnidade) Nome do Campo Tipo de Dado Tamanho Permite Nulo? codProduto Numero 5 Não descricaoProduto Texto 30 Não estoqueMax Numero 6 Não estoqueMin Numero 6 Não codCategoria Numero 5 Não codUnidade Numero 5 Não Fonte: Elaborado pelos autores, 2009 Quadro 7. Estrutura da tabela de produtos Tabela: SOLICITACAO Chave-Primária (PK): codSolicitacao. Chave-Estrangeira (FK): codUsuario (usuario.codUsuario), codigoProduto (produto.codProduto). Nome do Campo Tipo de Dado Tamanho Permite Nulo? dtSolicitacao Data - Não codSolicitacao Numero 5 Não codUsuario Numero 5 Não codigoProduto Numero 5 Não qndSolicitada Numero 5 Não dtAtendimento Data - Sim Fonte: Elaborado pelos autores, 2009 Quadro 8. Estrutura da tabela de solicitacao Tabela: SAIDA Chave-Primária (PK): codSaidaProduto Chave-Estrangeira(FK):codProduto(produto.codProduto), codUsuario(usuário.codUsuario) 54 Nome do Campo Tipo de Dado Tamanho Permite Nulo? qtdeSaidaProduto Numero 6 Não dtRetiradaProduto Data - Não codSaidaProduto Numero 5 Não codProduto Numero 5 Não codUsuario Numero 5 Sim Fonte: Elaborado pelos autores, 2009 Quadro 9. Estrutura da tabela de saída de produtos no estoque Tabela: ENTRADAPRODUTOESTOQUE Chave-Primária (PK): codEntradaProdutoEstoque Chave-Estrangeira (FK): codProduto(produto.codProduto) Nome do Campo Tipo de Dado Tamanho Permite Nulo? qtdeProdutoEntrada Numero 6 Não dtValidadeProduto Data - Não dtEntrada Data - Não codEntradaProdutoEstoque Numero 5 Não codProduto Numero 5 Não qtdeDisponivel Numero 5 Não Fonte: Elaborado pelos autores, 2009 Quadro 10. Estrutura da tabela de entrada de produtos no estoque Tabela: PEDIDO Chave-Primária (PK): codPedido Chave-Estrangeira (FK): codFornecedor(fornecedor.codFornecedor) Nome do Campo Tipo de Dado Tamanho Permite Nulo? codPedido Numero 5 Não dtPedido Data - Não dtPrevEntrega Data - Não observacaoSituacao Texto 30 Sim codFornecedor Numero 5 Não Fonte: Elaborado pelos autores, 2009 Quadro 11. Estrutura da tabela de pedido de produto 55 Tabela: FORNECEDOR Chave-Primária (PK): codFornecedor Nome do Campo Tipo de Dado Tamanho Permite Nulo? codFornecedor Numero 5 Não razaoSocial Texto 60 Não nomeFantasia Texto 30 Não cnpj Texto 18 Não inscricaoEstadual Texto 15 Não endRua Texto 30 Não endNumero Texto 10 Não endBairro Texto 30 Não endCidade Texto 30 Não endEstado Texto 2 Não endPais Texto 10 Não endCep Texto 9 Não telefone Texto 15 Sim email Texto 60 Sim notasObs Texto 100 Sim Fonte: Elaborado pelos autores, 2009 Quadro 12. Estrutura da tabela de fornecedor Tabela: ITENSPEDIDO Chave-Primária (PK): codPedido , codProduto Chave-Estrangeira(FK):codProduto(produto.codProduto), codPedido(pedido.codPedido) Nome do Campo Tipo de Dado Tamanho Permite Nulo? qtdeItensPedido Numero 6 Não codPedido Numero 5 Não codProduto Numero 5 Não precoItensPedido Numero 6 Não Fonte: Elaborado pelos autores, 2009 Quadro 13. Estrutura da tabela de itens pedidos 56 5 PROJETO ORIENTADO A OBJETOS 5.1 Diagramas de Seqüencias 5.1.1 Usuário solicita cadastro de produto Fonte: Elaborado pelos autores, 2010 Figura 26. Diagrama de Seqüência: Usuário solicita cadastro de produto 57 5.1.2 Usuário cadastraentrada de produto no sistema Fonte: Elaborado pelos autores, 2010 Figura 27. Diagrama Sequência: Usuário cadastra entrada de produto. 58 5.1.3 Usuário cadastra saída de produto no estoque Fonte: Elaborado pelos autores, 2010 Figura 28. Diagrama Sequência: Usuário cadastra saída de produto 59 6 IMPLEMENTAÇÃO ORIENTADA A OBJETOS 6.1 Layout de Interfaces A principal linguagem utilizada no desenvolvimento das interfaces foi a linguagem Java. Outros recursos também são utilizados em conjunto para obtenção das funcionalidades das interfaces. Alguns dos recursos utilizados são: AJAX para tratamento de campos e demais efeitos visuais e SQL para manipulação de dados no banco de dados. A seguir são apresentadas as interfaces do sistema e suas funcionalidades. 6.1.1 Tela inicial Fonte: elaborado pelos autores, 2011 Figura 29. Tela inicial 60 A figura 29 apresenta a tela inicial de abertura do sistema. Sendo responsável por disponibilizar o acesso através de menus, para todas as opções de cadastros, movimentações e relatórios disponibilizados pelo sistema. O menu apresentado fica disponível durante toda a navegação nos diversos itens disponibilizados pelo sistema, exceto quando é gerado algum relatório, sendo assim o menu principal de navegação. 6.1.2 Manutenção de Produtos Fonte: elaborado pelos autores, 2011 Figura 30. Interface de manutenção de produtos A figura 30 apresenta um sub-menu do menu principal. Este sub-menu possibilita o acesso a manutenção de produtos e às movimentações de entradas e saídas deles. 61 6.1.3 Interface de manutenção de produtos Fonte: Elaborado pelos autores, 2011 Figura 31. Manutenção de produto A figura 31 apresenta a interface de manutenção de produtos. Alguns recursos que facilitam a operação por parte dos usuários foram adicionados a esta interface, um exemplo é a pesquisa de produtos digitando- se apenas parte do seu nome. Ao digitar qualquer letra, o sistema busca no banco de dados os produtos cadastrados que iniciem com sequência digitada. Se existirem produtos que contenham os caracteres digitados, o sistema cria um dropdown com as descrições destes produtos. Escolhendo-se um dos produtos exibidos, o sistema preenche os demais dados, e permite a alteração dos mesmos. Caso nenhum produto seja localizado o sistema possibilita o cadastramento de um novo com a descrição já informada. As caixas de seleção referentes a categorias e unidades de medida são pré-definidas pelo sistema, armazenadas no banco de dados. Todos os campos do cadastro de produtos são obrigatórios, ou seja, não permite que 62 sejam inseridos sem nenhuma informação. Se o usuário tentar inserir o produto faltando alguma informação, o sistema não completará o cadastro e exibirá um alerta de erro no sistema, podendo ser completado o cadastro preenchendo todos os campos da tela. 6.1.4 Interface de produto cadastrado Fonte: elaborado pelos autores, 2011 Figura 32. Produto Cadastrado A figura 32 apresenta o produto cadastrado no sistema exibindo seu código. Para atualizar um produto já existente, o usuário deve digitar a descrição do produto e alterar os dados desejados. O sistema mostrará a mesma mensagem de produto cadastrado/alterado, modificando somente o que foi alterado pelo usuário, não alterando o código do produto já existente. 63 6.1.5 Interface de entrada de produtos no estoque A figura 33 é responsável por apresentar a interface de entrada de produtos no estoque. Para fazer uma entrada é necessário que o usuário informe um produto existente no banco de dados do sistema, evitando assim efetuar uma entrada com um produto que não esteja cadastrado. Buscando manter maior facilidade e controle do administrador do estoque foi implementado o mesmo recurso utilizado no cadastro e alteração de produto, onde ao digitar uma sequência de letras o sistema busca os dados correspondentes e mostra na interface. Escolhendo-se um dos produtos exibidos, o sistema preenche os demais dados referentes à informação do produto cadastrado no sistema. Para concluir a entrada o usuário deve informar os dados que não foram preenchidos pelo sistema, no caso, quantidade de produto que está entrando no estoque e data de validade do mesmo. Ao retirar o cursor do campo quantidade, o sistema faz uma verificação da quantidade disponível, somando a quantidade digitada pelo usuário e informa se a mesma ultrapassou o estoque máximo permitido. Feito o procedimento o usuário conclui a entrada. No campo quantidade foi elaborada uma função que calculasse a soma da quantidade disponível do produto, onde é somada com a quantidade informada para a entrada, e caso ultrapasse o estoque máximo, o sistema exibe uma mensagem de alerta, informando que a quantidade inserida mais a quantidade atual é maior que a quantidade máxima, mas conclui a entrada. Fonte: Elaborado pelos autores, 2011 Figura 33. Entrada de produto 64 6.1.6 Interface de entrada inserida Fonte: Elaborado pelos autores, 2011 Figura 34. Entrada inserida A figura 34 apresenta a entrada de produto no sistema exibindo o código de entrada. Ao concluir a entrada o sistema exibe uma tela de alerta, mostrando ao usuário que a entrada foi inserida com sucesso, informando o código da mesma e atualizando a quantidade disponível do produto. 6.1.7 Interface de saída de produto no estoque Fonte: Elaborado pelos autores, 2011 Figura 35. Saída de produto 65 Na figura 35 é exibida a interface de saída de produto do estoque. Como nas interfaces de cadastro e entrada de produto no estoque, esta utiliza dos mesmos recursos apresentados. Ao digitar uma sequência de letras o sistema faz a busca dos itens correspondentes e informa os produtos cadastrados. Escolhendo um dos produtos exibidos o sistema preenche os demais dados, o que ao usuário dar continuidade ao processo. Um dos campos exibidos pelo sistema é o estoque atual, onde o usuário deve ficar atento, pois ao inserir a quantidade de produto que deseja retirar do estoque o sistema verifica se a quantidade retirada é maior que a quantidade disponível no estoque atual. Caso a quantidade retirada seja maior, o sistema exibe uma mensagem de erro e não permite que o usuário conclua a saída. O mesmo caso acontece quando o usuário tenta fazer uma saída de produto com a quantidade zero (0), o sistema informa que não pode ser feita uma retirada com zero. Ao informar a quantidade correta para retirada do estoque e executando a saída, foi desenvolvida uma função que o sistema verifica as datas de validade dos produtos de todas as entradas efetuadas do produto a ser retirado, pega-se a quantidade disponível das entradas mais próximas para o vencimento. Para o gerenciamento do estoque o sistema utiliza o método PVPS, com isso para cada saída efetuada é feita uma verificação em cada entrada do produto a ser retirado, verifica-se a quantidade e são eliminadas as entradas que tiverem com quantidade disponível igual a zero. Evitando que produtos com a data de validade próxima fiquem parados no estoque e ocorra a perda do mesmo. 6.1.8 Manutenção da solicitação A figura 36 apresenta um sub-menu do menu solicitação. 66 Este sub-menu possibilita o acesso a fazer uma solicitação de um determinado produto que esta com baixa quantidade no estoque, visualiza e conclui as solicitações que foram efetuadas no sistema. Fonte: Elaborado pelos autores, 2011 Figura 36. Sub-menu solicitação 6.1.9 Interface solicitação de produto Fonte: elaborado pelos autores, 2011 Figura 37. Solicitação de produtos no sistema 67 A figura 37 é responsável por apresentar a interface de solicitação de produto no sistema. Nela utiliza-se dos mesmos
Compartilhar