AGROJAVA: SISTEMA DE GESTÃO PARA PEQUENAS PROPRIEDADES RURAIS WEBER, Fernando Arthur1 Resumo A necessidade de alimento no mundo aumenta a cada dia, o que implica em constantes melhoramentos na produção agrícola. Nos últimos anos, teve-se uma intensificação do cultivo, que buscou aliar técnicas de aperfeiçoamento genético à relação custo beneficio. Este trabalho descreve a implementação bem como a funcionalidade de um sistema de gestão para pequenas propriedades rurais, denominado AgroJava. Palavras-Chave: Java. Agricultura. Desenvolvimento de Software. Abstract The need for food in the world increases every day, which implies constant improvements in agricultural production. In recent years, there has been an intensification of cultivation, which sought to combine techniques of genetic improvement to cost benefit. This paper describes the implementation and the functionality of a management system for small farms, named AgroJava. Keywords: Java. Agriculture. Software Development. Introdução Há alguns anos atrás o meio de incremento na produtividade agrícola era a expansão de novas áreas, porém essa expansão está praticamente esgotada, uma vez que não há mais áreas livres para a agricultura se expandir. E agora, a produção de alimentos para de crescer? A resposta da pergunta anterior é negativa. A produção de alimentos não vai parar de crescer. No entanto, é necessário o desenvolvimento de novos métodos de cultivo e gestão, que aperfeiçoem a produtividade nas áreas atuais. Para obter tal otimização, alguns fatores são indispensáveis, como, por exemplo, a revisão da política de gestão financeira. Ainda hoje grande parte dos pequenos produtores rurais, não realiza um acompanhamento detalhado da gestão da safra, seja por falta de conhecimento, interesse ou recursos. Outros o fazem manualmente, o que sujeita a realização de cálculos imprecisos entre outras dificuldades como a organização e o armazenamento das informações. O AgroJava é 1 Graduando em Ciência da Computação pela Universidade Unicruz, Cruz Alta, RS Brasil (2014). Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 1 um sistema que foca nessa linha de gestão, com o propósito de facilitar o gerenciamento de pequenas áreas de terras, permitindo a partir da análise dos relatórios encontrar informações detalhadas, que possibilitam um melhor planejamento para o pequeno agricultor. Este artigo está organizado como segue. A Seção das tecnologias utilizadas descreve as características básicas das tecnologias empregadas no desenvolvimento do AgroJava. A seguir temos a metodologia utilizada no desenvolvimento do trabalho. A próxima seção delineia os problemas que foram enfrentados. Finalmente, ultima seção apresenta as considerações finais e os trabalhos futuros. Tecnologias Utilizadas Para o desenvolvimento do sistema AgroJava, foram utilizadas diversas tecnologias. A linguagem de programação Java foi escolhida, devido a sua simplicidade, robustez e portabilidade. Para o gerenciamento do banco de dados, o PostgreSQL foi selecionado, pois apresenta código aberto e desfruta de alta performance. Para a criação dos relatórios o pos foi empregado, pois possibilita a criação de documentos que podem ser exportados por meio de aplicações Java. A seguir essas tecnologias são descritas. Java Java é uma linguagem computacional completa, adequada para ao desenvolvimento de aplicações baseadas na rede Internet, redes fechadas ou ainda programas com aplicações locais (CAMPIONE, 1996). A linguagem Java foi criada em 1991, por um pequeno grupo de programadores na Sun Microsystems, liderados por James Gosling e Patrick Naughton. Ela foi projetada inicialmente para a utilização em bens de consumo tais como televisores, fornos de microondas e agendas eletrônicas. Tinha em sua base a simplicidade para a compatibilidade em uma variedade de tipos de hardware. Mas foi no ramo de applets para a Internet que ela disparou (HORSTMANN, 2004). Um fator muito atrativo na linguagem Java é a sua simplicidade, ponto forte quando comparado ao seu rival C++, além da possibilidade da utilização de inúmeras bibliotecas que possibilitam escrever os mais diversos tipos de programas, além de aplicações para web com o Java Server Pages (JSP). Java foi projetado com o objetivo de ser seguro e portátil, perfeito para a Internet. Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 2 Com isso, a linguagem conseguiu uma grande popularização, passando a ser muito utilizada na construção de páginas web que permitam maior interatividade. Os principais navegadores web disponíveis comercialmente passaram a dar suporte aos programas Java, e outras tecnologias em áreas como computação gráfica e banco de dados também buscaram integrar-se com o novo paradigma proposto pela linguagem: aplicações voltadas para o uso de redes de computadores (FREE JAVA, 2009). Atualmente, a linguagem Java é o elemento que impulsiona grandes avanços como o acesso remoto a bancos de dados, o comércio eletrônico, a interatividade em páginas da web, ensino a distância, integração de dados, gerenciamento de documentos além de lazer e diversão tanto em desktops como em meios portáteis. A linguagem de programação Java caracterizasse de diversas maneiras, uma delas é a simplicidade que ela oferece, possibilitando o desenvolvimento de sistemas em diferentes plataformas e arquiteturas de hardware, aliado a robustez, segurança e o fornecimento de um código interpretável. (CAMPIONE, 1996). PostgreSQL O PostgreSQL é um sistema Gerenciador de Banco de Dados – SGBD de código aberto, que desfruta de alta performance e de fácil administração e utilização em projetos (PEREIRA NETO, 2007). As principais características do PostgreSQL são: a recuperação automática após crash do sistema, um atuante controle de concorrência de multi-versão – MVCC que minimiza a paralisação do sistema por meio do gerenciamento de tarefas, onde os processos de escrita não bloqueiam os de leitura e vice-versa. Além disso, o backup que pode ser realizado online (FERREIRA, 2004). Por ser uma linguagem de código aberto, o PostgreSQL é o SGBD que oferece o mais baixo custo total de propriedade, além de administração, suporte e licenciamento, mesmo assim oferecendo alta performance e confiabilidade (FERREIRA, 2004). Ireport O iReport é uma ferramenta de código aberto que possibilita ao seu usuário criar visualmente os mais complexos relatórios para aplicações Java, dentro do formato da biblioteca JasperReports. O programa é totalmente escrito em Java, portanto também é Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 3 multiplataforma, além da disponibilidade do código fonte por ser um sistema de código aberto – Open Source (TIFFOLI, 2011). Por meio da interface gráfica simplificada o desenvolvedor é capaz de desenvolver qualquer tipo de relatório de forma rápida e simples, obtendo seus relatórios em XML, formato utilizado pela biblioteca JasperReports. BrModelo e Astah Community O modelo conceitual chamado de diagrama de Entidade e Relacionamento é um modelo fácil de compreender até para o cliente, ele contém as propriedades do futuro software por meio de entidades e os relacionamentos entre elas (LUIS, 2010). O modelo conceitual do AgroJava foi desenvolvido na ferramenta brModelo2. O brModelo é um software gratuito de modelagem de banco de dados, desenvolvido por Carlos Henrique Cândido no ano de 2007. Segundo Ivan Jacobson os casos de uso são uma técnica de modelagem onde se utiliza de documentos que narram os eventos de um ator para realizar um processo, sendo o ator algo externo ao sistema como, por exemplo, um proprietário. Para o AgroJava os casos de uso foram desenvolvidos no Astah Community3. Esse possui uma versão gratuita para estudantes. Caracterizada pela sua funcionalidade em diversas plataformas como Mac, Windows e Linux, e proporciona ao usuário uma experiência de modelagem simples e dinâmica (ASTAH, 2011). Metodologia O desenvolvimento de um software envolve uma série de fatores fundamentais, necessários para alcançar o sucesso. O passo inicial, para atingir esse objetivo, é a realização de um adequado levantamento de requisitos. Para o sistema AgroJava não foi diferente, essa tarefa foi realizada por meio da análise de documentos e da entrevista com um proprietário rural. Nesse processo foram obtidos os requisitos e a situação atual da propriedade. O modelo conceitual foi criado na sequência, seguido dos casos de uso. A partir desse momento, a implementação na linguagem Java iniciou, dando início ao sistema, que ao longo do processo, agrega suas funcionalidades. A par da implementação do código, ocorre uma remodelagem 2 http://www.sis4.com/brModelo/ 3 http://astah.net/editions/community/ Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 4 que afetou todo o sistema. Finalmente, por meio do desenvolvimento os relatórios conclui a parte projetada do sistema, contudo um sistema que é utilizado sempre estará sendo incrementado e aperfeiçoado. Levantamento De Requisitos Os requisitos são características de um sistema. São as funções e restrições necessárias para que o mesmo possa atingir seus objetivos. Os requisitos são subdivididos em dois grupos, os requisitos funcionais e os não funcionais (PAULA FILHO,2007). Os requisitos funcionais ligam-se diretamente ao software, descrevendo as suas funções. Os requisitos não funcionais exprimem algumas condições para o sistema, como por exemplo, a plataforma que o software deve ser desenvolvido (PAULA FILHO, 2007). O processo de levantamento de requisitos consiste na busca de informações, que serão úteis no futuro desenvolvimento de um software, durante esse procedimento que são definidos os serviços do sistema bem como o problema a ser resolvido (PAULA FILHO, 2007). Existem diversas técnicas de levantamento de requisitos, no desenvolvimento do AgroJava, foram empregadas duas técnicas principais, a entrevista e a análise de documentos. A análise de documentos consiste na observação de um documento qualquer para a obtenção de requisitos, esse documento pode ser uma impressão deixada num objeto físico por um ser humano. Pode apresentar-se em várias formas como fotografias, filmes e impressa, que é a forma mais comum (BELL, 1993). No levantamento de requisitos do AgroJava, foi realizada a análise de notas fiscais de entrega e venda dos cereais, bem como algumas anotações feitas pelo proprietário da área de terra. A entrevista é a técnica que coleta requisitos por meio de conversas, realizadas com o usuário do software a ser desenvolvido, obtendo informações bem como restrições do sistema (PAULA FILHO,2007). Para o desenvolvimento do sistema AgroJava, a entrevista ocorreu com um produtor rural, que por meio de um questionário apresentou a atual situação da propriedade, seu funcionamento, descrito na sequência. Descrição Do Processo Atual O proprietário Renir Weber possui uma área de terra, denominada Granja Beira Rio. Essa área de terra possui nove hectares, uma matrícula que é individual e única, cujo numero é 1683. Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 5 O decorrer da safra implica em vários gastos para o proprietário, tais como despesas com máquinas, gastos com a aplicação de defensivos, insumos, mão de obra, colheita, transporte e plantio. Sendo que cada gasto possui um valor específico. Na sua área de terra, o proprietário pode cultivar no máximo uma cultura por vez, mesmo que uma cultura pode ser cultivada em mais de uma área de terra simultaneamente. Sobre essa cultura tem se o nome, uma descrição, a data de plantio, além da data de colheita. Ao fim do ciclo, essa cultura é colhida, entregue a uma empresa que possua nome e CNPJ. Ao entregar sua produção, será armazenada a data de entrega, a quantidade em sacas. Em outra ocasião o proprietário irá realizar o faturamento e assim chegar ao valor total da venda. O sistema de gestão de pequenas propriedades AgroJava, visa informatizar esse ciclo, a fim de promover um melhor acompanhamento das áreas de terras do proprietário. Esse software proporciona um gerenciamento claro e objetivo, que auxilia na visualização dos gastos, tornando possível a sua otimização e o consequente aumento dos lucros. Modelo Conceitual e os Casos de Uso O modelo conceitual é a primeira forma de transmitir os requisitos de um sistema, para uma abordagem de modelagem de dados. No sistema AgroJava, o modelo conceitual foi criado, baseado na descrição obtida no processo atual da pequena propriedade. Durante o desenvolvimento do software, surgiu a necessidade de alteração, de algumas entidades do modelo, que refletiram em mudanças em todo o sistema, melhor descritos na seção problemas enfrentados. Os casos de uso representaram maior dificuldade na elaboração, pois representam as interações do sistema com o ambiente externo, que no momento, não estavam totalmente definidos. Devido a isso receberam adaptações durante o processo de reestruturação do sistema. Visão Geral Do Sistema A estrutura utilizada para o desenvolvimento do sistema AgroJava, segue o padrão MVC (Model View Control – Modelo Visão Controle) que orienta a implementação do software, dividindo-o em pacotes, separando a camada de visão da camada de controle e da camada de modelo. Dessa forma é possível realizar alterações no layout sem que a Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 6 manipulação dos dados seja afetada, bem como o caminho inverso, os dados podem ser reorganizados sem que o layout seja alterado (GUPTA, 2010). A Figura 1 apresenta a arquitetura do sistema que possui cinco componentes principais: Modelo: o modelo possui as classes referentes a cada tabela do banco de dados; Controle Modelo: contem as ações relativas ao banco de dados como adicionar, alterar, excluir e consultar; Útil: representa a adaptação de dados por meio de conversores, por exemplo, a data; Controle Visão: controla os eventos ocorridos na tela, a partir da interação do usuário perante o sistema; Visão: representam os views, as telas do sistema; Figura 1. Arquitetura do sistema AgroJava. A estrutura do sistema representada na Figura 1, demostra o relacionamento entre os componentes. A componente visão realiza uma interação, representada pela seta de duplo sentido, ligando-o ao componente controle visão. Além desse relacionamento o controle visão interage com o controle modelo e com o modelo. O componente útil só é relacionado com o controle modelo, pois atua na conversão de datas. Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 7 O padrão de telas do AgroJava visa estabelecer um ambiente que seja agradável, mas, sobretudo funcional e prático, por meio de mensagens, auxilia o usuário na inserção dos dados, informando-o se houver algum problema com o preenchimento dos campos. Existem dois padrões de telas principais: listagens e manutenções. Figura 2. Tela de Listagem. As telas de listagem do AgroJava seguem o padrão da Figura 2. Nela é possível visualizar os dados, ordená-los, filtrá-los, exclui-los e ainda ser direcionado para a inserção e alteração de dados. Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 8 Figura 3. Tela de Manutenção. As telas de manutenção possuem uma interface muito simplificada no padrão da Figura 3, que possibilita a adição e a alteração dos dados. O primeiro campo, o código, não pode ser acessado pelo usuário, pois é gerado automaticamente por meio de uma sequência no banco de dados. O sistema ainda valida o preenchimento de campos obrigatórios informando mensagens explicativas, conforme a Figura 4. Figura 4. Mensagem de Aviso. A Figura 4 mostra uma mensagem de alerta, informando ao usuário que o campo quantidade de sacas não foi preenchido, embora seu preenchimento seja obrigatório. Além das mensagens de aviso, o AgroJava possui em seu código um comando que define o botão adicionar como padrão, dessa forma quando a tecla enter foi acionada, uma inserção será realizada, agilizando o processo. Esses requisitos foram incorporados no sistema de modo a torna-lo fácil de utilizar e prático, a fim de que ele realmente seja utilizado pelo pequeno Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 9 produtor. Um sistema que exija a entrada de muitas informações ou que possua uma interação complicada com o usuário possivelmente seria rejeitado pelo pequeno produtor. Figura 5. Relatório das Entregas. O sistema AgroJava, tem em sua ementa a elaboração de relatórios. Na Figura 5, observa-se o relatório das entregas de todas as áreas de terras, contendo a data e a quantidade de sacas, obtendo-se ao final o total de sacas entregues. Além do relatório das entregas, o AgroJava fornece o relatório das vendas e dos gastos. Possui inclusive filtros, o que possibilita a seleção detalhada, como, por exemplo, filtrar os gastos de determinado período de tempo. Problemas Enfrentados No desenvolvimento de softwares em geral, surgem dificuldades, como em qualquer tarefa do cotidiano. Essas dificuldades ou problemas possuem diversas explicações ou causas. Durante o desenvolvimento do sistema AgroJava, entre os principais problemas citam-se o levantamento de requisitos, a elaboração dos casos de uso e a reestruturação do sistema. Certamente o levantamento de requisitos é a essência de um software, portanto se ele não for realizado corretamente, o software permanecerá carente de funcionalidades ou com Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 10 consecutivos erros. Esses erros são os bugs, falhas do sistema que podem ocasionar a perda de informações. No desenvolvimento do AgroJava a dificuldade no levantamento de requisitos surgiu devido à baixa quantidade de informações sobre as áreas de terras, pois a maioria dos proprietários rurais não realiza um acompanhamento direto, registrando as entradas e saídas durante o período de cultivo, apenas analisam o montante após a safra. Além da dificuldade na interpretação dos termos utilizados pelo proprietário, que tiveram que ser entendidos pelo analista. Perante essas barreiras enfrentadas, a falta de requisitos foi saciada por meio da análise de algumas notas fiscais de entrega e venda, bem como uma entrevista com um proprietário. No início, durante a modelagem dos casos de uso do sistema AgroJava, os atores, elementos que interagem com o sistema, não estavam completamente definidos. Pois não havia um modelo estabelecido anteriormente. Isso gerou a necessidade da remodelagem dos casos de uso, após o término da implementação obtendo assim uma nova versão. A reestruturação do sistema AgroJava, ocorreu dentro do último mês de trabalho. Nessa reestruturação ocorreram mudanças no modelo conceitual, que ocasionaram a extinção de uma entidade chamada cultura, e a revisão dos demais atributos. Com essas mudanças houve um efeito cascata passando pelo banco de dados, atualizando-o por meio da remoção da tabela cultura e da adição de algumas chaves estrangeiras. E por fim alcançando o código da linguagem de programação Java concluindo o processo de reestruturação. Considerações Finais A informatização da gestão agrícola é uma área que possui grande horizonte a ser expandido. Oferecendo interesse a ambos os lados. Para a agricultura, ocasiona uma otimização dos gastos, que quando bem direcionados melhoram os rendimentos. Para a informática é um mais um campo de trabalho, que oferece oportunidades aos mais diversos profissionais. Com o intuito de saciar algumas necessidades do setor, o sistema AgroJava foi desenvolvido. Esse desenvolvimento ocasionou grande aprendizado no domínio da linguagem Java, bem como sua integração com o banco de dados, portanto obtendo um resultado positivo, agregando conhecimento. Logo este trabalho, sugere uma solução tecnológica para o gerenciamento agrícola, Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 11 possibilitando uma visão mais ampla, sobre alguns custos que ocasionalmente passam despercebidos. O AgroJava incentiva os produtores rurais a praticar o gerenciamento de uma forma mais dinâmica e objetiva. Após a conclusão do sistema projetado, verificaram-se alguns novos requisitos, como a necessidade de um controle por safra. Devido a que no sistema atual o controle é realizado pela data do gasto e não da safra a que pertence, com o intuito de retornar um relatório contendo o lucro final obtido. Além do gerenciamento das máquinas envolvendo a sua depreciação, contabilizada juntamente com os gastos. Esses novos requisitos, serão implementados como trabalhos futuros. Referências ASTAH (Org.). Simplicity, Quality, and Community are our three greatest priorities. Disponível em: <http://astah.net/company>. Acesso em: 5 nov. 2011. BELL, J. Como realizar um projecto de investigação. 3. ed. Lisboa: Gradativa, 1993. CAMPIONE, Walrath. The Java Tutorial: Object-Oriented. 1996. FERREIRA, Adriana. Principais Características do PostgreSQL. Disponível em: <http://www.sqlmagazine.com.br/Artigos/Postgre/01_Caracteristicas.asp>. Acesso em: 4 nov. 2011. FREE, Java. Tutorial Java. Disponível em: <http://javafree.uol.com.br/artigo/871498>. Acesso em: 03 nov. 2011. GUPTA, Praveen; GOVIL, Prof. M.c. MVC Design Pattern for the multi framework distributed applications using XML, spring and struts framework. Rajasthan, India: International Journal On Computer Science And Engineering, 2010. HORSTMANN, Cay. Big java. Bookman, 2004. LUIS. Modelagem de dados: modelo conceitual, modelo lógico e físico. Disponível em: <http://www.luis.blog.br/modelagem-de-dados-modelo-conceitual-modelo-logico-efisico.aspx>. Acesso em: 5 nov. 2011. PEREIRA NETO, Álvaro. PostgreSQL: Técnicas avançadas – soluções para o desenvolvimento e administração de banco de dados. São Paulo: Érica, 2007. Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 12 PAULA FILHO, Wilson de Pádua. Alguns fundamentos da Engenharia de Software. A: Corpo Editora, 2007. TOFFOLI, Giulio. Getting Started. Disponível em: <http://jasperforge.org/website/ireportwebsite/IR%20Website/ir_getting_started.html?header =project&target=ireport>. Acesso em: 5 nov. 2011. Revista Interdisciplinar de Ensino, Pesquisa e Extensão, vol.1 n°1 13