IVA Project Pages

IVA: Instability Visualization And Analysis

This work is funded by NSF Grant CCR-0234603. Initial pathfinding research was funded by a Student Research Grant from USENIX.

As software evolves, maintenance practices require a process of accommodating changing requirements while minimizing the cost of implementing those changes. Over time, incompatabilities between design assumptions and the operational environment become more pronounced, requiring some regions of the implementation to require frequent or repeated modification. These regions are considered to be unstable, and would benefit from targeted restructuring efforts as a means of realigning these assumptions and the environment. An analysis of these regions that results in the identification and classification of these instabilities can be used to prioritize and direct structural maintenance efforts.

We are building a tool, IVA (Instability Visualization and Analysis) that will use the data stored within a software configuration management system to identify and classify unstable regions. IVA will not rely on sophisticated change management data, will allow a line-level granularity of analysis, and can be used with any historical set of artifacts for which a dependence graph can be constructed.

Full Text of NSF Project Proposal (pdf)

Project Status

IVA currently supports C and Java source code in CVS or Subversion SCM repositories. The Java dependence graph generation is extremely basic, relying only on the Java "import" dependencies. Support for C source code is provided by using Grammatech's Codesurfer tool, which provides quality static dependence graphs with user-configurable analysis levels. The graph layout for visualization is also simplistic, and uses a radial layout at each hierarchical level (package root, intermediate packages, and classes). Instability identification is limited to graph edge identification, and no subgraph bounding is yet performed. Classification is an ordering of the number of times each edge in the dependence graph changed, and is based on the dependence graph of a user-selected revision. No normalizations for developer or maintenance-phase issues are yet implemented.

Near-Future Work: We are currently running our initial validation activities on the "svnadmin" build target within the Subversion SCM system. Our next validation target is the Apache2 development history, which is available via anonymous CVS access. We plan to support the ClearCase SCM system by Summer, 2004. After we have performed our intial identification validations, work on visualization and analysis will be given higher priority.

Project Library

A recommended reading list for those interested in the research that IVA is built upon will be here soon.