Whole program path-based dynamic impact analysis

Impact analysis, determining when a change in one part of a program affects other parts of the program, is time-consuming and problematic. Impact analysis is rarely used to predict the effects of a change, leaving maintainers to deal with consequences rather than working to a plan. Previous approaches to impact analysis involving analysis of call graphs, and static and dynamic slicing, exhibit several tradeoffs involving computational expense, precision, and safety, require access to source code, and require a relatively large amount of effort to re-apply as software evolves. This paper presents a new technique for impact analysis based on whole path profiling, that provides a different set of cost-benefits tradeoffs - a set which can potentially be beneficial for an important class of predictive impact analysis tasks. The paper presents the results of experiments that show that the technique can predict impact sets that are more accurate than those computed by call graph analysis, and more precise (relative to the behavior expressed in a program's profile) than those computed by static slicing.

[1]  Frank Tip,et al.  Change impact analysis for object-oriented programs , 2001, PASTE '01.

[2]  Mariam Kamkar,et al.  An overview and comparative classification of program slicing techniques , 1995, J. Syst. Softw..

[3]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[4]  Ian H. Witten,et al.  Linear-time, incremental hierarchy inference for compression , 1997, Proceedings DCC '97. Data Compression Conference.

[5]  Shawn A. Bohner,et al.  Impact analysis-Towards a framework for comparison , 1993, 1993 Conference on Software Maintenance.

[6]  Li Li,et al.  Algorithmic analysis of the impact of changes to object-oriented software , 1996, 1996 Proceedings of International Conference on Software Maintenance.

[7]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[8]  Robert S. Arnold,et al.  Software Change Impact Analysis , 1996 .

[9]  Joseph Robert Horgan,et al.  Dynamic program slicing , 1990, PLDI '90.

[10]  Malcolm Munro,et al.  An early impact analysis technique for software maintenance , 1994, J. Softw. Maintenance Res. Pract..

[11]  Gregg Rothermel,et al.  Test case prioritization: an empirical study , 1999, Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM'99). 'Software Maintenance for Business Change' (Cat. No.99CB36360).

[12]  Mike Van,et al.  UQBT: Adaptable Binary Translation at Low Cost , 2000 .

[13]  Cristina Cifuentes,et al.  UQBT: Adaptive Binary Translation at Low Cost , 2000, Computer.

[14]  Amitabh Srivastava,et al.  Vulcan Binary transformation in a distributed environment , 2001 .

[15]  Mikael Lindvall,et al.  How well do experienced software developers predict software change? , 1998, J. Syst. Softw..

[16]  C. P. Satterthwaite,et al.  Impact analysis and change management for avionics software , 1997, Proceedings of the IEEE 1997 National Aerospace and Electronics Conference. NAECON 1997.

[17]  Lori A. Clarke,et al.  A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and Maintenance , 1990, IEEE Trans. Software Eng..

[18]  Janusz W. Laski,et al.  Dynamic slicing of computer programs , 1990, J. Syst. Softw..

[19]  J. Larus Whole program paths , 1999, PLDI '99.

[20]  A. Jefferson Offutt,et al.  Algorithmic analysis of the impacts of changes to object-oriented software , 2000, Proceedings. 34th International Conference on Technology of Object-Oriented Languages and Systems - TOOLS 34.

[21]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[22]  Jeff Offutt,et al.  Change impact analysis of object-oriented software , 1998 .