Use este identificador para citar ou linkar para este item: https://repositorio.ufba.br/handle/ri/39286
Tipo: Tese
Título: An automated software transplantation approach for reengineering of systems into product lines
Título(s) alternativo(s): Uma abordagem automatizada de transplante de software para reengenharia de sistemas em linhas de produtos
Autor(es): Souza, Leandro Oliveira de
Primeiro Orientador: Almeida, Eduardo Santana de
metadata.dc.contributor.advisor-co1: Barr, Earl Theodore
metadata.dc.contributor.advisor-co2: Petke, Justyna
metadata.dc.contributor.referee1: Almeida, Eduardo Santana de
metadata.dc.contributor.referee2: Sant'Anna, Claudio Nogueira
metadata.dc.contributor.referee3: Souza, Rodrigo Rocha Gomes e
metadata.dc.contributor.referee4: Pinto, Gustavo Henrique Lima
metadata.dc.contributor.referee5: Teixeira, Leopoldo Motta
Resumo: Embora as Linha de Produto de Software (LPS) ofereçam o potencial de melhorias de ordem de magnitude no desempenho da engenharia de software, custo inicial, nível de esforço, risco assumido e a latência necessários para fazer a transição para a LPS são barreiras proibitivas à adoção por muitas organizações que poderiam se beneficiar da reutilização de seus sistemas existentes. A adoção de uma estratégia extrativa a partir de um processo de reengenharia de sistemas existentes em um LPS é um tópico de pesquisa ativo com benefícios reais na prática. Ela permite que as empresas de desenvolvimento de software preservem seus investimentos e agreguem o conhecimento obtido durante o desenvolvimento de seu portfolio de sistemas desenvolvidos individualmente. Apesar desses benefícios, adotar uma abordagem extrativa de adoção de linha de produtos ainda requer um investimento inicial considerável e é mais complexo de evoluir do que sistemas únicos. Por causa dessas desvantagens, as empresas de software evitam ou atrasam a adoção de LPS, recorrendo a uma prática ad-hoc de clonagem de código. Para acelerar a conversão e a manutenção de SPL, apresentamos o FOUNDRY, uma abordagem de transplante de software (TS) que orienta o processo de transplante e mesclagem de recursos de diferentes sistemas em uma linha de produtos. É a primeira abordagem com suporte ferramental para LPS que automatiza todos os estágios da construção de uma linha de produtos utilizando a técnica de TS. Automatizamos Foundry no prodScalpel, uma ferramenta de TS para LPS que automatiza o processo de identificação, adaptação e transferência de recursos de sistemas existentes para uma base comum de produtos. Seu mecanismo de transferência de código entre distintos sistemas permite que a mesma seja utilizada não somente para a geração de linhas de produto, mas também como alternativa à técnica de clonagem de código para a especialização de sistemas. Comparamos nossa proposta com as soluções existentes a fim de demonstrarmos evidências de que o TS é uma alternativa com potencial de aplicação no campo de reengenharia de sistemas em LPS. Na busca por evidências mais concretas, avaliamos Foundry em dois estudos de caso em que dois produtos foram criados a partir do transplante de código de três sistemas do mundo real. Além disso, conduzimos um experimento comparando a migração automática de recursos utilizando Foundry com esforço manual realizado por especialistas em LPS. Mostramos que o Foundry migrou automaticamente recursos entre bases de código 4,8 vezes mais rápido, em média, do que o tempo médio que um grupo de participantes levou para realizar a tarefa. Embora preliminar, nossa avaliação fornece evidências para apoiar a afirmação de que TS para Engenharia de Linha de Produto de Software (ELPS) é uma direção de pesquisa nova, promissora e viável.
Abstract: Although Software Product Lines (SPL) offer the potential for order-of-magnitude improvements in software engineering performance, the up-front cost, level of effort, assumed risk, and latency required to make the transition to SPL are prohibitive adoption barriers for many organizations that could otherwise benefit from reusing of their existing systems. The SPL adoption from an extractive model based on a reengineering process of exist- ing systems into SPL is an active research topic with real benefits in practice. It allows software development companies to preserve their investment and aggregate knowledge obtained during the development of their portfolio of systems individually developed. Despite these benefits, adopting an extractive product line approach still requires a con- siderable upfront investment and is more complex to evolve than single systems. Because of these drawbacks, software companies refrain or delay the adoption of SPL, resorting to an ad-hoc practice of clone-and-own. To speed conversion to and maintenance of SPL, we present Foundry, a Software Transplantation (ST) approach that guides the process of transplanting and merging features in a product line from existing systems. It is the first approach for SPL that automates all stages of product line construction using the ST technique. We realized Foundry in prodscalpel, a software transplantation tool for SPL that automates the process of identifying, adapting and transferring features from existing systems to a common product base. Its code transfer mechanism between different systems allows it to be used not only for the generation of product lines but also as an alternative to the clone-and-own technique for system specialization. We compared our proposal with the existing reengineering solutions to demonstrate evidence that the ST is an alternative with potential for application in the field of reengineering of existing systems to SPL. In the search for more concrete evidence, we evaluated prodscalpel on two case studies where two products were generated by transplanting of features from three real-world systems. Moreover, we conducted an experiment comparing Foundry’s feature migration with manual effort. We show that Foundry automatically migrated features across codebases 4.8 times faster, on average, than the average time a group of SPL experts took to accomplish the task. Although preliminary, our evaluation provides evidence to support the claim that ST for Software Product Line Engineering (SPLE) is a feasible and, indeed, promising new research direction.
Palavras-chave: Transplante de software automatizado
Autotransplante
Engenharia de Software Baseada em Busca
Melhoria genética
Linhas de produtos de software
Reutilização de software
Reengenharia de sistemas em linhas de produtos de software
CNPq: CNPQ::CIENCIAS EXATAS E DA TERRA
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE
Idioma: eng
País: Brasil
Editora / Evento / Instituição: Universidade Federal da Bahia
Sigla da Instituição: UFBA
metadata.dc.publisher.department: Instituto de Computação - IC
metadata.dc.publisher.program: Programa de Pós-Graduação em Ciência da Computação (PGCOMP) 
Citação: SOUZA, Leandro Oliveira de. An automated software transplantation approach for reengineering of systems into producto lines. 2023. 168 f. Tese (Doutorado em Ciência da Computação) Instituto de Computação, Universidade Federal da Bahia, Salvador (Ba), 2023.
Tipo de Acesso: Acesso Aberto
URI: https://repositorio.ufba.br/handle/ri/39286
Data do documento: 30-Jun-2023
Aparece nas coleções:Tese (PGCOMP)

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
Leandro_Oliveira_de_souza-Doutorado-Tese.pdfTese de Doutorado de Leandro Oliveira de Souza6,94 MBAdobe PDFVisualizar/Abrir


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.