Use este identificador para citar ou linkar para este item: https://repositorio.ufba.br/handle/ri/32463
Tipo: Tese
Título: Feature interactions in highly configurable systems : a dynamic analysis approach with VarXplorer
Autor(es): Soares, Larissa Rocha
Autor(es): Soares, Larissa Rocha
Abstract: Sistemas altamente configuráveis (também conhecidos como linhas de produtos de software)fornecem oportunidades significativas de reuso, uma vez que eles adaptam variantes do sistema com base em um conjunto de features. Essas features podem interagir de maneiras indesejadas, o que pode resultar em falhas. Além disso, a maioria das interações não é facilmente detectável, já que especificações de interações entre features geralmente não são definidas, especificadas e documentadas em um projeto de software. O problema de interação entre features tem sido um assunto desafiador por anos. Apesar da existência de estudos que mapeiam essas interações, ainda não há muitos trabalhos sobre a compreensão de estratégias, atividades, artefatos e lacunas de pesquisa para interações em sistemas configuráveis. Desta forma, esta tese provê inicialmente um mapeamento sistemático de estudos por meio da análise de 40 trabalhos os quais foram classificados de acordo com os estágios do ciclo de vida de desenvolvimento e a solução de interação apresentada (detecção, resolução ou discussão de interações). Análises recentes têm focado na detecção de erros de interação de features a partir de especificações globais, ou seja, especificações que todas as configurações de um sistema configurável precisam cumprir. No entanto, especificações no nível de features são geralmente negligenciadas e raramente documentadas. Neste cenário, muitas abordagens não conseguem detectar todos os problemas de comportamento do sistema, especialmente erros não cobertos por especificações globais e erros que não resultam em uma falha ou outro comportamento facilmente observável. Em vez de partir de um conjunto de especificações como a maioria das abordagens, propomos inspecionar as interações de features à medida que são detectadas e classificálas gradativamente como benignas ou problemáticas. Nossa abordagem e ferramenta, VarXplorer, fornece um processo de inspeção que ajuda os desenvolvedores a distinguir as interações intencionais das interações que podem levar a bugs. Usamos a execução variacional para observar interações internas ao fluxo de controle e fluxo de dados de sistemas altamente configuráveis e propomos gráficos de interação de features como uma representação concisa de todas as interações entre pares de features. Por fim, realizamos dois estudos empíricos para avaliar como o processo de inspeção e os gráficos de interação de features podem ajudar os desenvolvedores a identificar interações suspeitas. O primeiro é um experimento controlado que investiga e compara a capacidade dos desenvolvedores ao identificar interações suspeitas com e sem o VarXplorer. O segundo foca no processo iterativo de execução de casos de teste e como ele proporciona uma análise de interações mais rápida e objetiva.
Highly configurable systems (as known as software product lines) provide significant reuse opportunities by tailoring system variants based on a set of features. Those features can interact in undesired ways which may result in faults. However, most interactions are not easily detectable as specifications of feature interactions are usually missing. The feature interaction problem has been a challenging subject for years. Despite the existence of studies to map out available evidence on feature interaction for single systems development, there is a lack of understanding on common strategies, activities, artifacts and research gaps for interactions in configurable systems. Thus, this thesis initially gathered systematic mapping study evidence by analyzing 40 feature interaction primary studies, which were classified according to development lifecycle stages and the feature interaction solution presented, either detection, resolution or general analysis. Recent analyses focused on detecting feature interaction bugs from global specifications, i.e., specifications that all configurations of a configurable system need to fulfill, such as requiring that each configuration does not crash. However, specifications at the feature level are usually missing and, then, many approaches may not detect all incorrect system behavior, specially bugs not covered by global specifications and bugs that do not result in a crash or other easily observable behavior. Instead of starting from a set of specifications like most approaches, we propose to inspect feature interactions as they are detected and incrementally classify them as benign or problematic. We aim to provide an inspection process that helps developers to distinguish intended interactions from interactions that may lead to bugs. We use variational execution to observe internal interactions on control and data flow of highly configurable systems. To help developers understand these interactions, we propose feature-interaction graphs as a concise representation of all pairwise interactions. We provide two analyses that provide additional details about interactions, namely suppress and require interactions. Our approach and tool, VarXplorer, provide an iterative analysis of feature interactions allowing developers to focus on suspicious cases. Finally, we perform two empirical studies to evaluate the inspection process and how feature interaction graphs can help users identify suspicious interactions. The first study is a controlled experiment to investigate and compare the ability of users when identifying suspicious interactions with and without VarXplorer, in a setting composed of different systems, performing different tasks. The second study focuses on the iterative process of test cases execution and how it can be used for a faster and more objective feature interaction analysis.
Palavras-chave: Interação entre features
Software configurável
Especificação de interações entre features
Execução ciente de variabilidade
Engenharia de software
Software - Desenvolvimento
Linha de produtos de software
Feature Interaction
Configurable Software
Feature Interaction Specification
Variability-Aware Execution
Software Engineering
Software Product Lines
CNPq: Ciências da Computação
Engenharia de Software
País: brasil
Sigla da Instituição: UFBA
metadata.dc.publisher.program: Ciência da Computação
Tipo de Acesso: Acesso Aberto
URI: http://repositorio.ufba.br/ri/handle/ri/32463
Data do documento: 4-Dez-2020
Aparece nas coleções:Tese (PGCOMP)

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Tese_Final.pdf8,25 MBAdobe PDFVisualizar/Abrir


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