3-D visualization of software structure

Abstract A common and frustrating problem in software engineering is the introduction of new faults as a side-effect of software maintenance. An understanding of all of the relationships that exist between modified software and the rest of a system can limit the introduction of new faults. For large systems, these relationships can be numerous and subtle. The relationships can be especially complex in object-oriented systems that include inheritance and dynamic binding. Software visualization can potentially ease both impact analysis and general program understanding. Software visualization can facilitate program understanding by graphically displaying important software features. However, despite recent success in developing useful and intuitive graphical representations for certain aspects of software, current software visualization systems are limited by their lack of scalability—the ability to visualize both small- and large-scale software entities. This paper demonstrates that three-dimensional (3–D) graphics and a hierarchy of overlapping views can increase the scalability of software visualization. The hierarchy provides detailed information without sacrificing the “big picture.” Overlapping is used to provide context between high- and low-level views. A prototype system, Change Impact Viewer (CIV), tests these visualization mechanisms. CIV highlights areas of a system that can potentially be affected by a change to a selected function. The mechanisms, as implemented in CIV, show improvements in scalability over those provided by other systems, without decreasing usefulness or intuitiveness.

[1]  Thomas Ball,et al.  Software Visualization in the Large , 1996, Computer.

[2]  Joseph P. Loyall,et al.  Using dependence analysis to support the software maintenance process , 1993, 1993 Conference on Software Maintenance.

[3]  Anneliese von Mayrhauser Software Engineering: Methods and Management , 1990 .

[4]  Shawn A. Bohner,et al.  Impact analysis-Towards a framework for comparison , 1993, 1993 Conference on Software Maintenance.

[5]  Anneliese Amschler Andrews,et al.  Program Comprehension During Software Maintenance and Evolution , 1995, Computer.

[6]  John K. Ousterhout,et al.  Tcl and the Tk Toolkit , 1994 .

[7]  Timothy C. Winkler,et al.  Approximate Reasoning About the Semantic Effects of Program Changes , 1990, IEEE Trans. Software Eng..

[8]  Nancy Pennington,et al.  Comprehension strategies in programming , 1987 .

[9]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[10]  Malcolm Munro,et al.  The impact analysis task in software maintenance: a model and a case study , 1994, Proceedings 1994 International Conference on Software Maintenance.

[11]  Giuseppe Liotta,et al.  Parametric Graph Drawing , 1995, IEEE Trans. Software Eng..

[12]  Blaine A. Price,et al.  A Principled Taxonomy of Software Visualization , 1993, J. Vis. Lang. Comput..

[13]  J.T. Stasko,et al.  Three-dimensional computation visualization , 1993, Proceedings 1993 IEEE Symposium on Visual Languages.

[14]  Lindsey Ford How Programmers Visualize Programs , 1993 .

[15]  John Stasko,et al.  Using Visualization to Foster Object-Oriented Program Understanding , 1994 .

[16]  Daniel Jackson,et al.  Semantic Diff: a tool for summarizing the effects of modifications , 1994, Proceedings 1994 International Conference on Software Maintenance.

[17]  Lindsey Ford Automatic Software Visualization using Visual Arts Techniques Research Report 279 , 1993 .

[18]  Kate Ehrlich,et al.  Knowledge and processes in the comprehension of computer programs. , 1988 .