An approach for recovering architectural variability from source code
Ano de defesa: | 2019 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | , , , |
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 |