Investigating feature-oriented software comprehension

Detalhes bibliográficos
Ano de defesa: 2017
Autor(a) principal: Santos, Alcemir Rodrigues
Orientador(a): Almeida, Eduardo Santana de
Banca de defesa: Sant'anna, Claudio Nogueira, Mendonça, Manoel Gomes de, Soares, Sérgio Castelo Branco, Gheyi, Rohit
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Federal da Bahia
Instituto de Matemática e Estatística
Departamento de Ciências da Computação
Programa de Pós-Graduação: em Ciência da Computação
Departamento: Não Informado pela instituição
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: http://repositorio.ufba.br/ri/handle/ri/33640
Resumo: 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.
id UFBA-2_de8a4a40ce975d642832e9d5eca1ed76
oai_identifier_str oai:repositorio.ufba.br:ri/33640
network_acronym_str UFBA-2
network_name_str Repositório Institucional da UFBA
repository_id_str
spelling Santos, Alcemir RodriguesSantos, Alcemir RodriguesAlmeida, Eduardo Santana deMachado, Ivan do CarmoSant'anna, Claudio NogueiraMendonça, Manoel Gomes deSoares, Sérgio Castelo BrancoGheyi, Rohit2021-06-28T21:05:30Z2021-06-28T21:05:30Z2021-06-282017-08-11http://repositorio.ufba.br/ri/handle/ri/33640Atualmente, 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 representationSubmitted by Alcemir Rodrigues Santos (alcemir.santos@gmail.com) on 2021-04-15T19:03:42Z No. of bitstreams: 1 phd-thesis-alcemir-ready.pdf: 4268995 bytes, checksum: 0604a90e48ab734c8fa328327f00a0e0 (MD5)Approved for entry into archive by Solange Rocha (soluny@gmail.com) on 2021-06-28T21:05:30Z (GMT) No. of bitstreams: 1 phd-thesis-alcemir-ready.pdf: 4268995 bytes, checksum: 0604a90e48ab734c8fa328327f00a0e0 (MD5)Made available in DSpace on 2021-06-28T21:05:30Z (GMT). No. of bitstreams: 1 phd-thesis-alcemir-ready.pdf: 4268995 bytes, checksum: 0604a90e48ab734c8fa328327f00a0e0 (MD5)Fundação de Amparo à Pesquisa da Bahia (Fapesb)Ciências Exatas e da TerraCiência da ComputaçãoMetodologia e Técnicas da ComputaçãoEngenharia de SoftwareFOSDVariabilitySoftware MaintenanceProgram ComprehensionJava (Computer program language)FeatureHouseJavaScript (Computer program language)RiPLE-HCSoftware EngineeringInvestigating feature-oriented software comprehensioninfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisUniversidade Federal da BahiaInstituto de Matemática e EstatísticaDepartamento de Ciências da Computaçãoem Ciência da ComputaçãoUFBABrasilinfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFBAinstname:Universidade Federal da Bahia (UFBA)instacron:UFBAORIGINALphd-thesis-alcemir-ready.pdfphd-thesis-alcemir-ready.pdfapplication/pdf4268995https://repositorio.ufba.br/bitstream/ri/33640/1/phd-thesis-alcemir-ready.pdf0604a90e48ab734c8fa328327f00a0e0MD51LICENSElicense.txtlicense.txttext/plain1442https://repositorio.ufba.br/bitstream/ri/33640/2/license.txt817035eff4c4c7dda1d546e170ee2a1aMD52TEXTphd-thesis-alcemir-ready.pdf.txtphd-thesis-alcemir-ready.pdf.txtExtracted texttext/plain388724https://repositorio.ufba.br/bitstream/ri/33640/3/phd-thesis-alcemir-ready.pdf.txtdc16360fb6f386a5537649eaad9e9b76MD53ri/336402022-07-05 14:04:13.842oai:repositorio.ufba.br:ri/33640VGVybW8gZGUgTGljZW7vv71hLCBu77+9byBleGNsdXNpdm8sIHBhcmEgbyBkZXDvv71zaXRvIG5vIFJlcG9zaXTvv71yaW8gSW5zdGl0dWNpb25hbCBkYSBVRkJBLgoKIFBlbG8gcHJvY2Vzc28gZGUgc3VibWlzc8ODwqNvIGRlIGRvY3VtZW50b3MsIG8gYXV0b3Igb3Ugc2V1IHJlcHJlc2VudGFudGUgbGVnYWwsIGFvIGFjZWl0YXIgZXNzZSB0ZXJtbyBkZSBsaWNlbsODwqdhLCBjb25jZWRlIGFvIFJlcG9zaXTDg8KzcmlvIEluc3RpdHVjaW9uYWwgZGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGEgQmFoaWEgbyBkaXJlaXRvIGRlIG1hbnRlciB1bWEgY8ODwrNwaWEgZW0gc2V1IHJlcG9zaXTDg8KzcmlvIGNvbSBhIGZpbmFsaWRhZGUsIHByaW1laXJhLCBkZSBwcmVzZXJ2YcODwqfDg8Kjby4gCgpFc3NlcyB0ZXJtb3MsIG7Dg8KjbyBleGNsdXNpdm9zLCBtYW50w4PCqW0gb3MgZGlyZWl0b3MgZGUgYXV0b3IvY29weXJpZ2h0LCBtYXMgZW50ZW5kZSBvIGRvY3VtZW50byBjb21vIHBhcnRlIGRvIGFjZXJ2byBpbnRlbGVjdHVhbCBkZXNzYSBVbml2ZXJzaWRhZGUuCgogUGFyYSBvcyBkb2N1bWVudG9zIHB1YmxpY2Fkb3MgY29tIHJlcGFzc2UgZGUgZGlyZWl0b3MgZGUgZGlzdHJpYnVpw4PCp8ODwqNvLCBlc3NlIHRlcm1vIGRlIGxpY2Vuw4PCp2EgZW50ZW5kZSBxdWU6CgogTWFudGVuZG8gb3MgZGlyZWl0b3MgYXV0b3JhaXMsIHJlcGFzc2Fkb3MgYSB0ZXJjZWlyb3MsIGVtIGNhc28gZGUgcHVibGljYcODwqfDg8K1ZXMsIG8gcmVwb3NpdMODwrNyaW8gcG9kZSByZXN0cmluZ2lyIG8gYWNlc3NvIGFvIHRleHRvIGludGVncmFsLCBtYXMgbGliZXJhIGFzIGluZm9ybWHDg8Knw4PCtWVzIHNvYnJlIG8gZG9jdW1lbnRvIChNZXRhZGFkb3MgZGVzY3JpdGl2b3MpLgoKIERlc3RhIGZvcm1hLCBhdGVuZGVuZG8gYW9zIGFuc2Vpb3MgZGVzc2EgdW5pdmVyc2lkYWRlIGVtIG1hbnRlciBzdWEgcHJvZHXDg8Knw4PCo28gY2llbnTDg8KtZmljYSBjb20gYXMgcmVzdHJpw4PCp8ODwrVlcyBpbXBvc3RhcyBwZWxvcyBlZGl0b3JlcyBkZSBwZXJpw4PCs2RpY29zLgoKIFBhcmEgYXMgcHVibGljYcODwqfDg8K1ZXMgc2VtIGluaWNpYXRpdmFzIHF1ZSBzZWd1ZW0gYSBwb2zDg8KtdGljYSBkZSBBY2Vzc28gQWJlcnRvLCBvcyBkZXDDg8Kzc2l0b3MgY29tcHVsc8ODwrNyaW9zIG5lc3NlIHJlcG9zaXTDg8KzcmlvIG1hbnTDg8KpbSBvcyBkaXJlaXRvcyBhdXRvcmFpcywgbWFzIG1hbnTDg8KpbSBhY2Vzc28gaXJyZXN0cml0byBhb3MgbWV0YWRhZG9zIGUgdGV4dG8gY29tcGxldG8uIEFzc2ltLCBhIGFjZWl0YcODwqfDg8KjbyBkZXNzZSB0ZXJtbyBuw4PCo28gbmVjZXNzaXRhIGRlIGNvbnNlbnRpbWVudG8gcG9yIHBhcnRlIGRlIGF1dG9yZXMvZGV0ZW50b3JlcyBkb3MgZGlyZWl0b3MsIHBvciBlc3RhcmVtIGVtIGluaWNpYXRpdmFzIGRlIGFjZXNzbyBhYmVydG8uCg==Repositório InstitucionalPUBhttps://repositorio.ufba.br/oai/requestrepositorio@ufba.bropendoar:19322022-07-05T17:04:13Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA)false
dc.title.pt_BR.fl_str_mv Investigating feature-oriented software comprehension
title Investigating feature-oriented software comprehension
spellingShingle Investigating feature-oriented software comprehension
Santos, Alcemir Rodrigues
Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
FOSD
Variability
Software Maintenance
Program Comprehension
Java (Computer program language)
FeatureHouse
JavaScript (Computer program language)
RiPLE-HC
Software Engineering
title_short Investigating feature-oriented software comprehension
title_full Investigating feature-oriented software comprehension
title_fullStr Investigating feature-oriented software comprehension
title_full_unstemmed Investigating feature-oriented software comprehension
title_sort Investigating feature-oriented software comprehension
author Santos, Alcemir Rodrigues
author_facet Santos, Alcemir Rodrigues
author_role author
dc.contributor.author.fl_str_mv Santos, Alcemir Rodrigues
Santos, Alcemir Rodrigues
dc.contributor.advisor1.fl_str_mv Almeida, Eduardo Santana de
dc.contributor.advisor-co1.fl_str_mv Machado, Ivan do Carmo
dc.contributor.referee1.fl_str_mv Sant'anna, Claudio Nogueira
Mendonça, Manoel Gomes de
Soares, Sérgio Castelo Branco
Gheyi, Rohit
contributor_str_mv Almeida, Eduardo Santana de
Machado, Ivan do Carmo
Sant'anna, Claudio Nogueira
Mendonça, Manoel Gomes de
Soares, Sérgio Castelo Branco
Gheyi, Rohit
dc.subject.cnpq.fl_str_mv Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
topic Ciências Exatas e da Terra
Ciência da Computação
Metodologia e Técnicas da Computação
Engenharia de Software
FOSD
Variability
Software Maintenance
Program Comprehension
Java (Computer program language)
FeatureHouse
JavaScript (Computer program language)
RiPLE-HC
Software Engineering
dc.subject.por.fl_str_mv FOSD
Variability
Software Maintenance
Program Comprehension
Java (Computer program language)
FeatureHouse
JavaScript (Computer program language)
RiPLE-HC
Software Engineering
description 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.
publishDate 2017
dc.date.submitted.none.fl_str_mv 2017-08-11
dc.date.accessioned.fl_str_mv 2021-06-28T21:05:30Z
dc.date.available.fl_str_mv 2021-06-28T21:05:30Z
dc.date.issued.fl_str_mv 2021-06-28
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv http://repositorio.ufba.br/ri/handle/ri/33640
url http://repositorio.ufba.br/ri/handle/ri/33640
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal da Bahia
Instituto de Matemática e Estatística
Departamento de Ciências da Computação
dc.publisher.program.fl_str_mv em Ciência da Computação
dc.publisher.initials.fl_str_mv UFBA
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal da Bahia
Instituto de Matemática e Estatística
Departamento de Ciências da Computação
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFBA
instname:Universidade Federal da Bahia (UFBA)
instacron:UFBA
instname_str Universidade Federal da Bahia (UFBA)
instacron_str UFBA
institution UFBA
reponame_str Repositório Institucional da UFBA
collection Repositório Institucional da UFBA
bitstream.url.fl_str_mv https://repositorio.ufba.br/bitstream/ri/33640/1/phd-thesis-alcemir-ready.pdf
https://repositorio.ufba.br/bitstream/ri/33640/2/license.txt
https://repositorio.ufba.br/bitstream/ri/33640/3/phd-thesis-alcemir-ready.pdf.txt
bitstream.checksum.fl_str_mv 0604a90e48ab734c8fa328327f00a0e0
817035eff4c4c7dda1d546e170ee2a1a
dc16360fb6f386a5537649eaad9e9b76
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA)
repository.mail.fl_str_mv repositorio@ufba.br
_version_ 1847342237991567360