Using Data Flow Analysis to Determine Bi-Directional Ripple Effects During Software Maintenance
R. Cherinka, C. Michael Overstreet, Randy J. Sparks · 1994
Ripple analysis can be used to aid in the understanding of unfamiliar code and in debugging. This paper describes a static code analysis program that allows software maintainers to monitor potential bi-directional ripple side-effects caused by modifications to Pascal source and presents data from analyses of actual code. This program utilizes data flow analysis techniques to collect flow insensitive information about the variables in each source statement and build a database containing a call, control flow, and dead graph. An interesting observation is that forward ripples require less computation on the average than backward ripples. A ripple algorithm that performs a graph traversal to identify reverse and forward side-effects for a given variable on a given source line is described.