Model driven agent based simulation development - Santos, Fernando dos (2019)
O paradigma de modelagem e simulação baseadas em agentes (do inglês, ABMS) tem sido usado para analisar, reproduzir e predizer fenômenos em diversas áreas, tais como tráfego e epidemiologia. A construção de simulações baseadas em agentes é uma tarefa desafiadora que frequentemente demanda conhecimento em ABMS e suas plataformas de simulação. Pesquisadores já destacaram a importância de ferramentas e blocos de construção que aumentem o nível de abstração e consequentemente reduzam o esforço de desenvolvimento de simulações baseadas em agentes. Desenvolvimento dirigido a modelos (do inglês, MDD) é uma abordagem para desenvolvimento de software em que artefatos de modelagem de alto nível conduzem a produção dos artefatos de mais baixo nível que demandam significativo esforço, como por exemplo a produção de código fonte. No desenvolvimento de software convencional, estudos mostram que o uso de MDD aumenta significativamente a produtividade. Entretanto, no paradigma ABMS, o uso de MDD tem sido explorado de forma limitada. Na maioria das propostas existentes, a modelagem e geração de código é limitada a alguns aspectos, logo, muito ainda precisa ser implementado pelos desenvolvedores. Além disto, há uma carência de estudos empíricos que demonstrem se tais propostas são de fato efetivas. Nesta tese exploramos MDD no contexto de ABMS Propomos MDD4ABMS, uma abordagem dirigida a modelos para desenvolvimento de simulações baseadas em agentes. MDD4ABMS é composto dos seguintes elementos, que são as principais constribuições desta tese: (i) um metamodelo para simulações baseadas em agentes, construído de forma bottom-up a fim de abstrair os aspectos recorrentemente usados em simulações e disponibilizá-los para uso em modelos; (ii) uma linguagem de modelagem, que oferece blocos de construção para instanciar modelos de simulações baseadas em agentes; e (iii) transformações modelo-para-código, que geram código fonte para NetLogo, uma plataforma de simulação largamente utilizada. Enquanto as abstrações providas pelo metamodelo permitem aos desenvolvedores focar em quais aspectos desejam considerar nas simulações em vez de como implementá-los e integrá-los (uma tarefa que pode introduzir inconsistências nas simulações), os blocos de construção providos pela linguagem promovem modelagem expressiva. Estudos empíricos mostraram que MDD4ABMS reduz o esforço de desenvolvimento em comparação ao NetLogo, e satisfaz aspectos qualitativos relacionados à experiência do usuário, tais como facilidade de compreensão e usabilidade. Tais resultados fornecem evidência dos benefícios que MDD4ABMS oferece para ABMS.