Evolution-aware static analysis of software product lines
| Ano de defesa: | 2024 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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 |