CCR-0204410 Change Impact Analysis for Object-oriented Systems

Barbara G. Ryder (PI) Dr. Frank Tip, (co-PI)

Abstract

Software systems evolve over time in order to adapt to changes in the environment and to add desired functionality. Graceful software evolution requires that only expected changes in functionality occur when working code is changed; this is desirable, but difficult to achieve. Software tools are needed to automate the evolution of large, complex software systems made up of heterogeneous components, by reporting 'change impact' information to programmers. Change impact analysis allows programmers to examine the effects of edits they make to code; tool support for change impact analysis has a clear potential to boost programmer productivity and enable safe code enhancement.

An initial framework for change impact analysis in an object-oriented system (see Barbara G. Ryder and Frank Tip, ``Change Impact Analysis for Object-oriented Programs'', Proc. of 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, pp 46-53, June 2001.) decomposes program edits into sets of interdependent, method-level changes (e.g., add an empty method, change the body of a method). These atomic changes may affect a subset of the regression tests for the system. Analysis can determine which tests are affected and which changes affect each of these tests. Since regression tests often test independent system functionalities, knowing the tests affected is tantamount to knowing which functionalities may have been altered. The proposed research experimentally explores change impact analysis of object-oriented systems. Various levels of granularity of edits and analyses will be explored to investigate the tradeoffs in terms of cost and precision.

This research examines issues of change impact analysis in a modern setting by embedding analyses in an interactive tool as part of a industrial-strength programming environment. The main aim of the research is to ensure the practicality of the change impact analyses developed. This will be accomplished through cost/benefit analyses of the change impact techniques explored.

The key goals of the research are: