Characterizing safe and partially safe evolution scenarios in product lines: an empirical study

Detalhes bibliográficos
Autor(a) principal: GOMES, Karine Galdino Maia
Data de Publicação: 2019
Tipo de documento: Dissertação
Idioma: eng
Título da fonte: Repositório Institucional da UFPE
Texto Completo: https://repositorio.ufpe.br/handle/123456789/33696
Resumo: Software Product Line (SPL) is a family of software products that share common and distinct assets providing, through reuse, a systematic way to generate similar products. In SPL, each one of their characteristics is represented as feature, and the set of those features and its dependencies are expressed as Feature Model. Feature Model (FM) with both Configuration Knowledge (CK) and Asset Mapping (AM) spaces represent a SPL. Each one of those spaces play a key role to provide reuse in SPL. In the same way as regular software systems, product lines often need to evolve, such as adding new features, improving the quality of existing products, or even fixing bugs. Previous works have classified product line evolution scenarios into safe or partially safe, depending on the number of products that have their behavior preserved after evolution. Both notions rely on refinement theories that enable us to derive transformation templates that abstract common evolution scenarios. However, most of the works related to such templates are focused on either safe or partially safe templates. Therefore, in this work we aim to characterize product line evolution as a whole, measuring to what extent the evolution history in safe compared to partially safe, to better understand how product lines evolve from their conception. We measure how often these templates happen using 2,300 commits from the Soletta Project, an open-source framework for Internet of Things. Through our analysis, we observe that most of the commits were categorized as templates (78.3%). Further we make an evaluation for remaining one commits which were not categorized as templates (21.7%). Thus, we extract certain information for each evolution scenario, such as spaces affect, kind of modification (change/add/removed), amount of files and so on. In Soletta, we observe that several commits classified as templates are represented by change assei. Further, for the remaining commits, we observe that most of the commits modifies both CK and AM spaces. In other hand, fewest evolution scenarios modifies FM and AM spaces at the same time. Further, we distribute changes through the contribution time (timeline) from all 2,300 commits. Finally, after classify some commits manually and others automatically as safe and partially safe evolution, we obtain that in Soletta 91.8% of changes is categorized as partially safe, and the 8.2% remaining ones are safe evolution scenarios.
id UFPE_50d522b09482426e315b769d21501392
oai_identifier_str oai:repositorio.ufpe.br:123456789/33696
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str 2221
spelling GOMES, Karine Galdino Maiahttp://lattes.cnpq.br/9763898565668804http://lattes.cnpq.br/2117651910340729TEIXEIRA, Leopoldo Motta2019-09-26T17:50:41Z2019-09-26T17:50:41Z2019-02-28https://repositorio.ufpe.br/handle/123456789/33696Software Product Line (SPL) is a family of software products that share common and distinct assets providing, through reuse, a systematic way to generate similar products. In SPL, each one of their characteristics is represented as feature, and the set of those features and its dependencies are expressed as Feature Model. Feature Model (FM) with both Configuration Knowledge (CK) and Asset Mapping (AM) spaces represent a SPL. Each one of those spaces play a key role to provide reuse in SPL. In the same way as regular software systems, product lines often need to evolve, such as adding new features, improving the quality of existing products, or even fixing bugs. Previous works have classified product line evolution scenarios into safe or partially safe, depending on the number of products that have their behavior preserved after evolution. Both notions rely on refinement theories that enable us to derive transformation templates that abstract common evolution scenarios. However, most of the works related to such templates are focused on either safe or partially safe templates. Therefore, in this work we aim to characterize product line evolution as a whole, measuring to what extent the evolution history in safe compared to partially safe, to better understand how product lines evolve from their conception. We measure how often these templates happen using 2,300 commits from the Soletta Project, an open-source framework for Internet of Things. Through our analysis, we observe that most of the commits were categorized as templates (78.3%). Further we make an evaluation for remaining one commits which were not categorized as templates (21.7%). Thus, we extract certain information for each evolution scenario, such as spaces affect, kind of modification (change/add/removed), amount of files and so on. In Soletta, we observe that several commits classified as templates are represented by change assei. Further, for the remaining commits, we observe that most of the commits modifies both CK and AM spaces. In other hand, fewest evolution scenarios modifies FM and AM spaces at the same time. Further, we distribute changes through the contribution time (timeline) from all 2,300 commits. Finally, after classify some commits manually and others automatically as safe and partially safe evolution, we obtain that in Soletta 91.8% of changes is categorized as partially safe, and the 8.2% remaining ones are safe evolution scenarios.FACEPELinha de Produto de Software (LPS) é uma família de softwares relacionados que compartilham características em comuns, e outras distintas, visando gerar produtos semelhantes de forma automática através do reuso. Em LPS, cada característica é conceituada como feature, e o conjunto dessas features e suas dependências são expressas em um modelo, conhecido como Feature Model (FM). De maneira geral, FM associado com os espaços Configuration Knowledge (CK) e Asset Mapping (AM) representam uma LPS, e cada um desempenha um papel para geração de produtos através do reuso. Da mesma forma que sistemas tradicionais precisam de manutenção, correção de bugs, ou ate mesmo adição de novas funcionalidades, LPS também evolui. Contudo, evoluir LPS é um trabalho que exige cautela, pois ate mesmo pequenas mudanças podem impactar vários produtos. Diante disso, alguns trabalhos investigaram evolução de LPS, visando entender e dar suporte aos desenvolvedores durante as mudanças. Dentre os trabalhos anteriores, surgiu a teoria de evolução segura (com base na teoria do Refinamento), que afirma que determinadas mudanças preservam o comportamento da LPS anterior. Portanto, renomear um arquivo, ou adicionar novas funcionalidades opcionais são exemplos de cenários de evolução segura. Entretanto, nem todas as mudanças se encaixam nesse conceito, então, surgiu a teoria de evolução parcialmente segura, que afirma que existe um subconjunto dos produtos manterá seu comportamento preservado. Com base nas teorias de evolução segura e parcialmente segura, trabalhos anteriores derivaram templates que são modelos que abstraem cenários de evolução com o objetivo de dar suporte aos desenvolvedores. Na literatura, existem trabalhos que focam apenas em evolução segura ou parcialmente segura, mas não em ambos casos. Portanto, esse trabalho tem como objetivo caracterizar evolução de LPS de forma geral, classificando mudanças como seguras ou parcialmente seguras, visando entender o processo de evolução de uma LPS desde a sua concepção. Para isso, analisamos 2300 commits do projeto Soletta, um framework que facilita a criação de sistemas voltados para Internet das Coisas. Como resultado, observamos que a maioria dos commits foi classificado como template (78.3%). Para os commits restantes, fizemos uma categorização de acordo com o tipo de mudança e o espaços afetados (FM, CK ou AM). 24% dos commits restantes apresentam mudanças no CK e AM simultaneamente, e apenas 3% apresentam mudanças que só alteram o FM. Ao final, nossos resultados mostraram que cerca de 91% dos das evoluções são classificadas como parcialmente seguras, e o restante como cenários de evolução segura.engUniversidade Federal de PernambucoPrograma de Pos Graduacao em Ciencia da ComputacaoUFPEBrasilAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessEngenharia de softwareLinha de produto de softwareCharacterizing safe and partially safe evolution scenarios in product lines: an empirical studyinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesismestradoreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILDISSERTAÇÃO Karine Galdino Maia Gomes.pdf.jpgDISSERTAÇÃO Karine Galdino Maia Gomes.pdf.jpgGenerated Thumbnailimage/jpeg1263https://repositorio.ufpe.br/bitstream/123456789/33696/5/DISSERTA%c3%87%c3%83O%20Karine%20Galdino%20Maia%20Gomes.pdf.jpgec01daedecf0a8aacea8669bdf661182MD55ORIGINALDISSERTAÇÃO Karine Galdino Maia Gomes.pdfDISSERTAÇÃO Karine Galdino Maia Gomes.pdfapplication/pdf11844330https://repositorio.ufpe.br/bitstream/123456789/33696/1/DISSERTA%c3%87%c3%83O%20Karine%20Galdino%20Maia%20Gomes.pdf51f0265fc3b13ad36f02d65f1ffa897bMD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8811https://repositorio.ufpe.br/bitstream/123456789/33696/2/license_rdfe39d27027a6cc9cb039ad269a5db8e34MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82310https://repositorio.ufpe.br/bitstream/123456789/33696/3/license.txtbd573a5ca8288eb7272482765f819534MD53TEXTDISSERTAÇÃO Karine Galdino Maia Gomes.pdf.txtDISSERTAÇÃO Karine Galdino Maia Gomes.pdf.txtExtracted texttext/plain2366https://repositorio.ufpe.br/bitstream/123456789/33696/4/DISSERTA%c3%87%c3%83O%20Karine%20Galdino%20Maia%20Gomes.pdf.txt373e9e160f280ba1d01801e84bb1d287MD54123456789/336962019-10-26 02:55:11.109oai:repositorio.ufpe.br:123456789/33696TGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKClRvZG8gZGVwb3NpdGFudGUgZGUgbWF0ZXJpYWwgbm8gUmVwb3NpdMOzcmlvIEluc3RpdHVjaW9uYWwgKFJJKSBkZXZlIGNvbmNlZGVyLCDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBQZXJuYW1idWNvIChVRlBFKSwgdW1hIExpY2Vuw6dhIGRlIERpc3RyaWJ1acOnw6NvIE7Do28gRXhjbHVzaXZhIHBhcmEgbWFudGVyIGUgdG9ybmFyIGFjZXNzw612ZWlzIG9zIHNldXMgZG9jdW1lbnRvcywgZW0gZm9ybWF0byBkaWdpdGFsLCBuZXN0ZSByZXBvc2l0w7NyaW8uCgpDb20gYSBjb25jZXNzw6NvIGRlc3RhIGxpY2Vuw6dhIG7Do28gZXhjbHVzaXZhLCBvIGRlcG9zaXRhbnRlIG1hbnTDqW0gdG9kb3Mgb3MgZGlyZWl0b3MgZGUgYXV0b3IuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwoKTGljZW7Dp2EgZGUgRGlzdHJpYnVpw6fDo28gTsOjbyBFeGNsdXNpdmEKCkFvIGNvbmNvcmRhciBjb20gZXN0YSBsaWNlbsOnYSBlIGFjZWl0w6EtbGEsIHZvY8OqIChhdXRvciBvdSBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMpOgoKYSkgRGVjbGFyYSBxdWUgY29uaGVjZSBhIHBvbMOtdGljYSBkZSBjb3B5cmlnaHQgZGEgZWRpdG9yYSBkbyBzZXUgZG9jdW1lbnRvOwpiKSBEZWNsYXJhIHF1ZSBjb25oZWNlIGUgYWNlaXRhIGFzIERpcmV0cml6ZXMgcGFyYSBvIFJlcG9zaXTDs3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVGUEU7CmMpIENvbmNlZGUgw6AgVUZQRSBvIGRpcmVpdG8gbsOjbyBleGNsdXNpdm8gZGUgYXJxdWl2YXIsIHJlcHJvZHV6aXIsIGNvbnZlcnRlciAoY29tbyBkZWZpbmlkbyBhIHNlZ3VpciksIGNvbXVuaWNhciBlL291IGRpc3RyaWJ1aXIsIG5vIFJJLCBvIGRvY3VtZW50byBlbnRyZWd1ZSAoaW5jbHVpbmRvIG8gcmVzdW1vL2Fic3RyYWN0KSBlbSBmb3JtYXRvIGRpZ2l0YWwgb3UgcG9yIG91dHJvIG1laW87CmQpIERlY2xhcmEgcXVlIGF1dG9yaXphIGEgVUZQRSBhIGFycXVpdmFyIG1haXMgZGUgdW1hIGPDs3BpYSBkZXN0ZSBkb2N1bWVudG8gZSBjb252ZXJ0w6otbG8sIHNlbSBhbHRlcmFyIG8gc2V1IGNvbnRlw7pkbywgcGFyYSBxdWFscXVlciBmb3JtYXRvIGRlIGZpY2hlaXJvLCBtZWlvIG91IHN1cG9ydGUsIHBhcmEgZWZlaXRvcyBkZSBzZWd1cmFuw6dhLCBwcmVzZXJ2YcOnw6NvIChiYWNrdXApIGUgYWNlc3NvOwplKSBEZWNsYXJhIHF1ZSBvIGRvY3VtZW50byBzdWJtZXRpZG8gw6kgbyBzZXUgdHJhYmFsaG8gb3JpZ2luYWwgZSBxdWUgZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBhIHRlcmNlaXJvcyBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2Ugb3MgZGlyZWl0b3MgZGUgb3V0cmEgcGVzc29hIG91IGVudGlkYWRlOwpmKSBEZWNsYXJhIHF1ZSwgbm8gY2FzbyBkbyBkb2N1bWVudG8gc3VibWV0aWRvIGNvbnRlciBtYXRlcmlhbCBkbyBxdWFsIG7Do28gZGV0w6ltIG9zIGRpcmVpdG9zIGRlCmF1dG9yLCBvYnRldmUgYSBhdXRvcml6YcOnw6NvIGlycmVzdHJpdGEgZG8gcmVzcGVjdGl2byBkZXRlbnRvciBkZXNzZXMgZGlyZWl0b3MgcGFyYSBjZWRlciDDoApVRlBFIG9zIGRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgTGljZW7Dp2EgZSBhdXRvcml6YXIgYSB1bml2ZXJzaWRhZGUgYSB1dGlsaXrDoS1sb3MgbGVnYWxtZW50ZS4gRGVjbGFyYSB0YW1iw6ltIHF1ZSBlc3NlIG1hdGVyaWFsIGN1am9zIGRpcmVpdG9zIHPDo28gZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3UgY29udGXDumRvIGRvIGRvY3VtZW50byBlbnRyZWd1ZTsKZykgU2UgbyBkb2N1bWVudG8gZW50cmVndWUgw6kgYmFzZWFkbyBlbSB0cmFiYWxobyBmaW5hbmNpYWRvIG91IGFwb2lhZG8gcG9yIG91dHJhIGluc3RpdHVpw6fDo28gcXVlIG7Do28gYSBVRlBFLCBkZWNsYXJhIHF1ZSBjdW1wcml1IHF1YWlzcXVlciBvYnJpZ2HDp8O1ZXMgZXhpZ2lkYXMgcGVsbyByZXNwZWN0aXZvIGNvbnRyYXRvIG91IGFjb3Jkby4KCkEgVUZQRSBpZGVudGlmaWNhcsOhIGNsYXJhbWVudGUgbyhzKSBub21lKHMpIGRvKHMpIGF1dG9yIChlcykgZG9zIGRpcmVpdG9zIGRvIGRvY3VtZW50byBlbnRyZWd1ZSBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIHBhcmEgYWzDqW0gZG8gcHJldmlzdG8gbmEgYWzDrW5lYSBjKS4KRepositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-26T05:55:11Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
title Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
spellingShingle Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
GOMES, Karine Galdino Maia
Engenharia de software
Linha de produto de software
title_short Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
title_full Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
title_fullStr Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
title_full_unstemmed Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
title_sort Characterizing safe and partially safe evolution scenarios in product lines: an empirical study
author GOMES, Karine Galdino Maia
author_facet GOMES, Karine Galdino Maia
author_role author
dc.contributor.authorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/9763898565668804
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/2117651910340729
dc.contributor.author.fl_str_mv GOMES, Karine Galdino Maia
dc.contributor.advisor1.fl_str_mv TEIXEIRA, Leopoldo Motta
contributor_str_mv TEIXEIRA, Leopoldo Motta
dc.subject.por.fl_str_mv Engenharia de software
Linha de produto de software
topic Engenharia de software
Linha de produto de software
description Software Product Line (SPL) is a family of software products that share common and distinct assets providing, through reuse, a systematic way to generate similar products. In SPL, each one of their characteristics is represented as feature, and the set of those features and its dependencies are expressed as Feature Model. Feature Model (FM) with both Configuration Knowledge (CK) and Asset Mapping (AM) spaces represent a SPL. Each one of those spaces play a key role to provide reuse in SPL. In the same way as regular software systems, product lines often need to evolve, such as adding new features, improving the quality of existing products, or even fixing bugs. Previous works have classified product line evolution scenarios into safe or partially safe, depending on the number of products that have their behavior preserved after evolution. Both notions rely on refinement theories that enable us to derive transformation templates that abstract common evolution scenarios. However, most of the works related to such templates are focused on either safe or partially safe templates. Therefore, in this work we aim to characterize product line evolution as a whole, measuring to what extent the evolution history in safe compared to partially safe, to better understand how product lines evolve from their conception. We measure how often these templates happen using 2,300 commits from the Soletta Project, an open-source framework for Internet of Things. Through our analysis, we observe that most of the commits were categorized as templates (78.3%). Further we make an evaluation for remaining one commits which were not categorized as templates (21.7%). Thus, we extract certain information for each evolution scenario, such as spaces affect, kind of modification (change/add/removed), amount of files and so on. In Soletta, we observe that several commits classified as templates are represented by change assei. Further, for the remaining commits, we observe that most of the commits modifies both CK and AM spaces. In other hand, fewest evolution scenarios modifies FM and AM spaces at the same time. Further, we distribute changes through the contribution time (timeline) from all 2,300 commits. Finally, after classify some commits manually and others automatically as safe and partially safe evolution, we obtain that in Soletta 91.8% of changes is categorized as partially safe, and the 8.2% remaining ones are safe evolution scenarios.
publishDate 2019
dc.date.accessioned.fl_str_mv 2019-09-26T17:50:41Z
dc.date.available.fl_str_mv 2019-09-26T17:50:41Z
dc.date.issued.fl_str_mv 2019-02-28
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 https://repositorio.ufpe.br/handle/123456789/33696
url https://repositorio.ufpe.br/handle/123456789/33696
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.publisher.program.fl_str_mv Programa de Pos Graduacao em Ciencia da Computacao
dc.publisher.initials.fl_str_mv UFPE
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
bitstream.url.fl_str_mv https://repositorio.ufpe.br/bitstream/123456789/33696/5/DISSERTA%c3%87%c3%83O%20Karine%20Galdino%20Maia%20Gomes.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/33696/1/DISSERTA%c3%87%c3%83O%20Karine%20Galdino%20Maia%20Gomes.pdf
https://repositorio.ufpe.br/bitstream/123456789/33696/2/license_rdf
https://repositorio.ufpe.br/bitstream/123456789/33696/3/license.txt
https://repositorio.ufpe.br/bitstream/123456789/33696/4/DISSERTA%c3%87%c3%83O%20Karine%20Galdino%20Maia%20Gomes.pdf.txt
bitstream.checksum.fl_str_mv ec01daedecf0a8aacea8669bdf661182
51f0265fc3b13ad36f02d65f1ffa897b
e39d27027a6cc9cb039ad269a5db8e34
bd573a5ca8288eb7272482765f819534
373e9e160f280ba1d01801e84bb1d287
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1802310662914834432