A comparison of online and dynamic impact analysis algorithms

Impact analysis is the process of determining the effect, or impact, of a change to a software system. Dynamic impact analysis uses data obtained from executing a program to perform analysis after program termination for determining impacts more in line with how a program is used. Online impact analysis has the same goal, but is performed concurrently with program execution. While some of the tradeoffs between dynamic algorithms have been studied, no such study has been performed for online algorithms. In this paper, we present such a study by comparing two online algorithms and two previously published dynamic algorithms in terms of their space overhead, time for computation, computed impact sets, and scalability. Our results indicate that performing impact analysis online can be more scalable than the dynamic counterparts.

[1]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

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

[3]  Anthony Danalis,et al.  Online impact analysis via dynamic compilation technology , 2004, 20th IEEE International Conference on Software Maintenance, 2004. Proceedings..

[4]  Derek Bruening,et al.  An infrastructure for adaptive dynamic optimization , 2003, International Symposium on Code Generation and Optimization, 2003. CGO 2003..

[5]  Gregg Rothermel,et al.  Incremental dynamic impact analysis for evolving software systems , 2003, 14th International Symposium on Software Reliability Engineering, 2003. ISSRE 2003..

[6]  Matthew Arnold,et al.  A Survey of Adaptive Optimization in Virtual Machines , 2005, Proceedings of the IEEE.

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

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

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

[10]  Alessandro Orso,et al.  Leveraging field data for impact analysis and regression testing , 2003, ESEC/FSE-11.

[11]  Pedro Manuel Moreira Vaz Antunes de Sousa,et al.  Proceedings of the Fifth European Conference on Software Maintenance and Reengineering , 2000 .

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

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

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

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

[16]  Matthew Arnold,et al.  Adaptive optimization in the Jalapeño JVM , 2000, OOPSLA '00.

[17]  Gregg Rothermel,et al.  An empirical comparison of dynamic impact analysis algorithms , 2004, Proceedings. 26th International Conference on Software Engineering.

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

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

[20]  Jeffrey K. Hollingsworth,et al.  An API for Runtime Code Patching , 2000, Int. J. High Perform. Comput. Appl..

[21]  Paolo Faraboschi,et al.  DELI: a new run-time control point , 2002, MICRO.

[22]  Gregg Rothermel,et al.  Whole program path-based dynamic impact analysis , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[23]  Derek Bruening,et al.  Secure Execution via Program Shepherding , 2002, USENIX Security Symposium.