Attributed graph-based representations for software view generation and impact-of-change analysis.

Ratib Hussien Al-Zoubi · Deep Blue (University of Michigan) · 1992

The most critical activity in implementing a maintenance change is change analysis, during which an analyst builds an understanding of the software program being changed, finds changes to the program's code necessary to implement the proposed maintenance change, and finds the impact of the projected changes on the program. The success and the overall cost of a maintenance change depend directly on the success of its change analysis, which in turn depends on success of software understanding and impact analysis. Current software development environments provide little support for change analysis. In this thesis, we introduce SCAN, a computer-assistant system of tools that provides such support. The primary purpose of SCAN is to generate program views to ease code understanding, find the impact of a proposed change to the code, and guide the analysts during change analysis. We base SCAN tools on special attributed program dependency graphs (APDGs) that are automatically generated from a program's code. These are directed graphs whose nodes represent the entities of the program and arcs represent relationships between these entities. The nodes and arcs of the graph are attributed. An APDG is a repository of information used by various SCAN tools. An APDG is augmented with a rule base that describes conditions that must be satisfied by an APDG of an acceptable program. We show that scalability for large multiple-file programs can be achieved using the model by maintaining multiple APDGs, one for each file in the system. We have developed a prototype of SCAN tools to process multiple-file Pascal programs. This prototype has graph generator, a view generator, an impact analyzer and a rule checker. We show that basing these tools on graphs simplifies their design and improves their effectiveness compared to existing schemes. We also show that our proposed approach to change analysis can be applied to code written in other languages.

Read the paper · More papers on PaperTik