dc.contributorTEIXEIRA, Leopoldo Motta
dc.contributorhttp://lattes.cnpq.br/9763898565668804
dc.contributorhttp://lattes.cnpq.br/2117651910340729
dc.creatorGOMES, Karine Galdino Maia
dc.date2019-09-26T17:50:41Z
dc.date2019-09-26T17:50:41Z
dc.date2019-02-28
dc.date.accessioned2022-10-06T16:02:59Z
dc.date.available2022-10-06T16:02:59Z
dc.identifierhttps://repositorio.ufpe.br/handle/123456789/33696
dc.identifier.urihttp://repositorioslatinoamericanos.uchile.cl/handle/2250/3981667
dc.descriptionSoftware 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.
dc.descriptionFACEPE
dc.descriptionLinha 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.
dc.formatapplication/pdf
dc.languageeng
dc.publisherUniversidade Federal de Pernambuco
dc.publisherUFPE
dc.publisherBrasil
dc.publisherPrograma de Pos Graduacao em Ciencia da Computacao
dc.rightsopenAccess
dc.rightsAttribution-NonCommercial-NoDerivs 3.0 Brazil
dc.rightshttp://creativecommons.org/licenses/by-nc-nd/3.0/br/
dc.subjectEngenharia de software
dc.subjectLinha de produto de software
dc.titleCharacterizing safe and partially safe evolution scenarios in product lines: an empirical study
dc.typemasterThesis


Este ítem pertenece a la siguiente institución