Online Impact Analysis for Software Maintenance

A major problem in software maintenance is determining the scope of changes made to source code. A change made to one function could potentially affect (“impact”) another seemingly unrelated function. The process of determining such impacts is called impact analysis and can be difficult to perform. Static analyses, such as slicing, can be expensive to do as well as being too conservative. The alternative is dynamic impact analysis, which uses an execution of the program to determine impacts. This approach may miss potential impacts as it relies upon a particular program input. However, the resulting impacts more closely reflect the actual use of the program. The downside of dynamic analysis is that it can be expensive. The program must be instrumented, data gathered and then processed after the program has finished to determine the impacts.

In contrast, our work focuses on online impact analysis. Here the analysis work is performed entirely as the program is executing. No instrumentation or post analysis phases are required. This can dramatically reduce the cost of the analysis while maintaining precision. The analysis makes use of dynamic compiler technology. Our research explores new ways of efficiently performing online impact analysis as well as combining static analysis techniques to increase precision.

Publications

Contributors

Faculty: Dr. Lori Pollock
Former Grad Students: Ben Breech, Anthony Danalis, and Stacey Shindo
Former Undergraduate: Mike Tegtmeyer

projects/impact_analysis.txt · Last modified: 2011/08/24 13:40 by sprenkle
  • 213 Smith Hall   •   Computer & Information Sciences   •   Newark, DE 19716  •   USA
    Phone: 302-831-6339  •   Fax: 302-831-8458