Affiliation:
1. University of Notre Dame, Notre Dame, IN
2. Dell SecureWorks, Atlanta, GA
Abstract
Impact analysis not only assists developers with change planning and management, but also facilitates a range of other client analyses, such as testing and debugging. In particular, for developers working in the context of specific program executions,
dynamic
impact analysis is usually more desirable than static approaches, as it produces more manageable and relevant results with respect to those concrete executions. However, existing techniques for this analysis mostly lie on two extremes: either fast, but too imprecise, or more precise, yet overly expensive. In practice, both more cost-effective techniques and variable cost-effectiveness trade-offs are in demand to fit a variety of usage scenarios and budgets of impact analysis.
This article aims to fill the gap between these two extremes with an array of cost-effective analyses and, more broadly, to explore the cost and effectiveness dimensions in the
design space
of impact analysis. We present the development and evaluation of D
ia
P
ro
, a framework that unifies a series of impact analyses, including
three new hybrid techniques
that combine static and dynamic analyses. Harnessing both static dependencies and multiple forms of dynamic data including method-execution events, statement coverage, and dynamic points-to sets, D
ia
P
ro
prunes false-positive impacts with varying strength for variant effectiveness and overheads. The framework also facilitates an in-depth examination of the effects of various program information on the cost-effectiveness of impact analysis.
We applied D
ia
P
ro
to ten Java applications in diverse scales and domains, evaluating it thoroughly on both arbitrary and repository-based queries from those applications. We show that the three new analyses are all significantly more effective than existing alternatives while remaining efficient, and the D
ia
P
ro
framework, as a whole, provides flexible cost-effectiveness choices for impact analysis with the best options for variable needs and budgets. Our study results also suggest that hybrid techniques tend to be much more cost-effective than purely dynamic approaches, in general, and that statement coverage has mostly stronger effects than dynamic points-to sets on the cost-effectiveness of dynamic impact analysis, while static dependencies have even stronger effects than both forms of dynamic data.
Publisher
Association for Computing Machinery (ACM)
Cited by
15 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Enhancing Code Understanding for Impact Analysis by Combining Transformers and Program Dependence Graphs;Proceedings of the ACM on Software Engineering;2024-07-12
2. A Control-Theoretic Approach to Auto-Tuning Dynamic Analysis for Distributed Services;2023 IEEE/ACM 45th International Conference on Software Engineering: Companion Proceedings (ICSE-Companion);2023-05
3. Language-agnostic dynamic analysis of multilingual code: promises, pitfalls, and prospects;Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2022-11-07
4. S
EADS;ACM Transactions on Software Engineering and Methodology;2021-01-31
5. D2ABS: A Framework for Dynamic Dependence Analysis of Distributed Programs;IEEE Transactions on Software Engineering;2021