Please use this identifier to cite or link to this item: https://repositorio.ufba.br/handle/ri/32467
metadata.dc.type: Tese
Title: An approach for recovering architectural variability from source code
Authors: Lima Neto, Crescencio Rodrigues
Abstract: 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.
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.
Keywords: 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
metadata.dc.subject.cnpq: Ciência da Computação
Engenharia de Software
metadata.dc.publisher.country: Brasil
metadata.dc.publisher.initials: UFBA
metadata.dc.publisher.program: Ciência da Computação
metadata.dc.rights: Acesso Aberto
URI: http://repositorio.ufba.br/ri/handle/ri/32467
Issue Date: 4-Dec-2020
Appears in Collections:Teses (PGCOMP)

Files in This Item:
File Description SizeFormat 
main_final.pdf9,5 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.