Instanciação de Frameworks Usando Cookbooks Construídos A Partir Análise Estática e Análise Dinâmica de Código-fonte

Local: 
Sala 1B132, Bloco 1B, Campus Santa Mônica - Horário: 14h
Banca examinadora: 
Prof. Dr. Marcelo de Almeida Maia (orientador) - FACOM/UFU
Prof. Dr. Rivalino Matias Júnior - FACOM/UFU
Prof. Dr. Eduardo Magno Lages Figueiredo – DCC/UFMG

Reuso de software é um dos principais objetivos em engenharia de software. Frameworks promovem a reutilização de blocos de construção, mas também o reuso da solução arquitetural para um determinado domínio de aplicação. No entanto, instanciação de frameworks exige um esforço de compreensão substancial, uma documentação de alta qualidade é essencial para minimizar esse esforço. No entanto, na maioria dos casos, a documentação adequada não existe ou não é atualizada. Nossa hipótese é que o próprio código fonte do framework e instâncias existentes podem servir como um guia para novas instanciações. O desafio é que os usuários ainda têm de ler grandes porções de código e localizar os interesses neste código, que muitas vezes se encontre entrelaçado e espalhado, o que dificulta o processo de compreensão. Assim, nosso objetivo é fornecer informações relevantes para a instanciação do framework obtidos a partir do código fonte utilizando análise estática e dinâmica do framework e de suas instanciações existentes. A documentação final é apresentado como um cookbook, onde as receitas são compostas de tarefas de programação e informações sobre os hotspots relacionadas com a instanciação de uma característica de interesse. Realizamos dois estudos preliminares, o primeiro para avaliar o recall da abordagem e o segundo para estudar a utilidade prática das informações apresentadas nas receitas para os desenvolvedores. Os resultados revelam que a nossa abordagem apresenta informações relevantes e com bom recall para as classes, interfaces e métodos utilizados para a instanciação do framework, capazes de direcionar os desenvolvedores nas atividades de instanciação de uma característica.