Analyzing complex software is not an easy task. In many instances, software engineers have to depend on automated techniques to perform this task. This paper highlights the human ability to perform complex software analysis, and discusses a hybrid technique that has human involvement and is semi-automated. The power of human visualization capabilities is utilized by the technique, which the authors propose for analysis tasks.
The authors describe a visualization framework that has four aspects: class representation, program representation, navigation, and data filtering. In this framework, software code is represented as some arbitrary figure. Software metrics like cohesion, coupling between objects, and so on are used to link a class with a representation. Two layout techniques, Treemap and Sunburst, are also used in the experiment detailed at the end of the paper. A camera model is used for navigation, and data filters are used to focus on a subset of elements.
An experiment has been conducted to test the proposed framework. The results are convincing, and show that less time is taken to perform complex software analysis tasks on small-to-medium size programs. Another interesting inference of the experiment was that sophisticated layout techniques play an important role, and Treemap seemed to perform better than Sunburst in a few cases.
The authors admit that the proposed framework has limitations, but future researchers can work on them. To conclude, this paper describes nice, innovative work, and explains many new concepts.