Empirical studies on fine-grained feature dependencies
| Ano de defesa: | 2015 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| Tipo de documento: | Dissertação |
| Tipo de acesso: | Acesso aberto |
| Idioma: | por |
| Instituição de defesa: |
Universidade Federal de Alagoas
Brasil Programa de Pós-Graduação em Informática UFAL |
| Programa de Pós-Graduação: |
Não Informado pela instituição
|
| Departamento: |
Não Informado pela instituição
|
| País: |
Não Informado pela instituição
|
| Palavras-chave em Português: | |
| Link de acesso: | http://www.repositorio.ufal.br/handle/riufal/1724 |
Resumo: | 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. |
| id |
UFAL_6bc6cd41e4dade90154d32c61cd581ae |
|---|---|
| oai_identifier_str |
oai:www.repositorio.ufal.br:riufal/1724 |
| network_acronym_str |
UFAL |
| network_name_str |
Repositório Institucional da Universidade Federal de Alagoas (UFAL) |
| repository_id_str |
|
| spelling |
Empirical studies on fine-grained feature dependenciesEstudos empíricos sobre dependência entre features de granularidade finaEngenharia de softwareComputadores e famíliaSoftware engineeringComputers and familyCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOMaintaining 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.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.Universidade Federal de AlagoasBrasilPrograma de Pós-Graduação em InformáticaUFALRibeiro, Márcio de Medeiroshttp://lattes.cnpq.br/9300936571715992Santos Neto, Baldoino Fonseca doshttp://lattes.cnpq.br/0306751604362704Brito, Patrick Henrique da Silvahttp://lattes.cnpq.br/4155051332618408Borba, Paulo Henrique Monteirohttp://lattes.cnpq.br/9395715443254344Gonzaga Júnior, Iran Rodrigues2017-06-14T18:50:53Z2017-05-302017-06-14T18:50:53Z2015-08-10info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfGONZAGA 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.http://www.repositorio.ufal.br/handle/riufal/1724porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da Universidade Federal de Alagoas (UFAL)instname:Universidade Federal de Alagoas (UFAL)instacron:UFAL2019-01-09T21:23:26Zoai:www.repositorio.ufal.br:riufal/1724Repositório InstitucionalPUBhttp://www.repositorio.ufal.br/oai/requestri@sibi.ufal.bropendoar:46482019-01-09T21:23:26Repositório Institucional da Universidade Federal de Alagoas (UFAL) - Universidade Federal de Alagoas (UFAL)false |
| dc.title.none.fl_str_mv |
Empirical studies on fine-grained feature dependencies Estudos empíricos sobre dependência entre features de granularidade fina |
| title |
Empirical studies on fine-grained feature dependencies |
| spellingShingle |
Empirical studies on fine-grained feature dependencies Gonzaga Júnior, Iran Rodrigues Engenharia de software Computadores e família Software engineering Computers and family CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
| title_short |
Empirical studies on fine-grained feature dependencies |
| title_full |
Empirical studies on fine-grained feature dependencies |
| title_fullStr |
Empirical studies on fine-grained feature dependencies |
| title_full_unstemmed |
Empirical studies on fine-grained feature dependencies |
| title_sort |
Empirical studies on fine-grained feature dependencies |
| author |
Gonzaga Júnior, Iran Rodrigues |
| author_facet |
Gonzaga Júnior, Iran Rodrigues |
| author_role |
author |
| dc.contributor.none.fl_str_mv |
Ribeiro, Márcio de Medeiros http://lattes.cnpq.br/9300936571715992 Santos Neto, Baldoino Fonseca dos http://lattes.cnpq.br/0306751604362704 Brito, Patrick Henrique da Silva http://lattes.cnpq.br/4155051332618408 Borba, Paulo Henrique Monteiro http://lattes.cnpq.br/9395715443254344 |
| dc.contributor.author.fl_str_mv |
Gonzaga Júnior, Iran Rodrigues |
| dc.subject.por.fl_str_mv |
Engenharia de software Computadores e família Software engineering Computers and family CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
| topic |
Engenharia de software Computadores e família Software engineering Computers and family CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
| description |
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. |
| publishDate |
2015 |
| dc.date.none.fl_str_mv |
2015-08-10 2017-06-14T18:50:53Z 2017-05-30 2017-06-14T18:50:53Z |
| dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
| dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
| format |
masterThesis |
| status_str |
publishedVersion |
| dc.identifier.uri.fl_str_mv |
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. http://www.repositorio.ufal.br/handle/riufal/1724 |
| identifier_str_mv |
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. |
| url |
http://www.repositorio.ufal.br/handle/riufal/1724 |
| dc.language.iso.fl_str_mv |
por |
| language |
por |
| dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Alagoas Brasil Programa de Pós-Graduação em Informática UFAL |
| publisher.none.fl_str_mv |
Universidade Federal de Alagoas Brasil Programa de Pós-Graduação em Informática UFAL |
| dc.source.none.fl_str_mv |
reponame:Repositório Institucional da Universidade Federal de Alagoas (UFAL) instname:Universidade Federal de Alagoas (UFAL) instacron:UFAL |
| instname_str |
Universidade Federal de Alagoas (UFAL) |
| instacron_str |
UFAL |
| institution |
UFAL |
| reponame_str |
Repositório Institucional da Universidade Federal de Alagoas (UFAL) |
| collection |
Repositório Institucional da Universidade Federal de Alagoas (UFAL) |
| repository.name.fl_str_mv |
Repositório Institucional da Universidade Federal de Alagoas (UFAL) - Universidade Federal de Alagoas (UFAL) |
| repository.mail.fl_str_mv |
ri@sibi.ufal.br |
| _version_ |
1817557433349832704 |