Evolution-aware static analysis of software product lines

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: Worm, Bruno Matissek
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Não Informado pela instituição
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: http://repositorio.unb.br/handle/10482/51943
Resumo: A necessidade de lidar com a variabilidade durante a análise das Linhas de Produtos de Software (LPS) é intrínseca, pois o número de combinações de produtos válidos pode ser uma função exponencial em relação ao número de características. Além disso, à medida que uma LPS evolui, os resultados das análises anteriores poderiam ser usados para otimizar os cálculos. Entretanto, estas oportunidades de reúso são frequentemente descartadas pelas técnicas de análise de LPS presentes no atual estado da arte. Este trabalho propõe um método para embutir memoização em análises estáticas de ControlFlow Graph (CFG) implementadas em Haskell e reescritas para serem aplicadas em LPS. O método memoizado proposto foi usado para transformar seis análises estáticas de CFG levantadas para LPSs, e comparou-se o desempenho destas em relação às suas contrapartes sem memoização em um conjunto de dez versões da LPS BusyBox. Verificou-se que esta técnica de memoização foi eficiente em reusar os resultados das análises aplicadas em revisões anteriores, com reduções de tempo total computando análises de até duas ordens de magnitude em relação às análises sem memoização, tendo impacto limitado no uso de armazenamento dos resultados memoizados.
id UNB_a04a4fb225cdb9198a983960fadd94a5
oai_identifier_str oai:repositorio.unb.br:10482/51943
network_acronym_str UNB
network_name_str Repositório Institucional da UnB
repository_id_str
spelling Evolution-aware static analysis of software product linesSoftwareLinhas de produtosSoftware - evoluçãoProgramação funcionalMemorizaçãoA necessidade de lidar com a variabilidade durante a análise das Linhas de Produtos de Software (LPS) é intrínseca, pois o número de combinações de produtos válidos pode ser uma função exponencial em relação ao número de características. Além disso, à medida que uma LPS evolui, os resultados das análises anteriores poderiam ser usados para otimizar os cálculos. Entretanto, estas oportunidades de reúso são frequentemente descartadas pelas técnicas de análise de LPS presentes no atual estado da arte. Este trabalho propõe um método para embutir memoização em análises estáticas de ControlFlow Graph (CFG) implementadas em Haskell e reescritas para serem aplicadas em LPS. O método memoizado proposto foi usado para transformar seis análises estáticas de CFG levantadas para LPSs, e comparou-se o desempenho destas em relação às suas contrapartes sem memoização em um conjunto de dez versões da LPS BusyBox. Verificou-se que esta técnica de memoização foi eficiente em reusar os resultados das análises aplicadas em revisões anteriores, com reduções de tempo total computando análises de até duas ordens de magnitude em relação às análises sem memoização, tendo impacto limitado no uso de armazenamento dos resultados memoizados.Handling variability in Software Product Line (SPL) analyses is essential due to the vast number of possible valid product combinations, which can grow exponentially with the number of features. Furthermore, as a SPL evolves, results from previous analyses could be used to optimize computations. However, these reuse opportunities are frequently discarded by current state-of-the-art SPL analysis techniques. We contribute a method for embedding memoization in Control-Flow Graph (CFG) static analyses implemented in Haskell and rewritten to be applied on Software Product Lines. We compared a set of six memoized analyses with their non-memoized counterparts in a set of ten revisions from the BusyBox SPL. We observed that the memoization technique was effective in reusing the results of the analyses applied in previous revisions, with reductions in total time computing analysis reaching up to two orders of magnitude in relation to the nonmemoized analyses while having limited storage consumption impact.Instituto de Ciências Exatas (IE)Departamento de Ciência da Computação (IE CIC)Programa de Pós-Graduação em InformáticaAlves, Vander RamosWorm, Bruno Matissek2025-03-17T20:08:34Z2025-03-17T20:08:34Z2025-03-172024-11-27info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfWORM, Bruno Matissek. Evolution-Aware Static Analysis of Software Product Lines. 2024. 63 f. Dissertação (Mestrado em Informática) — Universidade de Brasília, Brasília, 2024.http://repositorio.unb.br/handle/10482/51943porA concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor com as seguintes condições: Na qualidade de titular dos direitos de autor da publicação, autorizo a Universidade de Brasília e o IBICT a disponibilizar por meio dos sites www.unb.br, www.ibict.br, www.ndltd.org sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o texto integral da obra supracitada, conforme permissões assinaladas, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data.info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UnBinstname:Universidade de Brasília (UnB)instacron:UNB2025-03-17T20:08:34Zoai:repositorio.unb.br:10482/51943Repositório InstitucionalPUBhttps://repositorio.unb.br/oai/requestrepositorio@unb.bropendoar:2025-03-17T20:08:34Repositório Institucional da UnB - Universidade de Brasília (UnB)false
dc.title.none.fl_str_mv Evolution-aware static analysis of software product lines
title Evolution-aware static analysis of software product lines
spellingShingle Evolution-aware static analysis of software product lines
Worm, Bruno Matissek
Software
Linhas de produtos
Software - evolução
Programação funcional
Memorização
title_short Evolution-aware static analysis of software product lines
title_full Evolution-aware static analysis of software product lines
title_fullStr Evolution-aware static analysis of software product lines
title_full_unstemmed Evolution-aware static analysis of software product lines
title_sort Evolution-aware static analysis of software product lines
author Worm, Bruno Matissek
author_facet Worm, Bruno Matissek
author_role author
dc.contributor.none.fl_str_mv Alves, Vander Ramos
dc.contributor.author.fl_str_mv Worm, Bruno Matissek
dc.subject.por.fl_str_mv Software
Linhas de produtos
Software - evolução
Programação funcional
Memorização
topic Software
Linhas de produtos
Software - evolução
Programação funcional
Memorização
description A necessidade de lidar com a variabilidade durante a análise das Linhas de Produtos de Software (LPS) é intrínseca, pois o número de combinações de produtos válidos pode ser uma função exponencial em relação ao número de características. Além disso, à medida que uma LPS evolui, os resultados das análises anteriores poderiam ser usados para otimizar os cálculos. Entretanto, estas oportunidades de reúso são frequentemente descartadas pelas técnicas de análise de LPS presentes no atual estado da arte. Este trabalho propõe um método para embutir memoização em análises estáticas de ControlFlow Graph (CFG) implementadas em Haskell e reescritas para serem aplicadas em LPS. O método memoizado proposto foi usado para transformar seis análises estáticas de CFG levantadas para LPSs, e comparou-se o desempenho destas em relação às suas contrapartes sem memoização em um conjunto de dez versões da LPS BusyBox. Verificou-se que esta técnica de memoização foi eficiente em reusar os resultados das análises aplicadas em revisões anteriores, com reduções de tempo total computando análises de até duas ordens de magnitude em relação às análises sem memoização, tendo impacto limitado no uso de armazenamento dos resultados memoizados.
publishDate 2024
dc.date.none.fl_str_mv 2024-11-27
2025-03-17T20:08:34Z
2025-03-17T20:08:34Z
2025-03-17
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv WORM, Bruno Matissek. Evolution-Aware Static Analysis of Software Product Lines. 2024. 63 f. Dissertação (Mestrado em Informática) — Universidade de Brasília, Brasília, 2024.
http://repositorio.unb.br/handle/10482/51943
identifier_str_mv WORM, Bruno Matissek. Evolution-Aware Static Analysis of Software Product Lines. 2024. 63 f. Dissertação (Mestrado em Informática) — Universidade de Brasília, Brasília, 2024.
url http://repositorio.unb.br/handle/10482/51943
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.source.none.fl_str_mv reponame:Repositório Institucional da UnB
instname:Universidade de Brasília (UnB)
instacron:UNB
instname_str Universidade de Brasília (UnB)
instacron_str UNB
institution UNB
reponame_str Repositório Institucional da UnB
collection Repositório Institucional da UnB
repository.name.fl_str_mv Repositório Institucional da UnB - Universidade de Brasília (UnB)
repository.mail.fl_str_mv repositorio@unb.br
_version_ 1839084000989151232