SIMUPLAN - SIMULADOR GENÉRICO DO CRESCIMENTO E DESENVOLVIMENTO DE PLANTAS Willingthon Pavan1 José Mauricio Cunha Fernandes2 Roberto dos Santos Rabello3 RESUMO O objetivo deste trabalho foi a construção de uma estrutura para o desenvolvimento mais efetivo e eficiente de modelos de simulação para uso na agricultura. Alguns dos fundamentos é o formato de coleta e distribuição de dados, a modularidade do modelo de simulação, o desenvolvimento de softwares de simulação multiplataforma e programação em multicamadas. PALAVRAS-CHAVE: Linguagens de Programação, Java, Modelos de Simulação e Banco de Dados. ABSTRACT The objective of this work was the construction of a framework for effectively and efficiently develop simulation models for use in agriculture. Some of the foundations are the standards for dataset collection and distribution, the modularity of the simulation model, the development of softwares of simulation multplataform and programming in mult-layers. KEYWORDS: Programming languages, Java, simulation models and database. 1. INTRODUÇÃO No fim dos anos 60 e início da década de 70 surgiram os primeiros modelos de computador para a simulação de crescimento e rendimento de culturas (Jones et al., 2001). A medida que os computadores foram se popularizando também aumentaram os números de modelos e de pesquisadores envolvidos neste ramo da ciência. Uma vez que muitos programas foram desenvolvidos de forma independente a incompatibilidade representava uma dificuldade para aqueles que se encontravam fora do ambiente de desenvolvimento. Nos dias de hoje há um consenso sobre a necessidade de se fazer modelos mais compatíveis e eficientes. O desenvolvimento de modelos envolvendo sistemas de produção agrícola requer uma análise profunda do sistema, acúmulo de conhecimento e uma grande coleção de dados. Porém, é também crucial o emprego de métodos e ferramentas de tecnologia de software. A modularidade e a forma genérica são as palavras que descrevem a nova e amplamente aceita metodologia para superar as complexidades que surgem ao construir, manter e reusar modelos em partes ou como um todo. Na agricultura como em outros modelos dinâmicos o sistema pode ser analisado em termos de variáveis de estado, de fluxo e auxiliares. Estes em geral acabam fazendo parte de um conjunto de equações diferenciais que devem ser integradas numericamente dadas a complexidade do sistema. Esta estrutura comumente usada faz com que seja possível desenhar e codificar um modelo com finalidades de entradas e saídas arranjadas com ferramentas de software. Isto tem sido feito utilizando-se de bibliotecas de linguagens de programação como o Fortran, C, Pascal e outras. 1 Mestre em Ciência da Computação. Universidade de Passo Fundo – UPF/RS. PhD em Fitopatologia. Embrapa Trigo – Passo Fundo/RS. 3 Especialista em Informática na Educação. Universidade de Passo Fundo – UPF/RS. 2 Anais do IV Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada à Agropecuária e à Agroindústria A grande maioria dos programas de simulação de crescimento e desenvolvimento de culturas foi escrita em Fortran. Esforços têm sido feitos para que os programas escritos em Fortran sejam re-estruturados visando os aspectos fundamentais de modularidade. Por outro lado, novas linguagens de programação com fortes características de modularidade são hoje amplamente utilizadas. Entre estas se destaca o Java que além da modularidade apresenta outras vantagens como segurança, interatividade com banco de dados, disponibilização dos aplicativos na Internet e outras. O Java é uma linguagem que foi desenvolvida sob o novo paradigma de programação orientada a objetos (POO). A programação orientada para objetos tem revolucionado a maneira de como os “softwares” são concebidos, escritos e mantidos. A orientação a objetos simplesmente significa a visualização de um problema em termos de objetos envolvidos com aquele problema. Os princípios de orientação a objetos permitem que os “softwares” não apenas modelem o mundo real, mas permitem que o código do programa seja escrito de uma forma mais organizada e consistente. Modelos construídos com linguagem orientada a objetos podem ser desenvolvidos de forma intuitiva que imitam com relativa precisão a lógica do mundo verdadeiro. O uso de objetos na representação dos elementos permite que os controles sobre as ações dos mesmos sejam feitos de forma relativamente simples, pois são necessárias somente alterações na classe que está gerando o elemento, independente da quantidade. Facilidade também refletida na forma de implementação e criação de novos elementos, pois pode ser usada a característica de herança a fim de desenvolver um novo elemento a partir de suas características individuais e não das coletivas. Características de reaproveitamento são usadas com grande freqüência na programação orientada a objetos, pela facilidade e rapidez no desenvolvimento, podendo ser aproveitadas para desenvolver simulações complexas. Formas de reaproveitamento como documentação padronizada e generalização das especificações dos elementos, permitem uma fácil adequação às necessidades sobre as características dos objetos. A orientação a objetos possibilita inserir novos elementos no ambiente sem que haja a necessidade de recodificação, fazendo com que os componentes envolvidos possam trocar informações necessárias para o funcionamento do modelo. Estas características nos permitem desenvolver softwares modulares, capazes de se acoplarem na busca de um objetivo específico de tal forma que a programação se torna muito mais rápida e eficiente. 2. MATERIAL E MÉTODOS Baseado em um modelo genérico desenvolvido na linguagem Fortran (Porter et. al., 1999), foi desenvolvido um novo modelo de simulação utilizando o modelo de objetos fazendo com que o mesmo possa ser dimensionado conforme a necessidade da simulação (Figura 1). Com esta filosofia pode-se ter quantos objetos forem necessários para a simulação assim como parametrizar a sua execução. A orientação a objetos possibilita inserir novos elementos no ambiente sem que haja a necessidade de recodificação, fazendo com que os componentes envolvidos possam trocar informações necessárias para o funcionamento do modelo. 2 Anais do IV Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada à Agropecuária e à Agroindústria FIGURA 1: Esquema do modelo de simulação. FIGURA 2: Tela capturada Simulador SimTrigo. Processos fundamentais para as plantas (expansão das folhas, fotossíntese, fenologia, etc.), fatores ambientais tais como características do solo, dados de clima, práticas culturais e variáveis de estado foram codificadas como objetos de classes em Java, baseados na teoria agronômica, dados experimentais e modelos já publicados. Para o desenvolvimento do módulo principal, foram utilizadas as características inerentes do paradigma orientado a objetos, possibilitando a centralização e troca de informações entre os módulos do sistema. Uma interface genérica foi criada para que todo e qualquer módulo do sistema pudesse trocar informações com os outros módulos, a fim de realizar a simulação com segurança, rapidez e confiabilidade. Para os sub-módulos, são utilizadas as mesmas técnicas (classes abstratas e interfaces) para que estes conheçam e ofereçam informações esperadas por outros. Foram desenvolvidos os seguintes módulos: Simulador (integrador), Solo (H2O e N), Pragas, Clima, Planta e o módulo de Aspectos Econômicos (Figura 1). Os módulos de clima e de solo computam a energia e a água disponível para o crescimento das plantas. O módulo planta, simula os eventos fenológicos, expansão foliar, acumulação de carboidratos e a partição entre parte aérea e as raízes. O módulo de Aspectos Econômicos avalia os resultados da simulação frente a diferentes cenários para fins de tomada de decisão sobre o uso de insumos e práticas. A alimentação do modelo consiste em características da planta (espécie), dados de clima (radiação solar, temperatura mínima, temperatura máxima precipitação), assim como práticas agronômicas como data de semeadura e espaçamento. Um banco de dados foi modelado (Figura 3) para armazenar os dados de entrada (inputs) e os dados resultantes da simulação (outputs) para que os mesmos possam ser analisados e validados. Este banco de dados armazena diversos tipos de informações, tais como informações sobre o ambiente, clima, solo, irrigação, planta e pragas que servirão como dados de entrada. O banco foi modelado para que todas as informações ficassem centralizadas em apenas um local, fornecendo informações completas, precisas e atualizadas para todos os interessados nelas. 3 Anais do IV Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada à Agropecuária e à Agroindústria FIGURA 3: Representação gráfica do banco de dados modelado. Os resultados armazenados no banco são usados para criar tabelas e/ou gráficos, para a visualização da simulação das variáveis de estado como o índice de área foliar, estádios fenológicos, acumulação de carboidratos, fotossíntese, balanço hídrico, estresses hídrico das plantas, etc. 3. RESULTADOS E DISCUSSÃO Baseado no modelo de simulação do crescimento e desenvolvimento de plantas criado, e apresentado acima, foi possível construir uma aplicação gráfica que se utiliza deste modelo, chamado informalmente de SimTrigo, entre os participantes do projeto, que visa simular o crescimento e desenvolvimento do trigo e apresentar os resultados em um formato visual, com dados tabulados, gráficos e animações, além de informações textuais (Figura 2). Nesta fase de desenvolvimento, o modelo ainda é considerado genérico, pois muitas simplificações foram tidas como verdadeiras, principalmente, nos módulos que tratam da planta e solo. Em contrário, o conhecimento dos fatores que governam a fenologia do trigo assim como as relações patógeno-hospedeiro foram cuidadosamente exploradas para obter o máximo realismo. Desta forma, podemos dizer que o SimTrigo, hoje, é um aplicativo que simula de forma razoável o crescimento e o desenvolvimento de uma variedade de trigo tipo o BR23 e que também pode simular com muito realismo epidemias de giberela. 4. CONCLUSÕES Com a realização deste trabalho, podemos concluir que a utilização do paradigma de orientação a objetos, juntamente com modernas linguagens de programação (neste caso Java), nos possibilita desenvolver modelos de simulação mais realísticos e de fácil compreensão para a área agrícola. O presente trabalho, demonstra a aplicabilidade destas preciosas ferramentas e técnicas na área de simulação de sistemas. Outras técnicas, não apresentadas aqui, estão sendo estudadas a fim de deixar os sistemas com um formato ainda mais dinâmico. 4 Anais do IV Congresso Brasileiro da Sociedade Brasileira de Informática Aplicada à Agropecuária e à Agroindústria 5. REFERÊNCIAS BIBLIOGRÁFICAS FERNANDES, J. M. C. As doenças das plantas e o sistema de plantio direto. Revisão anual de patologia de plantas (RAPP), v. 5, p. 317-352, 1997. JONES, J. W., KEATING, B. A. and PORTER, C. H. Approaches for Modular Model Development. Agricultural Systems. 70/2:421-443, 2001. PORTER, C.H., BRAGA, R. & JONES, J.W. Na approach for modular crop model development. Disponível em: www.icasanet.org. Acesso em: 3 de agosto de 1999. 5