Please use this identifier to cite or link to this item: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/735
Title: Uma técnica para compilar sistemas configuráveis com #ifdefs baseada no impacto da mudança.
???metadata.dc.creator???: BRASILEIRO, Larissa Nadja Braz.
???metadata.dc.contributor.advisor1???: GHEYI, Rohit.
Keywords: Ciência da Computação;Sistemas Configuráveis;#ifdefs – Sistemas Configuráveis
Issue Date: 2016
Publisher: Universidade Federal de Campina Grande
Citation: BRASILEIRO, L. N. B. Uma técnica para compilar sistemas configuráveis com #ifdefs baseada no impacto da mudança. 2016. 89 f. Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2016. Disponível em: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/735
???metadata.dc.description.resumo???: Sistemas configuráveis tipicamente usam #ifdefs para denotar variabilidade. Gerar e compilar todas as configurações de um sistema pode consumir tempo. Uma alternativa consiste em usar analisadores sintáticos conscientes de variabilidade, como TypeChef. Porém, eles podem não escalar. Na prática, desenvolvedores podem utilizar estratégias de amostragem (sampling) para compilar apenas um subconjunto das configurações. Este trabalho propõe uma técnica para compilar sistemas configuráveis com #ifdefs baseada no impacto da mudança através da análise apenas das configurações impactadas por uma mudança de código. A técnica foi implementada em uma ferramenta chamada CHECKCONFIGMX, que reporta os novos erros de compilação introduzidos pela transformação. Um estudo empírico foi realizado para avaliar 3,913 transformações aplicadas aos 14 maiores arquivos dos sistemas configuráveis BusyBox, Apache HTTPD, e Expat. CHECKCONFIGMX encontrou 595 erros de compilação de 20 tipos introduzidos por 41 desenvolvedores em 214 commits (5.46% das transformações analisadas). No estudo realizado, a ferramenta reduziu ao menos 50% (uma média de 99%) o número de configurações compiladas em comparação à abordagem exaustiva, sem considerar feature models. CHECKCONFIGMX pode ajudar os desenvolvedores a reduzir o esforço de avaliar transformações de granularidade fina aplicadas a sistemas configuráveis com #ifdefs.
Abstract: Configurable systems typically use #ifdefs to denote variability. Generating and compiling all configurations may be time-consuming. An alternative consists of using variability aware parsers, such as TypeChef. However, they may not scale. In practice, developers can use sampling strategies to compile only a subset of the configurations. We propose a change-centric approach to compile configurable systems with #ifdefs by analyzing only configurations impacted by a code change. We implement it in a tool called CHECKCONFIGMX, which reports the new compilation errors introduced by the transformation. We perform an empirical study to evaluate 3,913 transformations applied to the 14 largest files of BusyBox, Apache HTTPD, and Expat configurable systems. CHECKCONFIGMX finds 595 compilation errors of 20 types introduced by 41 developers in 214 commits (5.46% of the analyzed transformations). In our study, it reduces at least 50% (an average of 99%) the number of compiled configurations by comparing with the exhaustive approach without considering a feature model. CHECKCONFIGMX may help developers to reduce compilation effort to evaluate fine-grained transformations applied to configurable systems with #ifdefs.
Keywords: Ciência da Computação
Sistemas Configuráveis
#ifdefs – Sistemas Configuráveis
???metadata.dc.subject.cnpq???: Ciências
Ciência da Computação
URI: http://dspace.sti.ufcg.edu.br:8080/jspui/handle/riufcg/735
Appears in Collections:Mestrado em Ciência da Computação.

Files in This Item:
File Description SizeFormat 
LARISSA NADJA BRAZ BRASILEIRO - DISSERTAÇÃO (PPGCC) 2016.pdfLarissa Nadja Braz Brasileiro - Dissertação PPGCC 20165.19 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.