The program summary graph and flow-sensitive interprocedual data flow analysis
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
A safe approximate algorithm for interprocedural aliasing
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Context-sensitive interprocedural points-to analysis in the presence of function pointers
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
SIGSOFT '94 Proceedings of the 2nd ACM SIGSOFT symposium on Foundations of software engineering
Efficient context-sensitive pointer analysis for C programs
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Context-insensitive alias analysis reconsidered
PLDI '95 Proceedings of the ACM SIGPLAN 1995 conference on Programming language design and implementation
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Program decomposition for pointer aliasing: a step toward practical analyses
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
Fast and accurate flow-insensitive points-to analysis
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Pointer analysis for programs with structures and casting
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
Whole program Path-Based dynamic impact analysis
Proceedings of the 25th International Conference on Software Engineering
ICSE '81 Proceedings of the 5th international conference on Software engineering
Leveraging field data for impact analysis and regression testing
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
A Large-Scale Empirical Study of Forward and Backward Static Slice Size and Context Sensitivity
ICSM '03 Proceedings of the International Conference on Software Maintenance
An Empirical Comparison of Dynamic Impact Analysis Algorithms
Proceedings of the 26th International Conference on Software Engineering
Mining Version Histories to Guide Software Changes
Proceedings of the 26th International Conference on Software Engineering
Predicting Source Code Changes by Mining Change History
IEEE Transactions on Software Engineering
Analysis and Visualization of Predicate Dependence on Formal Parameters and Global Variables
IEEE Transactions on Software Engineering
Fine grained indexing of software repositories to support impact analysis
Proceedings of the 2006 international workshop on Mining software repositories
An empirical study of static program slice size
ACM Transactions on Software Engineering and Methodology (TOSEM)
Empirical study of optimization techniques for massive slicing
ACM Transactions on Programming Languages and Systems (TOPLAS)
Empirical Software Change Impact Analysis using Singular Value Decomposition
ICST '08 Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation
Assessing the impact of global variables on program dependence and dependence clusters
Journal of Systems and Software
Practical change impact analysis based on static program slicing for industrial software systems
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
An incremental points-to analysis with CFL-Reachability
CC'13 Proceedings of the 22nd international conference on Compiler Construction
Using water wave propagation phenomenon to study software change impact analysis
Advances in Engineering Software
MIDAS: a design quality assessment method for industrial software
Proceedings of the 2013 International Conference on Software Engineering
Identifying failure inducing developer pairs within developer networks
Proceedings of the 2013 International Conference on Software Engineering
Efficient Identification of Linchpin Vertices in Dependence Clusters
ACM Transactions on Programming Languages and Systems (TOPLAS)
Scalable and incremental software bug detection
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Coherent clusters in source code
Journal of Systems and Software
Hi-index | 0.00 |
Change impact analysis, i.e., knowing the potential consequences of a software change, is critical for the risk analysis, developer effort estimation, and regression testing of evolving software. Static program slicing is an attractive option for enabling routine change impact analysis for newly committed changesets during daily software build. For small programs with a few thousand lines of code, static program slicing scales well and can assist precise change impact analysis. However, as we demonstrate in this paper, static program slicing faces unique challenges when applied routinely on large and evolving industrial software systems. Despite recent advances in static program slicing, to our knowledge, there have been no studies of static change impact analysis applied on large and evolving industrial software systems. In this paper, we share our experiences in designing a static change impact analysis framework for such software systems. We have implemented our framework as a tool called Imp and have applied Imp on an industrial codebase with over a million lines of C/ C++ code with promising empirical results.