TECNOLOGIAS E FRAMEWORKS UTILIZADAS NO DESENVOLVIMENTO DE SISTEMAS GERENCIAIS Janderson Fernandes Barros ¹, Igor dos Passos Granado¹, Jaime William Dias ¹,² ¹ Universidade Paranaense (UNIPAR) Paranavaí - PR - Brasil [email protected], [email protected] ² Universidade Estadual de Maringá (UEM) Maringá - PR - Brasil [email protected] Resumo: Com a evolução da tecnologia da informação, aumenta-se cada vez mais a necessidade das empresas utilizarem de sistemas gerenciais para garantir a organização e segurança de suas informações. Sendo assim, o objetivo do trabalho é desenvolver um sistema gerencial para a empresa SysRastro, para tal, é realizado um estudo sobre tecnologias e frameworks de desenvolvimento e aplicações práticas das mesmas. Notando-se então que para o desenvolvimento de sistemas gerenciais de qualidade é necessário um estudo sobre as tecnologias utilizadas, o que aumenta as chances de sucesso na produção final de um projeto. 1. Introdução Na atualidade muitos comerciantes gerenciam suas empresas de modo simples sem a análise de um software para gestão, assim causando decisões equivocadas e erradas, gerando prejuízos para a empresa e levando preocupações para os gestores. Para auxiliar a gestão, existem os SIGs (Sistemas de Informação Gerenciais), Oliveira [2008] define os sistemas de informações gerencias como processos utilizados para transformar dados em informações que auxiliem no processo decisório da empresa. Para uma empresa na atualidade obter êxito na disputa em busca de resultados mais ambiciosos há a necessidade de diversos segmentos, pois a competitividade entre as empresas está acirrada. Além da manutenção e da satisfação de seus clientes as empresas são obrigadas a utilizar ferramentas para otimização dos dados disponíveis em seus bancos de dados, possibilitando que o administrador tome suas decisões com embasamento e certeza que irá surgir algum resultado, pois é de suma importância possuir informações bem organizadas. Oliveira [2008], diz que, SIG são indispensáveis, pois na grande maioria das empresas que utilizam sistemas, existem muitos dados que estão a disposição, mas dados por si só não podem ser utilizados na tomada de decisão sem antes passar por um processo de filtro para que futuramente tornem informações viáveis a serem utilizadas, e é nessa etapa que os sistemas de informações atuam, filtrando, organizando e exibindo o que é realmente valido a ser utilizado. 2. Metodologia Como estudo de caso está sendo desenvolvido um sistema para a SysRastro situada na cidade de Londrina - Paraná, criando uma aplicação web, pois possui dificuldade em gerenciar um constante crescimento de clientes e quais informações utilizar para tomadas de decisões. Após ser feito um estudo sobre a empresa, adentramos ao ramo de negócio para identificar as necessidades reais, levantamentos de requisitos funcionais (como o sistema deve reagir às entradas de dados, como deve se comportar em determinada situações, o que o sistema não pode fazer), e também requisitos não funcionais (requisitos do produto, requisitos organizacionais, requisitos externos). Ao decorrer do desenvolvimento do sistema foram utilizadas etapas de engenharia de software como: diagramações UML, projeto de dados, projeto de objetos, levantamento de requisitos. Utilizando a linguagem de programação Java JSF - Java Server Faces, uma linguagem para todas as plataformas operacionais utilizando o navegador web e utilizando o SGBD - Sistema de Gerenciamento de Banco de Dados PostgreSQL. 3. Desenvolvimento 3.1. Linguagem de Programação De acordo com Pressman [2007], UML é uma linguagem padrão para desenvolver e documentar projetos de software. A sigla UML é a abreviação de Unified Modeling Language ou Linguagem de Modelagem Unificada. Possuindo o objetivo de, visualizar, especificar, construir e documentar os artefatos de um sistema de software. Diagramas UML são como plantas de uma construção de engenharia civil, e esta planta ajuda os desenvolvedores de software a construir o produto. Utilizando a linguagem de programação Java Enterprice Edition ou também conhecido como JavaEE é uma plataforma de desenvolvimento para web, utilizando atribuições de APIs. O Java EE simplifica o desenvolvimento e diminui a necessidade de programação a de treinamento de um programador, pois cria componentes reutilizáveis padronizados, tratando de muitos aspectos da programação de forma automática [Java, 2014]. 3.2. Ferramentas Na criação dos diagramas para explicar as características e o comportamento do software, foi utilizado o Astah, anteriormente denominado JUDE, sendo este um software para modelagem UML. Para o desenvolvimento do sistema foi utilizado o IDE Eclipse. O Eclipse é um IDE (Integrated Development Environment) que foi desenvolvido pela empresa americana IBM (International Business Machines), em novembro de 2001. A empresa investiu cerca de 40 milhões de dólares para o desenvolvimento de um IDE de código aberto (open source) e de grande usabilidade. Ao longo do tempo, o Eclipse tornou-se uns dos IDEs mais utilizados no mundo, especialmente por utilizar SWT (The Standard Widget Toolkit) como biblioteca gráfica [Eclipse, 2014]. 3.3. Frameworks Segundo Fayad e Schmidt [1997], frameworks representam uma estrutura formada por blocos pré-fabricados de software que os programadores podem usar, estender ou adaptar para uma solução específica e linguagens de padrões. São formadas por um conjunto de padrões de software para resolver um problema complexo em um determinado domínio, ou seja são funções que surgiram para agilizar o trabalho dos desenvolvedores de software [Appleton, 1997]. Devido ao grande investimento de comunidades e algumas empresas, existem hoje uma variedade de frameworks que visam facilitar o trabalho do desenvolvedor. Ferramentas que auxiliam em tarefas complexas tornando simples e fácil a utilização, são muito utilizadas na programação de um software Java web, assim como o Hibernate, uma Framework de persistência no banco de dados, ela abstrai o seu código SQL e toda camada JDBC e gera em tempo real de execução a persistência para um determinado banco de dados, já que cada banco tem um dialeto diferente do outro e utilizado no software em destaque. Assim facilitando a troca de SGBD caso haja necessidade sem alteração no código Java, pois fica de total responsabilidade da ferramenta Hibernate. Figura 1: Funcionamento do framework Hibernate Fonte: Smolenaars [2005]. Atualmente, muitos desenvolvedores web se concentram mais com as funcionalidades do que com a parte visual dos componentes, na aplicação desenvolvida está sendo utilizada o primefaces. De acordo com Devrates [2014], o PrimeFaces assumiu a liderança com a pontuação de 8.7 como o framework favorito dos desenvolvedores para criação de interfaces em Java. 3.4. Armazenamento de Dados Um sistema de gestão de bases de dados – SGBD, é, segundo Heuser [1998], “um software que incorpora as funções de definição, recuperação e alteração de dados”, já para Elmasri e Navathe [2005], um SGBD “é uma coleção de programas que permitem a criação, manipulação e manutenção de uma base de dados – BD”. Ou seja, um SGBD “é um software de propósito geral que facilita os processos de definição, construção, manipulação e partilha de bases de dados entre vários usuários e aplicações”. Em suma pode se dizer que um SGBD é software que controla as funções de diferentes bases de dados interligadas. Sobre o conceito de SGBD citado acima, foi utilizado o PostgreSQL pois é um sistema de gerenciamento de banco de dados objeto-relacional (SGBDOR). Desenvolvido no Departamento de Ciência da Computação da Universidade da Califórnia em Berkeley. O projeto POSTGRES, liderado pelo Professor Michael Stonebraker, foi patrocinado pelas seguintes instituições: Defense Advanced Research Projects Agency (DARPA), Army Research Office (ARO), National Science Foundation (NSF), e ESL, Inc. O PostgreSQL descende deste código original de Berkeley, possuindo o código fonte aberto. Fornece suporte às linguagens SQL92/SQL99, além de outras funcionalidades modernas. 4. Considerações finais Foi desenvolvido um software para gestão Web, onde nele se encontra módulos que facilita a organização de clientes, funcionários e hospedagens/domínios para que a SysRastro possa melhorar o gerenciamento e possuir um maior controle das informações. O Software irá controlar os setores financeiros e vendas da empresa, levantando dados para tomada de decisões de uma forma clara e eficiente e os funcionários e proprietário da empresa obterão como consequência uma maior organização de suas vendas e um controle financeiro de contas a pagar e receber. O software deve proporcionar um controle total dos clientes para os quais a empresa desenvolve sites e precisa do controle de pagamentos do serviço, da hospedagem e domínio de cada um, tendo em vista que também pode ser prestado serviço que não tem esses requisitos o sistema precisa de um controle de ordem de serviço para que todos os serviços prestados sejam devidamente controlados e cobrados, e como resposta dos registros o software deve conter relatórios que ajudem nas decisões administrativas e gerenciais para que as decisões sejam tomadas de maneira eficiente. 5. Referencias Appleton, B. (1997) Patterns and software: essential concepts and terminology. Disnponível em: http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html Acesso em: 21/08/2014. Devrastes (2014). Open source reviews by real http://devrates.com/stats/index/> Acesso em 21/08/2014. users. Disponível em: Eclipse (2014). What is Eclipse and the Eclipse Foundation. Disponível em: < http://www.eclipse.org/org/> Acesso em 21/08/2014. Elmasri, R.; Navateh, S. B. (2005) Sistema de Banco de Dados. São Paulo: Pearson. Fayad, M. E. et al. (1997) Object-oriented Application Frameworks. NY: Wiley. Heuser, C. A. (1998) Projecto de Bancos de Dados. Porto Alegre: Sagra Luzzatto. Java (2014). O que é Java Enterprise Edition. Disponível em: http://www.java.com/pt_BR/download/faq/techinfo.xml> Acesso em 21/08/2014. < Oliveira, D. P. (2008) Rebouças de Sistemas de Informações Gerenciais: estratégicas táticas operacionais. 12 ed. 299 p. São Paulo: Atlas. Pressman, R. (2006) Engenharia de Software. São Paulo: MacGraw-Hill.