Defesa de Dissertação de Mestrado N. 586 de Larissa Braz

postado em 4 de mai de 2016 10:16 por Coordenação da Pós-graduação em Computação da UFCG   [ 25 de mai de 2016 04:24 atualizado‎(s)‎ ]

Candidato(a): Larissa Braz

Título do Trabalho: Uma técnica para compilar sistemas configuráveis com #ifdefs baseada no impacto da mudança

Orientador(es): Rohit Gheyi

 

Data: 31/05/2016

Horário: 02:00:00

Local: Hattori

 

Resumo: Atualmente, muitos softwares são configuráveis, permitindo uma variabilidade de produtos similares. Em geral, eles possuem muitas configurações e compilá-los é muito custoso por em geral ter um possível espaço de configurações grande. Apesar de configurabilidade ser uma prática amplamente utilizada através de #ifdefs em C, a maioria das ferramentas como GCC não consideram todas as configurações juntas em suas análises. Algumas abordagens utilizam amostragem compilando apenas algumas configurações para reduzir os seus custos de análise. Enquanto que os analisadores cientes de variabilidade, como TypeChef e SuperC, podem identificar alguns erros, como os de tipos, considerando todas as configurações do sistema. Entretanto, em geral as abordagens anteriores não consideram todos os erros de compilação e podem ser custosas. Este trabalho propõe uma técnica para compilar sistemas configuráveis com #ifdefs baseada no impacto da mudança. A técnica analisa apenas as configurações que podem ter sido impactadas pelas transformações feitas no código. Uma ferramenta, chamada CHECKCONFIGMX, implementa a técnica para analisar as mudanças de código sobre os sistemas configuráveis em C com #ifdefs. Foi realizada uma avaliação em 1.777 pares dos seis arquivos com mais linhas de código do repositório Git do BusyBox e foram encontrados 248 erros de compilação em 99 arquivos. Compilando todas as configurações tem um esforço de mediana de 1.38x10^16 configurações por arquivo, enquanto CHECKCONFIGMX analisa o mesmo sistema configurável com uma mediana de 2.90 configurações impactadas por par. Além disso, um estudo foi realizado introduzindo mutações para avaliar a eficácia da CHECKCONFIGMX em encontrar erros de compilação. Foram aplicados 70 operadores de mutação de sete tipos diferentes nos seis arquivos do BusyBox. O CHECKCONFIGMX matou todos os mutantes. Compilando todas as configurações necessita analisar uma mediana de 8,388,608 configurações por arquivo. CHECKCONFIGMX analisa os mesmos arquivos com duas configurações impactadas por par.

 

Banca Examinadora:

(Membros Internos)

Márcio Ribeiro

(Membros Externos)

Leopoldo Motta Teixeira, UFPE

Comments