Universidade Federal do Amazonas Instituto de Computação Programa de Pós-Graduação em Informática MOGNO: um modelo computacional para análise da dinâmica florestal Daniella Rodrigues Bezerra Fevereiro - 2013 Universidade Federal do Amazonas Instituto de Computação Daniella Rodrigues Bezerra MOGNO: um modelo computacional para análise da dinâmica florestal Segunda qualificação submetida à comissão do Programa de Pós-Graduação em Informática da UFAM, como parte dos requisitos necessários à candidatura para o Doutorado em Informática. Área de concentração: Engenharia de Software. Sub-área: Compiladores e Linguagem de Domı́nio Especı́fico. Orientador: Prof Raimundo da Silva Barreto, Dr. Fevereiro - 2013 Daniella Rodrigues Bezerra MOGNO: um modelo computacional para análise da dinâmica florestal Segunda qualificação submetida à comissão do Programa de Pós-Graduação em Informática da UFAM, como parte dos requisitos necessários à candidatura para o Doutorado em Informática. Área de concentração: Engenharia de Software. Sub-área: Compiladores e Linguagem de Domı́nio Especı́fico. BANCA EXAMINADORA Prof. Raimundo da Silva Barreto, Dr., Presidente Universidade Federal do Amazonas Prof. xxx, PhD., Membro Universidade Federal de Pernambuco Prof. xxx, Dr., Membro Universidade Federal de Pernambuco Ao meu pai e à minha mãe por plantarem a semente. À vida pelo solo fértil. A todos da minha famı́lia pelo incentivo para realização deste trabalho. iv Agradecimentos Ao plano espiritual pela força invisı́vel; Ao meu orientador, Prof. Barreto pela orientação; Ao meu supervisor, Prof. Bernd Fischer pelas contribuições; Aos meus irmãos acadêmicos Odette, Herberte, ...; À Elienai e equipe pelo apoio diário; À CAPES pela oportunidade e concessão da bolsa de estudos; À UFAM e a todos os professores pela experiência de vida que a candidatura ao doutorado vem me proporcionando. v Que vocês sejam grandes empreendedores. Se empreenderem, não tenham medo de falhar. Se falharem, não tenham medo de chorar. Se chorarem, repensem a sua vida, mas não desistam. Dêem sempre uma nova chance a si mesmos. Augusto Cury O conhecimento pronto estanca o saber e a dúvida provoca a inteligência. Lev Vigotsky Resumo As florestas representam um componente fundamental para o sistema climático pois contribuem diretamente na regulação do clima e influenciam em varios ciclos como o hidrológico, de carbono e energia. Este forte elo de cooperação entre as florestas e o sistema climático vem despertando o interesse da comunidade cientı́fica em compreender melhor as vulnerabilidades, impactos e a capacidade de regeneração das florestas diante de mudanças climáticas. Trata-se de um domı́nio complexo que envolve muitos questionamentos sobre a análise da dinâmica florestal, estimativa de carbono e que sofre uma carência de modelos computacionais formais capazes de auxiliar tais atividades. Este trabalho de pesquisa aborda o problema de como maximizar a análise da dinâmica florestal e estimativa de carbono minimizando tempo, custo, esforço e propõe um modelo computacional formado por dois componentes centrais inovadores que são respectivamente: a linguagem de domı́nio especı́fico CarbonQL e a ontologia Carbontology. Esses dois componentes integrados formam o modelo Mogno que usa a Engenharia Guiada por Modelos como método para a integração e modularização dos mesmos. A partir da linguagem CarbonQL conectada a um banco de dados cientı́fico, os engenheiros florestais podem obter respostas aos seus questionamentos por meio da especificação de consultas usando a terminologia do domı́nio, formalizada por este trabalho através da Carbontology. Espera-se como principal contribuição cientı́fica a prova de que o modelo Mogno parte dos questionamentos feitos pelos especialistas ao nı́vel de execução computacional de tal forma que propriedades do domı́nio possam ser extraı́das e validadas de forma otimizada. vii Abstract Abstract. viii Lista de Figuras ix Lista de Tabelas x Sumário Resumo vii Abstract viii Lista de Figuras ix Lista de Tabelas x 1 Introdução 1.1 Motivação e Justificativa 1.2 Questões de Pesquisa . . 1.3 Objetivos . . . . . . . . 1.4 Metodologia . . . . . . . 1.5 Organização da Proposta 1 4 5 7 8 9 I . . . . . . . . . . . . . . . . . . . . de Tese . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fundamentação Teórica 11 2 Modelos computacionais 2.1 Modelagem e Modelos Computacionais: 2.2 Contribuição dos Modelos . . . . . . . 2.3 Engenharia Guiada por Modelos . . . . 2.4 Considerações Finais . . . . . . . . . . conceitos e motivações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Linguagens de Domı́nio Especı́fico 3.1 Teoria das Linguagens Formais e as DSLs . . . 3.2 Porque, quando e como desenvolver uma DSL 3.3 Técnicas de Implementação . . . . . . . . . . 3.4 Combinando multiplas linguagens . . . . . . . xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 12 17 17 17 . . . . 18 18 18 18 18 SUMÁRIO 3.5 II xii Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Descrição Metodológica 19 4 Instrumental de Pesquisa 4.1 Escopo do Projeto . . . . . . . . . . . . . . 4.2 Métodos, Técnicas e Ferramentas Utilizados 4.3 Plano de Desenvolvimento da Pesquisa . . . 4.4 Cronograma . . . . . . . . . . . . . . . . . . 4.5 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 20 20 20 20 III Apresentação, Análise e Interpretação dos Resultados Parciais 21 5 Mogno: um modelo computacional tal 5.1 Introdução . . . . . . . . . . . . . 5.2 A linguagem CarbonQL . . . . . 5.3 A ontologia Carbontology . . . . 5.4 Considerações Finais . . . . . . . 6 Aplicação do Modelo Mogno 6.1 Introdução . . . . . . . . . . . . 6.2 Estudo de caso: uma análise do uma área da floresta amazônica 6.3 Considerações Finais . . . . . . para análise da dinâmica flores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sequestro e emissão de . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Próximos Passos 7.1 Revisão Sistemática . . . . . . . . . 7.2 Aprimoramento do Modelo Mogno 7.3 Avaliação do Modelo Mogno . . . . 7.4 Metas de Publicações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . carbono . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 22 22 22 22 23 . . . 23 em . . . 23 . . . 23 . . . . . . . . . . . . 24 24 24 24 24 8 Discussão e Contribuições Esperadas 25 8.1 Limitações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 SUMÁRIO Referências Bibliográficas xiii 25 Capı́tulo 1 Introdução Técnicas como generalização e especialização são utilizadas pela ciência para modelar, analisar e explicar fenômenos nas mais diversas áreas do conhecimento. Na computação um dos modelos teóricos pioneiros que fundamenta a generalização e a especialização é a máquina de Turing [4]. Do ponto de vista da generalização, Turing propôs uma máquina universal, capaz de dizer se uma dada função naturalmente considerada computável, pode ser computada por seu modelo abstrato. Já do ponto de vista especı́fico, a máquina de Turing é usada para representar aspectos lógicos do funcionamento de um computador como memória, estados e transições. Linguagens de programação ou de especificação surgiram a partir deste modelo teórico proposto e são usadas basicamente em propósitos gerais ou especı́ficos, cujo termo popular em inglês é respectivamente General Purpose Language (GPL) e Domain Specific Language (DSL) 1 As GPLs tais como Java, C, Python, etc., oferecem um amplo conjunto de abstrações disponibilizando flexibilidade ao programador para construção de sistemas relacionados aos mais variados domı́nios como processos de negócios, computação 1 Por uma questão de padronização com a literatura internacional, no decorrer deste trabalho serão utilizadas as siglas GPL para referenciar linguagem de propósito geral e DSL para linguagem de domı́nio especı́fico. 1 2 numérica, processamento simbólico, programação cientı́fica, entre outros. Já as DSLs são mais pontuais e restritas (conjunto reduzido de notações e abstrações) ao subdomı́nio para os quais elas foram projetadas, por exemplo, Eugene [1] é uma DSL para especificação e definição de restrições de partes, recursos e regras associadas a elementos da biologia sintética. Esta DSL foi desenvolvida com o intuito de permitir que biólogos e outros especialistas de áreas correlatas e com o mesmo interesse de pesquisa possam criar de forma autônoma e padronizada suas especificações sobre o domı́nio. Como resultado, os especialistas passaram a ter um método formal e que adicionou mais confiabilidade as especificações. Eugene é uma alternativa ao método ad-hoc que agregou maior produtividade na análise do DNA (deoxyribonucleic acid ). Desde o modelo de Turing aos atuais, que derivaram ou não deste, os problemas da área de modelagem computacional investigados por este trabalho são: Problema 1. Mapear quais problemas podem ser ou não computados em um dado modelo computacional e, Problema 2. Como evoluir os modelos computacionais para otimizar a representação e a solução dos problemas do mundo real. Existem vários métodos que sugerem um ponto de partida à obtenção de soluções de tais problemas. Um deles é a engenharia guiada por modelos, em inglês, modeldriven engineering (MDE), que procura contribuir com seus exemplos de heterogeneidade através da automação de modelos entre linguagens de modelagem de forma que modelos sejam transformados do alto para o baixo nı́vel, resultando em um modelo passı́vel de execução, seja por geração de código ou pela interpretação de modelos. MDE promove o uso de modelos em vários nı́veis de abstração como artefatos para a especificação de sistemas bem como a transformações automáticas do modelo do usuário em software e emerge como um paradigma promissor em engenharia de 3 software por enfatizar o uso de modelos não apenas para fins de documentação e comunicação, mas como artefatos que podem ser transformados em outros modelos. Dentro do contexto de MDE, as DSL’s representam para os especialistas o encapsulamento de um determinado domı́nio, capaz de melhorar a qualidade e produtividade do desenvolvimento de software, como exemplificado anteriormente no caso da DSL Eugene. Parte desta produtividade está associada à possibilidade dos especialistas desenvolverem, modificarem, validarem e testarem suas próprias aplicações já que a sintaxe/semântica da linguagem contempla uma terminologia que faz parte do vocabulário comum, onde o mesmo pode ser descrito com o auxı́lio de uma ontologia formal. De acordo com Henderson-Sellers [5], a ontologia formal, tema de pesquisa amplamente explorado pela área de inteligência artificial, pode ser definida como um conjunto de conceitos pertinentes a um domı́nio e expressos em uma linguagem computacional de representação ontológica. Atualmente uma linguagem que vem ganhando popularidade neste contexto é a Web Ontology Language, informalmente conhecida como OWL. Segundo France e Rumpe [3], pesquisas sobre técnicas de especificação, como ontologias formais, são particularmente relevantes porque linguagens de modelagem devem ter uma semântica formalmente definida caso realmente se queira criar modelos passı́veis de análise. Como a área de modelagem computacional é multi e interdisciplinar, os Problemas 1 e 2 também são amplamente discutidos em outras áreas de conhecimento, por exemplo, na Engenharia Florestal. As florestas representam um componente fundamental para o sistema climático pois contribuem diretamente na regulação do clima e influenciam em vários ciclos como o hidrológico, de carbono e energia. Este forte elo de cooperação entre as florestas e o sistema climático vem despertando o interesse da comunidade cientı́fica em compreender melhor as vulnerabilidades, impactos e a 1.1 Motivação e Justificativa 4 capacidade de regeneração das florestas diante de mudanças climáticas. Trata-se de um domı́nio complexo que envolve muitos questionamentos sobre a análise da dinâmica florestal, estimativa de carbono e que sofre uma carência de modelos computacionais formais capazes de auxiliar tais atividades. Essas dificuldades fazem com que os engenheiros florestais se deparem com o seguinte problema: Problema 3. Como maximizar a análise da dinâmica florestal e estimativa de carbono minimizando tempo, custo, esforço? Segundo um levantamento feito por Juvenal e Mattos [6], o Brasil é o segundo paı́s com maior cobertura florestal do mundo, superado apenas pela Rússia. Com tal extensão de cobertura florestal, além de posição estratégica nas questões ambientais globais, o Brasil possui um grande potencial produtivo de produtos madeireiros e serviços ambientais. Inicialmente este fato chamou atenção para este domı́nio como um possı́vel estudo de caso, realização de experimentos e aplicações práticas para este trabalho já que do ponto de vista computacional, a dinâmica florestal é um domı́nio de estudo muito suscetı́vel a abstrações e simulações, ideal para a aplicação e análise de modelos computacionais. A próxima seção aborda com mais propriedade a motivação e justificativa para este trabalho. 1.1 Motivação e Justificativa Com base nos Problemas 1, 2 e 3, é possı́vel observar uma interseção nos interesses de pesquisa que resultou no mapeamento de dois grupos relevantes para o contexto desse trabalho: (i) comunidade da ciência da computação, interessada em criar/evoluir modelos computacionais e aplicar métodos como MDE e linguagens formais (GPLs ou DSLs) em sistemas complexos que representem abstrações do mundo real, com o objetivo de entender como modelos, metamodelos e métodos podem ser otimizados, e (ii) a comunidade da engenharia florestal com interesse em 1.2 Questões de Pesquisa 5 obter respostas para questões que resultem em uma melhor compreensão da dinâmica florestal e ciclo do carbono já que o tema envolve a sociedade como um todo, desde ações individuais, passando pela cadeia produtiva, econômica e chegando ao nı́vel de decisões governamentais. A motivação para a análise deste domı́nio está no fato de a atividade madeireira e a cadeia produtiva a ela associada contemplarem problemas interessantes de serem investigados do ponto de vista computacional e por ser um domı́nio mundialmente em evidência já que em vários paı́ses, a atividade madeireira é objeto de investimentos e transações comerciais de elevado valor. A justificativa para a realização deste trabalho está alinhada com os grandes desafios da pesquisa em computação no Brasil (2006-2016), mapeados e discutido em um seminário realizado pela Sociedade Brasileira da Computação. Um dos cinco grandes desafios está associado a “modelagem computacional de sistemas complexos artificiais, naturais e da interação homem-natureza”. A modelagem computacional envolve um grande conjunto de algoritmos e técnicas de simulação, manipulação e mineração de dados, dentre outros, em que o modelo é um dos produtos da pesquisa, sendo interpretado como um processo computacional que filtra, transforma, aglutina e gera dados. Isto envolve frequentemente cooperação entre cientistas da computação e de outros domı́nios. Normalmente, na modelagem computacional há incertezas sobre o próprio modelo, pois esses envolvem um grande número de parâmetros que devem ser explorados e ajustados [2]. 1.2 Questões de Pesquisa O processamento computacional de questões relacionadas a análise da dinâmica florestal é um tópico de pesquisa que está em constante investigação, por não haver uma tecnologia consolidada nesta área. Por isso podem ser encontrados diversos 1.2 Questões de Pesquisa 6 pontos de questionamento que levam a novos caminhos de pesquisa. As questões de pesquisa deste trabalho são as seguintes: Questão de Pesquisa 1. É viável o desenvolvimento de um modelo computacional para análise da dinâmica florestal? Atualmente existem modelos que contemplam mais a parte de simulação, com o objetivo de imitar o comportamento de crescimento e mortalidade de árvores e fatores de perturbação do cenário como queimadas, fenômenos climáticos, desmatamento, reflorestamento, etc. Até o momento, nenhum modelo foi desenvolvido com o intuito de estabelecer um mecanismo de consultas aos dados do domı́nio que viabilize a análise dos mesmos e que leve em consideração a autonomia dos engenheiros florestais para obter respostas aos seus questionamentos. Questão de Pesquisa 2. Que linguagens formais podem ser obtidas a partir de um modelo computacional para análise da dinâmica florestal? Uma das possı́veis formas de se compreender o poder de expressividade de um modelo computacional é através da classe das linguagens formais que o modelo pode gerar. Ao fazer uma analogia com a tese de Turing, qualquer programa de computador2 pode ser traduzido em uma máquina de Turing, e qualquer máquina de Turing pode ser traduzida para uma GPL. Questão de Pesquisa 3. Que interfaces multimodais extensı́veis podem ser usadas com o intuito de facilitar a configuração dinâmica dos modelos? O desenvolvimento de modelos corretos envolve uma alta complexidade e é uma atividade que demanda tempo e um extraordinário esforço de implementação e projeto. Todo esse custo dificulta o processo de adaptação, portabilidade, integração e neste caso, interfaces multimodais extensı́veis que facilitem a configuração dinâmica dos modelos são muito bem-vindas. 2 Programa de computador que assume a forma de uma função considerada computável. 1.3 Objetivos 7 Questão de Pesquisa 4. Quais são os aspectos que um modelo computacional precisa contemplar, para que possa ser considerado potencialmente satisfatório? Um modelo computacional é criado inicialmente com o intuito de representar fatos, eventos, objetos e/ou processos. Normalmente os modelos são mais simples que o mundo a ser modelado e espera-se obter com a implementação dos modelos a compreensão do mundo modelado. Um outro aspecto importante dos modelos e do processo de modelagem é que a mesma realidade pode ser modelada de diferentes maneiras, representando diferentes aspectos do problema ou diferentes visões. Do ponto de vista da validação cientı́fica, é necessário estabelecer critérios formais para garantir que determinado modelo é potencialmente satisfatório dentro das fronteiras do seu propósito. Questão de Pesquisa 5. Como ocorre o processo natural de análise da dinâmica florestal? A modelagem computacional deve refletir primeiramente a realidade constatada em pesquisas de manejo e inventário florestal. Isso porque todo modelo é uma representação do mundo real. Se a realidade em questão é a análise da dinâmica florestal, os questionamentos dos pesquisadores deste domı́nio devem ser investigados para se obter tal concepção. 1.3 Objetivos O objetivo geral desta proposta de tese de doutorado é demonstrar que a partir do modelo Mogno, os engenheiros florestais podem obter respostas aos seus questionamentos por meio da especificação de consultas usando a terminologia do domı́nio com o intuito de extrair e validar propriedades. 1.4 Metodologia 8 Em linhas gerais, este objetivo geral decompõe-se nos seguintes objetivos especı́ficos: 1. Formalizar a terminologia do domı́nio de dinâmica florestal por meio de ontologia formal; 2. Criar uma DSL com base no benchmark 3 da área de Linguagens de Domı́nio Especı́fico que receba como entrada consultas definidas sob a terminologia formalizada; 3. Gerar automaticamente código para um framework de mapeamento objetorelacional de forma que as consultas originalmente especificadas na DSL (linguagem de alto nı́vel) sejam mapeadas para um nı́vel executável em banco de dados relacional; 4. Desenvolver um estudos em interfaces multimodais extensı́veis para permitir o entendimento dos objetos e eventos modelados e facilitar a configuração dinâmica dos modelos; 5. Incorporar a configuração dinâmica ao modelo Mogno; 6. Avaliar o método proposto do ponto de vista do usuário, processo e tecnologia paralelamente com verificações e validações por meio de métodos formais. 1.4 Metodologia Para atingir os objetivos especificados, foram adotados vários métodos, procedimentos e a integração dos mesmos constitui a metodologia deste trabalho. Primeiramente, para análise do domı́nio foram feitas pesquisas bibliográficas por meio de um 3 De acordo com a área de compiladores e linguagens, benchmark é um conjunto de parâmetros definidos com o intuito de avaliar performance e qualidade. Funciona como um referencial do que é considerado satisfatório dentro de um escopo estabelecido e reconhecido pela comunidade cientı́fica. Um exemplo prático é o benchmark de compiladores livres (GCC, LLVM, PCC e Open64). 1.5 Organização da Proposta de Tese 9 método chamado mapeamento sistemático, entrevistas com especialistas do domı́nio e estudos in loco em reservas florestais para compreender a análise da dinâmica florestal e questões relacionadas. De posse dessas informações, deu-se inı́cio ao processo de desenvolvimento de um projeto piloto cujo objetivo era validar a ideia. Neste projeto piloto um modelo abstrato foi concebido para uma DSL chamada FML (Forest Management Language) desenvolvida ainda em uma fase exploratória para avaliação de técnicas de compiladores, desenvolvimento de DSLs e a integração por meio de MDE. Todos os artefatos de pesquisa até esta fase do projeto foram agrupados e documentados na primeira qualificação de doutorado. Após esta fase do projeto piloto, os objetivos e questões de pesquisa foram refinados e iniciou-se uma nova etapa mais madura e fundamentada na análise do estado da arte. Métodos como formalização ontológica da terminologia do domı́nio, SCRUM para desenvolvimento ágil, revisão sistemática, controle de versão via SVN, e arquitetura MVC foram incorporados a metodologia deste trabalho. Verificadores formais de modelo, como model checking, são métodos previstos que devem ser incorporados na metodologia deste trabalho na fase de verificação e validação que estão relacionadas com a avaliação do modelo Mogno. Esta seção apresenta uma visão geral da metodologia adotada, porém todas as fases estão minuciosamente detalhadas no Capı́tulo 4. 1.5 Organização da Proposta de Tese Esta proposta está dividida em três partes. A Parte I, “Fundamentação Teórica”, corresponde ao estudo realizado e concentra as referências mais relevantes para este trabalho. O Capı́tulo 2 aborda conceitos relacionados a modelos e modelagem computacional bem como a importância de MDE como uma interface multimodal ex- 1.5 Organização da Proposta de Tese 10 tensı́vel capaz de facilitar a configuração dinâmica dos modelos. Este tópico é particularmente relevante para o contexto deste trabalho pois está relacionado com uma das questões de pesquisa. O Capı́tulo 3 contextualiza as DSLs dentro do contexto das linguagens formais e fornece os indı́cios que devem ser analisados para justificar porque, quando e como desenvolver uma DSL. Outro ponto relevante para este trabalho é a análise da possibilidade de combinar multiplas linguagens e como este processo ocorre. A Parte II, trata da orientação metodológica utilizada para a condução deste trabalho. O Capı́tulo 4, destaca o escopo do projeto, os métodos, técnicas utilizadas bem como plano de desenvolvimento da pesquisa e cronograma de forma que o estudo possa ser repetido por outros pesquisadores. A Parte III apresenta os resultados parciais obtidos pelo trabalho. O Capı́tulo 5 apresenta o modelo Mogno bem como os principais artefatos produzidos por esta pesquisa que são respectivamente a DSL CarbonQL e a ontologia Carbontology. O Capı́tulo 6 apresenta uma análise da aplicação prática do modelo Mogno. Para tal, um estudo de caso foi elaborado com o intuito de ilustrar a análise do sequestro e emissão de carbono em uma área experimental da floresta amazônica usada por pesquisadores da engenharia florestal. O Capı́tulo 7 apresenta os próximos passos que serão adotados no decorrer da pesquisa. Para finalizar, a conclusão do trabalho é apresentada no Capı́tulo 8 seguida pelas referências utilizadas no desenvolvimento deste. Parte I Fundamentação Teórica 11 Capı́tulo 2 Modelos computacionais Este capı́tulo procura responder as seguintes questões: Quais são os fatores que influenciam na qualidade de um modelo computacional? Que técnicas são usadas para a qualidade estão sendo utilizadas pelos desenvolvedores no processo de desenvolvimento de software livre? Qual a percepção dos desenvolvedores e da comunidade de software livre acerca da qualidade? Que tipo de contribuição as comunidades aguardam? Como os projetos de Software Livre são testados? Como o conhecimento de teste é compartilhado entre os colaboradores do projeto? Qual o nı́vel de formalismo usado para este conhecimento? Tais respostas são fornecidas com base na análise e compilação da literatura atual sobre o assunto. 2.1 Modelagem e Modelos Computacionais: conceitos e motivações Modelagem é a atividade de construir modelos que expliquem as caracterı́sticas ou o comportamento Modelos computacionais não são apenas mecanismos de testes para teorias, mas sim uma forma de obter elicitação e predição que transcende os próprios modelos. 12 2.1 Modelagem e Modelos Computacionais: conceitos e motivações 13 Muitos pesquisadores utilizam modelos computacionais como uma ferramenta para descrição e implementação de teorias e consequentemete obter experimentos sobre tais teorias. Na indução é necessário procurar por um caminho ótimo ou aproximado, sempre em busca do melhor; já na dedução, devemos seguir um desafio. Geralmente a indução demanda mais tempo que a dedução e isso nos leva a crer que em certo sentido, a análise é mais difı́cil e/ou trabalhosa que a invenção. Assim, a motivação fundamental para a modelagem computacional é que ela oferece uma liberdade relativa sobre os mecanismos integrados do modelo (e do ambiente de experimentos), juntamente com a capacidade de observar as consequências (por vezes não óbvia) de tais escolhas. Isto permite-nos investigar o funcionamento dos mecanismos hipotéticos, trabalhando de dentro para fora, em vez de fora para dentro. A modelagem também oferece a vantagem de ser capaz de começar com um modelo relativamente simples que se torna progressivamente elaborado através de um processo iterativo de projeto, teste e refinamento. Existem muitas outras motivações para a modelagem como uma ferramenta para o desenvolvimento da investigação. Primeiro, pesquisadores que empenham forças de construção de modelos para definir explicitamente construções teóricas (e as relações causais entre eles, ou seja, mecanismos de desenvolvimento). Nem sempre sabemos as consequências de nossos compromissos teóricos, particularmente no contexto de múltiplos mecanismos de interação. Assim, muitas vezes, a única maneira de compreender as suas implicações é formalizá-los matematicamente. No entanto, os modelos e experimentos comportamentais são mutuamente informativo. Modelos implementam teorias, fornecer provas de suficiência, geram previsões, e responder a perguntas sobre teorias. Estudos comportamentais avaliam estas previsões e fornecer uma métrica para comparar modelos. Além disso, eles podem nos ajudar a compre- 2.1 Modelagem e Modelos Computacionais: conceitos e motivações 14 ender os processos, mesmo quando a teoria não é bem especificada o suficiente para construir um modelo. Para uma modelo ter sucesso ele deve oferecer uma explicação em linguagem cientifica, sem se prender a jargões de modelagem. Modelos podem construir nı́veis de análise. Em particular, o compromisso de um núcleo de desenvolvimento da teoria de sistemas é que as explicações de mudança no desenvolvimento muitas vezes abrangem nı́veis de análise - os genes-a-neurônios, os neurônios-a-cérebro, cérebroa-comportamento e de volta novamente. Os modelos computacionais podem desempenhar um papel crı́tico no desenvolvimento de explicações coerentes que abrangem esses nı́veis. Finalmente, os modelos não tem de capturar a vida como ela é. Ao contrário de suas contrapartes humanas, modelos computacionais estão abertos a uma gama muito maior de experiências. Eles podem também ser expostos a entradas não naturais, ou ”quebrada”ou manipulada de uma maneira que não pode ser feito com seres humanos. Isso os torna uma ferramenta ideal para investigar fenômenos como perı́odos crı́ticos, privação sensorial, desenvolvimento atı́pico, e assim por diante variação que nem sempre podem ser estudadas empiricamente. Tudo isso não quer dizer que a modelagem é isenta de riscos. Além das habilidades técnicas, a modelagem é uma habilidade complexa teórica. Concepção de um modelo útil requer restringir o desenvolvimento de modelos com compromissos mais abstratos (por exemplo, o processamento paralelo, a aprendizagem incremental) e, simultaneamente, usando o modelo para responder a questões teóricas. É tentador ”equipar”o modelo, como modeladores podem, as vezes explicitamente selecionar os parâmetros de um modelo para combinar a um comportamento alvo e falha para explorar plenamente o espaço do parâmetro. Modelos pode também ser refinados quando o modelo e os fenômenos do mundo real são tratados como isomorficos. E isso pode ser um fator motivante para construir 2.1 Modelagem e Modelos Computacionais: conceitos e motivações 15 mais e mais modelos sofisticados que podem fazer mais e mais coisas, sem realmente responder nenhuma nova questão. Em última análise, no entanto, isso é o que nós fazemos com um modelo que é muito crucial para o avanço da ciência. Uma abordagem particularmente interessante é comparar modelos alterativos. Por exemplo, xxx descreve uma série de passos (e.g., escala de balanço, número de conservação) e apresenta uma comparação sistemática entre abordagem de modelagens alternativas em cada um desses passos. A maioria dos modelos computacionais começar a partir de um conjunto de compromissos teóricos básicos, coisas como processamento paralelo, e assim por diante, e usa esses princı́pios para restringir a construção do modelo. Desta forma, uma das perguntas mais comuns feitas por um modelo é se alguns fenômenos podem emergir, ou ser explicado, por tais princı́pios. Assim, compreender um modelo especı́fico é frequentemente muito mais uma questão de compreender o paradigma, uma vez que é o modelo. Aqui destacamos quatro dimensões que descrevem paradigmas de modelagem: o tipo de representação, o modo como mudanças são descritas, o mecanismo de aprendizagem, e a escala de tempo em que a mudança ocorre. Enquanto as duas primeiras dimensões distinguem a maioria dos paradigmas de modelagem em uso (ver fig. 2), as duas últimas são cruciais para a compreensão de modelos especı́ficos. Modelos podem ter um papel crucial como parte do processo cientı́fico-dedutivo. Em particular, vários temas recorrentes podem ser visto através dos exemplos aqui. Primeiro, cada modelo é uma implementação de uma teoria especı́fica e, quando bem sucedido, fornecem uma prova de demonstração de que a teoria é plausı́vel ou possı́vel. Isso por si só é importante. Segundo, tiveram ocasiões onde os modelos falharam ou foram menos capazes de captar um fenômeno particular do desenvolvimento de um modelo alternativo (por exemplo, os modelos do passado-tenso, gramática categorização, fonema ea tarefa equilı́brio escala). Assim, os dados de simulação forneceram uma métrica fundamental para a comparação de modelos, e 2.1 Modelagem e Modelos Computacionais: conceitos e motivações 16 de fato, os construtores de modelos utilizaram esses dados para refinar e melhorar seus modelos. Terceiro, vários modelos têm fornecido uma nova perspectiva sobre o fenômeno do desenvolvimento em estudo, por vezes, o que sugere uma manipulação metodológica nova ou uma hipótese counterintuitive depois confirmada experimentalmente. Talvez o mais importante, estes modelos têm nos permitido responder a perguntas sobre teoria do desenvolvimento próprio e, ocasionalmente, revelados conseqüências inesperadas de nossos pressupostos teóricos. Modelos não só validam as teorias, mas também fornecem feedback que ajudar a rever teorias. Ao mesmo tempo, modelos não apenas reproduzem descobertas centrais de experimentos crı́ticos, mas também geram novas previsões e sugerem novos testes. Nós notamos mais uma vez que modelagem computacional não pode substituir a teoria. Na verdade, a contribuição mais importante dos modelos é empurrar a teoria em uma nova direção e ajudar na análise de consequencias não óbvias de nossas teorias. Assim como nossos modelos se tornam incrivelmente poderosos e complexos, é igualmente importante que eles se tornem acessı́veis e compreensı́veis, para que possam efetivamente contribuir com a interconexão entre modelos e teoria. A modelagem está no seu melhor quando ela nos permite entender a gama de possı́veis mecanismos que podem dar origem a um comportamento e por que. Sendo assim, a modelagem nos permite fazer perguntas sobre nossas próprias teorias e descobrir novas consequências por vezes muito relacionadas a velhas visões teóricas. só examinando e comparando vários tipos de modelos que vamos aprender o que é irrelevante e o que é relevante para a compreensão do desenvolvimento. 2.2 Contribuição dos Modelos 2.2 Contribuição dos Modelos 2.3 Engenharia Guiada por Modelos 2.4 Considerações Finais 17 Capı́tulo 3 Linguagens de Domı́nio Especı́fico Este Capı́tulo procura responder as seguintes questões: 3.1 Teoria das Linguagens Formais e as DSLs 3.2 Porque, quando e como desenvolver uma DSL 3.3 Técnicas de Implementação 3.4 Combinando multiplas linguagens 3.5 Considerações Finais 18 Parte II Descrição Metodológica 19 Capı́tulo 4 Instrumental de Pesquisa O objetivo deste capı́tulo é apresentar o instrumental de pesquisa adotado para o desenvolvimento .... 4.1 Escopo do Projeto 4.2 Métodos, Técnicas e Ferramentas Utilizados 4.3 Plano de Desenvolvimento da Pesquisa 4.4 Cronograma 4.5 Considerações Finais 20 Parte III Apresentação, Análise e Interpretação dos Resultados Parciais 21 Capı́tulo 5 Mogno: um modelo computacional para análise da dinâmica florestal O objetivo deste Capı́tulo é apresentar a CarbonQL 5.1 Introdução 5.2 A linguagem CarbonQL 5.3 A ontologia Carbontology 5.4 Considerações Finais Este Capı́tulo apresentou a 22 Capı́tulo 6 Aplicação do Modelo Mogno 6.1 Introdução 6.2 Estudo de caso: uma análise do sequestro e emissão de carbono em uma área da floresta amazônica 6.3 Considerações Finais 23 Capı́tulo 7 Próximos Passos O objetivo deste Capı́tulo é 7.1 Revisão Sistemática 7.2 Aprimoramento do Modelo Mogno 7.3 Avaliação do Modelo Mogno 7.4 Metas de Publicações 24 Capı́tulo 8 Discussão e Contribuições Esperadas 8.1 Limitações 25 Referências Bibliográficas [1] Lesia Bilitchenko, Adam Liu, Sherine Cheung, Emma Weeding, Bing Xia, Mariana Leguia, J. Christopher Anderson, and Douglas Densmore. Eugene - a domain specific language for specifying and constraining synthetic biological parts, devices, and systems. PLoS ONE, 6:e18882, 04 2011. [2] André Carvalho, Angelo Brayner, Antonio Loureiro, and et al. Furtado, Antonio L. Grandes desafios da pesquisa em computação no brasil (2006-2016). Technical report, Sociedade Brasileira da Computação, 2006. [3] Robert France and Bernhard Rumpe. Model-driven development of complex software: A research roadmap. In 2007 Future of Software Engineering, FOSE ’07, pages 37–54, Washington, DC, USA, 2007. IEEE Computer Society. [4] J.L. Gersting. Fundamentos Matemáticos para a Ciência da Computação. LTC Editora, Rio de Janeiro - RJ, 1995. [5] B. Henderson-Sellers. Bridging metamodels and ontologies in software engineering. J. Syst. Softw., 84(2):301–313, February 2011. [6] T.L. Juvenal and R.L.G. Mattos. O setor florestal no brasil e a importância do reflorestamento. Technical report, BNDS Setorial, 2002. 26