Skip navigation
Universidade Federal da Bahia |
Repositório Institucional da UFBA
Use este identificador para citar ou linkar para este item: https://repositorio.ufba.br/handle/ri/33640
Tipo: Tese
Título: Investigating feature-oriented software comprehension
Autor(es): Santos, Alcemir Rodrigues
Autor(es): Santos, Alcemir Rodrigues
Abstract: Atualmente, uma gama de técnicas e ferramentas para a implementação de variabilidade estão disponíveis e vem gradualmente sendo utilizadas para o desenvolvimento de sistemas de software grandes e complexos. Algumas delas alcançaram um alto nível de popularidade na indústria, como a compilação condicional, outras ainda residem o ambiente acadêmico, como Programação Orientada à Características (FOP). Pesquisadores têm investigado as limitações de cada uma delas em busca de facilitar a adoção e de seu uso. No entanto, ainda não existe apoio à implementação de variabilidade em alguns domínios –e.g., sistemas baseados em JavaScript– soma-se a isto a falta de evidências sobre o impacto das differenças e similaridades de tais técnicas na compreensão dos pro- gramas escritos e consequentemente no esforço que estas demandam dos desenvolvedores para a conclusão de suas tarefas de manutenção. Esta tese contribui em ambas direções. Primeiro, apresentamos uma estratégia para engenharia de linhas de produtos baseada em composição híbrida (RiPLE-HC). Híbrida pois mescla abordagens composicionais e anotativas para implementar variabilidade. Se- gundo, construímos um corpo de evidências sobre compreensão de programas com vari- abilidade, incluindo fatores que facilitam e dificultam a compreensão de sistemas equanto utilizando-se de técnicas representativas de ambos os grupos, o popular e o emergente. Na primeira direção, conduziu-se estudos preliminares da viabilidade e scalabilidade da abordagem RiPLE-HC, tanto no ambiente industrial quanto acadêmico. Na segunda direção, conduziu-se uma família de experimentos – chamada de Compreensão da Com- preensão da Implementação de Variabilidade (VICC). Considerou-se tanto estudos quan- titativos quanto qualitativos na família VICC, à saber três quasi-experimentos (VICC1- 3) e um grupo focal (VICC4). Os estudos VICC consideram duas linguages de progra- mação (Java e JavaScript) e uma representação de variabilidade representativa dentre as baseadas em anotação e composição para o desenvolvimento de software orientado à caracteristicas (FOSD). VICC1 utilizou-se de tarefas de localização de interesses, en- quanto VICC2 e VICC3 utilizaram-se de tarefas de correção de problemas, e VICC4 buscou identificar fatores de influência na comprehensão de programas. Embora os participantes do grupo focal tenham destacado os benefícios da FOP para manutenção, os quasi-experimentos não produziram evidencias estatísticas significativas destas vantagens para quaisquer das representações de variabilidade equanto os partici- pantes executavam tarefas de manutenção. Adicionalmente, encontrou-se que que engen- heiros de software podem perceber o efeito de parâmetros de confusão de forma diferente dependendo da representação de variabilidade utilizada.
A number of techniques and tools to handle variability are available and they have been increasingly applied in the development of large and complex software systems. Some of them have reached high levels of popularity in industry, such as conditional compilation, whereas some are mostly known in academia, such as Feature-Oriented Programming (FOP). Researchers have addressed the existing drawbacks of both in order to improve adoption and ease their use. However, there is still a lack of support to variability implementation in some domains – e.g., JavaScript -based systems – and also a lack of understanding of the impact of the different ways to implement variability on program comprehension and consequently on the effort they demand from developers, so they could successfully accomplish the assigned maintenance tasks. This thesis contributes in both facets. First, we present the RiSE Product Lines En- gineering approach based on Hybrid Composition (RiPLE-HC) to implement variability in JavaScript-based systems. By hybrid composition, we mean the blending of com- positional and annotative approaches to implement variability. Second, we built an evi- dence corpus on program comprehension in the presence of variability, including factors easing and hindering program comprehension in software systems using representative approaches from both groups of techniques, the popular and the emerging ones. In the first facet, we carried out a preliminary evaluation of the viability and scalabil- ity of the RiPLE-HC approach both, in industry and academic settings. In the second facet, we carried out a family of experiments – named Variability Implementation Com- prehension Comprehension (VICC). We considered quantitative and qualitative stud- ies in the VICC family, namely three quasi-experiments (VICC1-3) and a focus group (VICC4). VICC studies considered two programming languages (Java and JavaScript) and a representative variability representation representing either the annotative or the compositional approaches for Feature-Oriented Software Development (FOSD). VICC1 addressed the concept location tasks, while VICC2 and VICC3 addressed bug-fixing tasks, and VICC4 addressed the influence factors on program comprehension. Although the participants of the focus group highlighted the benefits of the FOP for maintenance, the quasi-experiments yielded no significant statistical difference regardless of the variability representation while addressing maintenance tasks. Additionally, we found that software engineers may perceive confounding parameters differently depending on the used variability representation
Palavras-chave: FOSD
Variability
Software Maintenance
Program Comprehension
Java (Computer program language)
FeatureHouse
JavaScript (Computer program language)
RiPLE-HC
Software Engineering
CNPq: Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
País: Brasil
Sigla da Instituição: UFBA
metadata.dc.publisher.program: em Ciência da Computação
Tipo de Acesso: Acesso Aberto
URI: http://repositorio.ufba.br/ri/handle/ri/33640
Data do documento: 28-Jun-2021
Aparece nas coleções:Tese (PGCOMP)

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
phd-thesis-alcemir-ready.pdf4,17 MBAdobe PDFVisualizar/Abrir
Mostrar registro completo do item Visualizar estatísticas


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