Investigating feature-oriented software comprehension
| Ano de defesa: | 2017 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | , , , |
| 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 |