An approach for recovering architectural variability from source code

Detalhes bibliográficos
Ano de defesa: 2019
Autor(a) principal: Lima Neto, Crescencio Rodrigues
Orientador(a): Chavez, Christina von Flach Garcia
Banca de defesa: Sant'Anna, Cláudio Nogueira, Mendonça Neto, Manoel Gomes de, Garcia, Alessandro Fabrício, Colanzi, Thelma Elita
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Instituto de Matemática e Estatística
Departamento de Ciência da Computação
Programa de Pós-Graduação: 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/32467
Resumo: Engenharia de Linha de Produto de Software (SPLE) tem sido amplamente adaptada para aplicação de reuso sistemático em famílias de sistemas. Devido ao alto investimento prévio necessário para adoção de SPLE, organizações geralmente começam com abordagens de reuso oportunistas (e.g., sistemas que são clonados e modificados). No entanto, problemas de manutenção aparecem ao gerenciar um grande número de sistemas semelhantes onde cada um implementa e evolui características particulares. Uma solução viável para resolver esse problema é migrar para Linhas de Produto de Software (SPLs) usando uma abordagem extrativa. Essa iniciativa, em suas fases iniciais, inclui a definição de uma Arquitetura de Linha de Produtos (PLA) para apoiar a derivação de produtos variantes e também permitir a customização de acordo com as necessidades dos clientes. Desta forma, o uso sistemático de técnicas de Recuperação de Arquitetura de Software (SAR) permitem a recuperação da PLA e mantêm a PLA alinhada com o desenvolvimento. Nosso objetivo é fornecer uma abordagem para recuperar PLAs e diretivas para apoiar a recuperação das PLAs. Nós reunimos conhecimento por meio de revisões da literatura e estudos exploratórios para caracterizar o estado-da-arte e identificar oportunidades de pesquisa em técnicas e ferramentas de SAR que apoiam a recuperação de variabilidade arquitetural a partir de informações provenientes do código fonte para uma família de produtos. O uso de técnicas e ferramentas de SAR para recuperar uma PLA que documenta informação sobre variabilidade no nível arquitetural pode atacar problemas relacionados com a adoção, design, e evolução de SPLs. Infelizmente, poucos estudos investigam a recuperação de PLA e também fornecem avaliação empírica. Um dos principais problemas da abordagem extrativa é a explosão da variabilidade na representação arquitetural. Nossa abordagem é baseada na identificação da variabilidade em nível arquitetural por meio da extração de informações do código fonte dos variantes. Para avaliar nossa abordagem, realizamos um conjunto de estudos empíricos. Os resultados forneceram evidencias de que nossa abordagem é capaz de recuperar PLAs, identificar a variabilitdade a nível arquitetural e filtrar variantes exclusivos através da eliminação de pacotes e classes específicas sem precisar remover os variantes completamente. Nós consideramos que a PLA recuperada pode ajudar especialistas do domínio na tomada de decisão para apoiar a adoção de SPLE.
id UFBA-2_80b023d5af9b0c850f340a0b34a6adc3
oai_identifier_str oai:repositorio.ufba.br:ri/32467
network_acronym_str UFBA-2
network_name_str Repositório Institucional da UFBA
repository_id_str
spelling Lima Neto, Crescencio RodriguesLima Neto, Crescencio RodriguesChavez, Christina von Flach GarciaMachado, Ivan do CarmoSant'Anna, Cláudio NogueiraMendonça Neto, Manoel Gomes deGarcia, Alessandro FabrícioColanzi, Thelma Elita2020-12-04T22:38:16Z2020-12-04T22:38:16Z2020-12-042019-02-19http://repositorio.ufba.br/ri/handle/ri/32467Engenharia de Linha de Produto de Software (SPLE) tem sido amplamente adaptada para aplicação de reuso sistemático em famílias de sistemas. Devido ao alto investimento prévio necessário para adoção de SPLE, organizações geralmente começam com abordagens de reuso oportunistas (e.g., sistemas que são clonados e modificados). No entanto, problemas de manutenção aparecem ao gerenciar um grande número de sistemas semelhantes onde cada um implementa e evolui características particulares. Uma solução viável para resolver esse problema é migrar para Linhas de Produto de Software (SPLs) usando uma abordagem extrativa. Essa iniciativa, em suas fases iniciais, inclui a definição de uma Arquitetura de Linha de Produtos (PLA) para apoiar a derivação de produtos variantes e também permitir a customização de acordo com as necessidades dos clientes. Desta forma, o uso sistemático de técnicas de Recuperação de Arquitetura de Software (SAR) permitem a recuperação da PLA e mantêm a PLA alinhada com o desenvolvimento. Nosso objetivo é fornecer uma abordagem para recuperar PLAs e diretivas para apoiar a recuperação das PLAs. Nós reunimos conhecimento por meio de revisões da literatura e estudos exploratórios para caracterizar o estado-da-arte e identificar oportunidades de pesquisa em técnicas e ferramentas de SAR que apoiam a recuperação de variabilidade arquitetural a partir de informações provenientes do código fonte para uma família de produtos. O uso de técnicas e ferramentas de SAR para recuperar uma PLA que documenta informação sobre variabilidade no nível arquitetural pode atacar problemas relacionados com a adoção, design, e evolução de SPLs. Infelizmente, poucos estudos investigam a recuperação de PLA e também fornecem avaliação empírica. Um dos principais problemas da abordagem extrativa é a explosão da variabilidade na representação arquitetural. Nossa abordagem é baseada na identificação da variabilidade em nível arquitetural por meio da extração de informações do código fonte dos variantes. Para avaliar nossa abordagem, realizamos um conjunto de estudos empíricos. Os resultados forneceram evidencias de que nossa abordagem é capaz de recuperar PLAs, identificar a variabilitdade a nível arquitetural e filtrar variantes exclusivos através da eliminação de pacotes e classes específicas sem precisar remover os variantes completamente. Nós consideramos que a PLA recuperada pode ajudar especialistas do domínio na tomada de decisão para apoiar a adoção de SPLE.Software Product Line Engineering (SPLE) has been widely adopted for applying systematic reuse in families of systems. Given the high upfront investment required for SPLE adoption, organizations commonly start with more opportunistic reuse approaches (e.g., a single system that they clone and modify). However, maintenance problems appear when managing a large number of similar systems where each of them implements and evolves particular characteristics. One viable solution to solve this issue is to migrate to SPLs using an extractive approach. This initiative, in its early phases, includes the definition of a Product Line Architecture (PLA) to support the derivation of product variants and also to allow customization according to customers’ needs. In this way, the systematic use of Software Architecture Recovery (SAR) techniques enables PLA recovery and keeps the PLA aligned with development. Our objective is to provide an approach to recover PLAs and guidelines to support the PLA recovery. We gathered knowledge by means of literature reviews and exploratory studies to characterize the state-of-the-art and identify research gaps on SAR techniques and tools that support the recovery of architectural variability information from source code for a family of products. The use of SAR techniques and tools to recover a PLA that documents variability information at the architecure level may address issues related to SPL adoption, design and evolution. Unfortunately, few studies investigate PLA recovery and also provide empirical evaluation. One of the main issues in the extractive approach is the explosion of the variability in the PLA representation. Our approach is based on identifying variability on architectural level by extracting information from variants’ source code. To evaluate our approach, we performed a set of empirical studies. The results provided evidence that our approach is able to recover PLAs, identify the variability at architectural level, and filter outliers variants, allowing the elimination of exclusive packages and classes without removing the whole variant. We consider that the recovered PLA can help domain experts to take informed decisions to support SPL adoption.Submitted by Marcos Samuel (msamjunior@gmail.com) on 2020-11-23T18:15:38Z No. of bitstreams: 1 main_final.pdf: 9727716 bytes, checksum: 505a8ffd07f9cfceeacafbb3323e22f3 (MD5)Approved for entry into archive by Solange Rocha (soluny@gmail.com) on 2020-12-04T22:38:16Z (GMT) No. of bitstreams: 1 main_final.pdf: 9727716 bytes, checksum: 505a8ffd07f9cfceeacafbb3323e22f3 (MD5)Made available in DSpace on 2020-12-04T22:38:16Z (GMT). No. of bitstreams: 1 main_final.pdf: 9727716 bytes, checksum: 505a8ffd07f9cfceeacafbb3323e22f3 (MD5)Fundação de Amparo à Pesquisa do Estado da Bahia (Fapesb)Ciência da ComputaçãoEngenharia de SoftwareLinha de Produto de SoftwareArquitetura de Linha de Produto de SoftwareRecuperação de Arquitetura de SoftwareEngenharia de SoftwareSoftware Product LinesProduct Line ArchitectureSoftware Architecture RecoveryAn approach for recovering architectural variability from source codeinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisInstituto de Matemática e EstatísticaDepartamento de Ciência da ComputaçãoCiência da ComputaçãoUFBABrasilinfo:eu-repo/semantics/openAccessengreponame:Repositório Institucional da UFBAinstname:Universidade Federal da Bahia (UFBA)instacron:UFBAORIGINALmain_final.pdfmain_final.pdfapplication/pdf9727716https://repositorio.ufba.br/bitstream/ri/32467/1/main_final.pdf505a8ffd07f9cfceeacafbb3323e22f3MD51LICENSElicense.txtlicense.txttext/plain1442https://repositorio.ufba.br/bitstream/ri/32467/2/license.txte3e6f4a9287585a60c07547815529482MD52TEXTmain_final.pdf.txtmain_final.pdf.txtExtracted texttext/plain332358https://repositorio.ufba.br/bitstream/ri/32467/3/main_final.pdf.txt52322dad9d9c2c213835cf399e55a6c0MD53ri/324672022-07-05 14:04:12.13oai:repositorio.ufba.br:ri/32467VGVybW8gZGUgTGljZW4/YSwgbj9vIGV4Y2x1c2l2bywgcGFyYSBvIGRlcD9zaXRvIG5vIFJlcG9zaXQ/cmlvIEluc3RpdHVjaW9uYWwgZGEgVUZCQS4KCiBQZWxvIHByb2Nlc3NvIGRlIHN1Ym1pc3M/Pz8/byBkZSBkb2N1bWVudG9zLCBvIGF1dG9yIG91IHNldSByZXByZXNlbnRhbnRlIGxlZ2FsLCBhbyBhY2VpdGFyIGVzc2UgdGVybW8gZGUgbGljZW4/Pz8/YSwgY29uY2VkZSBhbyBSZXBvc2l0Pz8/P3JpbyBJbnN0aXR1Y2lvbmFsIGRhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRhIEJhaGlhIG8gZGlyZWl0byBkZSBtYW50ZXIgdW1hIGM/Pz8/cGlhIGVtIHNldSByZXBvc2l0Pz8/P3JpbyBjb20gYSBmaW5hbGlkYWRlLCBwcmltZWlyYSwgZGUgcHJlc2VydmE/Pz8/Pz8/P28uIAoKRXNzZXMgdGVybW9zLCBuPz8/P28gZXhjbHVzaXZvcywgbWFudD8/Pz9tIG9zIGRpcmVpdG9zIGRlIGF1dG9yL2NvcHlyaWdodCwgbWFzIGVudGVuZGUgbyBkb2N1bWVudG8gY29tbyBwYXJ0ZSBkbyBhY2Vydm8gaW50ZWxlY3R1YWwgZGVzc2EgVW5pdmVyc2lkYWRlLgoKIFBhcmEgb3MgZG9jdW1lbnRvcyBwdWJsaWNhZG9zIGNvbSByZXBhc3NlIGRlIGRpcmVpdG9zIGRlIGRpc3RyaWJ1aT8/Pz8/Pz8/bywgZXNzZSB0ZXJtbyBkZSBsaWNlbj8/Pz9hIGVudGVuZGUgcXVlOgoKIE1hbnRlbmRvIG9zIGRpcmVpdG9zIGF1dG9yYWlzLCByZXBhc3NhZG9zIGEgdGVyY2Vpcm9zLCBlbSBjYXNvIGRlIHB1YmxpY2E/Pz8/Pz8/P2VzLCBvIHJlcG9zaXQ/Pz8/cmlvIHBvZGUgcmVzdHJpbmdpciBvIGFjZXNzbyBhbyB0ZXh0byBpbnRlZ3JhbCwgbWFzIGxpYmVyYSBhcyBpbmZvcm1hPz8/Pz8/Pz9lcyBzb2JyZSBvIGRvY3VtZW50byAoTWV0YWRhZG9zIGRlc2NyaXRpdm9zKS4KCiBEZXN0YSBmb3JtYSwgYXRlbmRlbmRvIGFvcyBhbnNlaW9zIGRlc3NhIHVuaXZlcnNpZGFkZSBlbSBtYW50ZXIgc3VhIHByb2R1Pz8/Pz8/Pz9vIGNpZW50Pz8/P2ZpY2EgY29tIGFzIHJlc3RyaT8/Pz8/Pz8/ZXMgaW1wb3N0YXMgcGVsb3MgZWRpdG9yZXMgZGUgcGVyaT8/Pz9kaWNvcy4KCiBQYXJhIGFzIHB1YmxpY2E/Pz8/Pz8/P2VzIHNlbSBpbmljaWF0aXZhcyBxdWUgc2VndWVtIGEgcG9sPz8/P3RpY2EgZGUgQWNlc3NvIEFiZXJ0bywgb3MgZGVwPz8/P3NpdG9zIGNvbXB1bHM/Pz8/cmlvcyBuZXNzZSByZXBvc2l0Pz8/P3JpbyBtYW50Pz8/P20gb3MgZGlyZWl0b3MgYXV0b3JhaXMsIG1hcyBtYW50Pz8/P20gYWNlc3NvIGlycmVzdHJpdG8gYW9zIG1ldGFkYWRvcyBlIHRleHRvIGNvbXBsZXRvLiBBc3NpbSwgYSBhY2VpdGE/Pz8/Pz8/P28gZGVzc2UgdGVybW8gbj8/Pz9vIG5lY2Vzc2l0YSBkZSBjb25zZW50aW1lbnRvIHBvciBwYXJ0ZSBkZSBhdXRvcmVzL2RldGVudG9yZXMgZG9zIGRpcmVpdG9zLCBwb3IgZXN0YXJlbSBlbSBpbmljaWF0aXZhcyBkZSBhY2Vzc28gYWJlcnRvLgo=Repositório InstitucionalPUBhttp://192.188.11.11:8080/oai/requestopendoar:19322022-07-05T17:04:12Repositório Institucional da UFBA - Universidade Federal da Bahia (UFBA)false
dc.title.pt_BR.fl_str_mv An approach for recovering architectural variability from source code
title An approach for recovering architectural variability from source code
spellingShingle An approach for recovering architectural variability from source code
Lima Neto, Crescencio Rodrigues
Ciência da Computação
Engenharia de Software
Linha de Produto de Software
Arquitetura de Linha de Produto de Software
Recuperação de Arquitetura de Software
Engenharia de Software
Software Product Lines
Product Line Architecture
Software Architecture Recovery
title_short An approach for recovering architectural variability from source code
title_full An approach for recovering architectural variability from source code
title_fullStr An approach for recovering architectural variability from source code
title_full_unstemmed An approach for recovering architectural variability from source code
title_sort An approach for recovering architectural variability from source code
author Lima Neto, Crescencio Rodrigues
author_facet Lima Neto, Crescencio Rodrigues
author_role author
dc.contributor.author.fl_str_mv Lima Neto, Crescencio Rodrigues
Lima Neto, Crescencio Rodrigues
dc.contributor.advisor1.fl_str_mv Chavez, Christina von Flach Garcia
dc.contributor.advisor-co1.fl_str_mv Machado, Ivan do Carmo
dc.contributor.referee1.fl_str_mv Sant'Anna, Cláudio Nogueira
Mendonça Neto, Manoel Gomes de
Garcia, Alessandro Fabrício
Colanzi, Thelma Elita
contributor_str_mv Chavez, Christina von Flach Garcia
Machado, Ivan do Carmo
Sant'Anna, Cláudio Nogueira
Mendonça Neto, Manoel Gomes de
Garcia, Alessandro Fabrício
Colanzi, Thelma Elita
dc.subject.cnpq.fl_str_mv Ciência da Computação
Engenharia de Software
topic Ciência da Computação
Engenharia de Software
Linha de Produto de Software
Arquitetura de Linha de Produto de Software
Recuperação de Arquitetura de Software
Engenharia de Software
Software Product Lines
Product Line Architecture
Software Architecture Recovery
dc.subject.por.fl_str_mv Linha de Produto de Software
Arquitetura de Linha de Produto de Software
Recuperação de Arquitetura de Software
Engenharia de Software
Software Product Lines
Product Line Architecture
Software Architecture Recovery
description Engenharia de Linha de Produto de Software (SPLE) tem sido amplamente adaptada para aplicação de reuso sistemático em famílias de sistemas. Devido ao alto investimento prévio necessário para adoção de SPLE, organizações geralmente começam com abordagens de reuso oportunistas (e.g., sistemas que são clonados e modificados). No entanto, problemas de manutenção aparecem ao gerenciar um grande número de sistemas semelhantes onde cada um implementa e evolui características particulares. Uma solução viável para resolver esse problema é migrar para Linhas de Produto de Software (SPLs) usando uma abordagem extrativa. Essa iniciativa, em suas fases iniciais, inclui a definição de uma Arquitetura de Linha de Produtos (PLA) para apoiar a derivação de produtos variantes e também permitir a customização de acordo com as necessidades dos clientes. Desta forma, o uso sistemático de técnicas de Recuperação de Arquitetura de Software (SAR) permitem a recuperação da PLA e mantêm a PLA alinhada com o desenvolvimento. Nosso objetivo é fornecer uma abordagem para recuperar PLAs e diretivas para apoiar a recuperação das PLAs. Nós reunimos conhecimento por meio de revisões da literatura e estudos exploratórios para caracterizar o estado-da-arte e identificar oportunidades de pesquisa em técnicas e ferramentas de SAR que apoiam a recuperação de variabilidade arquitetural a partir de informações provenientes do código fonte para uma família de produtos. O uso de técnicas e ferramentas de SAR para recuperar uma PLA que documenta informação sobre variabilidade no nível arquitetural pode atacar problemas relacionados com a adoção, design, e evolução de SPLs. Infelizmente, poucos estudos investigam a recuperação de PLA e também fornecem avaliação empírica. Um dos principais problemas da abordagem extrativa é a explosão da variabilidade na representação arquitetural. Nossa abordagem é baseada na identificação da variabilidade em nível arquitetural por meio da extração de informações do código fonte dos variantes. Para avaliar nossa abordagem, realizamos um conjunto de estudos empíricos. Os resultados forneceram evidencias de que nossa abordagem é capaz de recuperar PLAs, identificar a variabilitdade a nível arquitetural e filtrar variantes exclusivos através da eliminação de pacotes e classes específicas sem precisar remover os variantes completamente. Nós consideramos que a PLA recuperada pode ajudar especialistas do domínio na tomada de decisão para apoiar a adoção de SPLE.
publishDate 2019
dc.date.submitted.none.fl_str_mv 2019-02-19
dc.date.accessioned.fl_str_mv 2020-12-04T22:38:16Z
dc.date.available.fl_str_mv 2020-12-04T22:38:16Z
dc.date.issued.fl_str_mv 2020-12-04
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/32467
url http://repositorio.ufba.br/ri/handle/ri/32467
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 Instituto de Matemática e Estatística
Departamento de Ciência da Computação
dc.publisher.program.fl_str_mv Ciência da Computação
dc.publisher.initials.fl_str_mv UFBA
dc.publisher.country.fl_str_mv Brasil
publisher.none.fl_str_mv Instituto de Matemática e Estatística
Departamento de Ciência 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/32467/1/main_final.pdf
https://repositorio.ufba.br/bitstream/ri/32467/2/license.txt
https://repositorio.ufba.br/bitstream/ri/32467/3/main_final.pdf.txt
bitstream.checksum.fl_str_mv 505a8ffd07f9cfceeacafbb3323e22f3
e3e6f4a9287585a60c07547815529482
52322dad9d9c2c213835cf399e55a6c0
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
_version_ 1793970647219568640