'

Algorithmic analysis of the impact of change on O-O software

Michelle Lee, Network Soluitons, USA

A. Jefferson Offutt and Roget T. Alexander, George Mason University, USA

As software ages and evolves, the task of maintaining it becomes more complex and expensive. For programs with many interacting modules, modifying and then re-validating them is comples; analysis, testing and debugging may be required for each module individually and for the interactions among modules.

The problem is further compounded because the maintainers are rarely the authors of the code and usually lack a complete understanding of the program. Even worse, maintainers often do not have access to specifications or design documents - just the code. The research presented here addresses the problem of change impact analysis (CIA) for object-oriented software. A major problem for developers in an evolutionary environment is that seemingly small changes can ripple throughout the system to have major unintended impacts elsewhere.

As a result, software developers need mechanisms to understand how a change to a software system will affect the rest of the system.

Major results of this research include definitions of object-oriented data dependency graphs, a set of algorithms that allow software developers to evaluate proposed changes on object-oriented software, a set of object-oriented change impact metrics to quantitatively evaluate the change impacts, and a proof-of-concept tool (ChAT) that computes the impacts of changes. This research also supports efficient regression testing by helping testers decide what classes and methods need to be retested, and in supporting cost estimation and schedule planning.'