Skip to main content

Hybrid change impact analysis using patterns of change in software history

Resource type
Thesis type
(Thesis) M.Sc.
Date created
2023-04-26
Authors/Contributors
Abstract
Change impact analysis is essential for predicting the impact of change in complex and dynamic applications. Balancing the precision and completeness of the analysis is challenging, especially for a highly-dynamic programming language such as JavaScript. Existing impact analyses rely on techniques such as dynamic analysis and mining software repositories. Despite the benefits, dynamic analysis misses dependencies that are not exercised, and mining software repositories may yield imprecise results. In this paper, we propose a novel function-level hybrid impact analysis for JavaScript that utilizes the advantages of both techniques. For identifying the potential impact of a change set, our approach first extracts recurring patterns of change in software history that involve the change set. Next, it infers a dependency graph of the software using dynamic analysis. Integrating the findings of analyzing the patterns of change in software history with the dynamic code dependencies, our proposed approach provides a ranked impact set. We implement our approach in a tool named Caprese, which we then evaluate using 10 open-source Node.js applications. The results show that both dynamic analysis and frequent pattern detection units contribute uniquely to the approach. We also demonstrate that Caprese outperforms a state-of-the-art impact analysis tool by achieving 59% to 84% higher precision and 41% to 64% higher recall, on average.
Document
Extent
44 pages.
Identifier
etd22482
Copyright statement
Copyright is held by the author(s).
Permissions
This thesis may be printed or downloaded for non-commercial research and scholarly purposes.
Supervisor or Senior Supervisor
Thesis advisor: Alimadadi, Saba
Language
English
Member of collection
Download file Size
etd22482.pdf 647.47 KB

Views & downloads - as of June 2023

Views: 63
Downloads: 1