00 CAMPUS ARISTÓTELES CALAZANS SIMÕES (CAMPUS A. C. SIMÕES) IC - INSTITUTO DE COMPUTAÇÃO Dissertações e Teses defendidas na UFAL - IC
Use este identificador para citar ou linkar para este item: http://www.repositorio.ufal.br/jspui/handle/riufal/1724
Tipo: Dissertação
Título: Empirical studies on fine-grained feature dependencies
Título(s) alternativo(s): Estudos empíricos sobre dependência entre features de granularidade fina
Autor(es): Gonzaga Júnior, Iran Rodrigues
Primeiro Orientador: Ribeiro, Márcio de Medeiros
metadata.dc.contributor.advisor-co1: Santos Neto, Baldoino Fonseca dos
metadata.dc.contributor.referee1: Brito, Patrick Henrique da Silva
metadata.dc.contributor.referee2: Borba, Paulo Henrique Monteiro
Resumo: Manter famílias de programas não é uma tarefa trivial. Desenvolvedores comumente introduzem erros quando não consideram dependências existentes entre features. Quando tais features compartilham elementos de programa, como variáveis e funções, utilizar estes elementos inadvertidamente pode resultar em erros de variabilidade. Neste contexto, trabalhos anteriores focaram apenas na ocorrência de dependências intraprocedurais, ou seja, quando features compartilham elementos de programa dentro de uma mesma função. Mas ao mesmo tempo, ainda não temos estudos investigando dependências que extrapolam os limites de uma função, já que esses casos também podem causar erros. De fato, neste trabalho nós trazemos evidências de que erros de variabilidade também podem ocorrer devido a dependências interprocedurais ou a variáveis globais. Para avaliar até que ponto esses diferentes tipos de dependências entre features existem na prática, nós realizamos um estudo empírico abrangendo 40 famílias de programas de diferentes domínios e tamanhos. Nossos resultados mostram que dependências intraprocedurais e interprocedurais são comuns na prática: 51; 44% 17; 77% das funções com diretivas de pré-processamento têm dependências intraprocedurais, enquanto 25; 98% 19; 99% de todas as funções possuem dependências interprocedurais. Após estudar a ocorrência de dependências entre features na prática, nós conduzimos outro estudo empírico, desta vez direcionado a encontrar erros de variabilidade relacionados a dependências entre features. Aqui nos concentramos em variáveis não declaradas, funções não declaradas, variáveis sem uso e funções sem uso. Este estudo utiliza 15 sistemas para responder a questões de pesquisa relacionadas a como os desenvolvedores introduzem esses erros e sua frequência. Nós detectamos e confirmamos a existência de 32 erros de variabilidade. O conjunto de erros que coletamos é uma fonte valiosa para fundamentar a pesquisa sobre esse tema e para auxiliar desenvolvedores de ferramentas, de forma que eles forneçam meios em suas ferramentas de evitar tais problemas.
Abstract: Maintaining program families is not a trivial task. Developers commonly introduce bugs when they do not consider existing dependencies among features. When such implementations share program elements, such as variables and functions, inadvertently using these elements may result in bugs. In this context, previous work focuses only on the occurrence of intraprocedural dependencies, that is, when features share program elements within a function. But at the same time, we still lack studies investigating dependencies that transcend the boundaries of a function, since these cases might cause bugs as well. Indeed, in this work we bring evidence that variability bugs can also occur due to interprocedural dependencies and global variables. To assess to what extent these different types of feature dependencies exist in practice, we perform an empirical study covering 40 program families of different domains and sizes. Our results show that the intraprocedural and interprocedural feature dependencies are common in practice: 51:44% 17:77% of functions with preprocessor directives have intraprocedural dependencies, while 25:98% 19:99% of all functions have interprocedural dependencies. After studying the feature dependencies occurrence in practice, we perform another empirical study now focusing on finding actual bugs related to feature dependencies. Here we focus on undeclared variables, undeclared functions, unused variables, and unused functions. This study uses 15 systems to answer research questions related to how developers introduce these bugs and their frequency. We detect and confirm 32 variability bugs. The corpus of bugs we gather is a valuable source to ground research on this topic and to help tool developers, so they can provide means in their tools to avoid these problems.
Palavras-chave: Engenharia de software
Computadores e família
Software engineering
Computers and family
CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Idioma: eng
País: Brasil
Editor: Universidade Federal de Alagoas
Sigla da Instituição: UFAL
metadata.dc.publisher.program: Programa de Pós-Graduação em Informática
Citação: GONZAGA JÚNIOR, Iran Rodrigues. Empirical studies on fine-grained feature dependencies. 2015. 59 f. Dissertação (Mestrado em Informática) – Instituto de Computação, Programa de Pós Graduação em Informática, Universidade Federal de Alagoas, Maceió, 2015.
Tipo de Acesso: Acesso Aberto
URI: http://www.repositorio.ufal.br/handle/riufal/1724
Data do documento: 10-ago-2015
Aparece nas coleções:Dissertações e Teses defendidas na UFAL - IC

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Empirical studies on fine-grained feature dependencies.pdf1.75 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.