Journal of Software Maintenance and Evolution: Research and Practice Software Visualization in Software Maintenance, Reverse Engineering, and Re-engineering: a Research Survey

Software visualization is concerned with the static visualization as well as the animation of software artifacts, such as source code, executable programs, and the data they manipulate, and their attributes, such as size, complexity, or dependencies. Software visualization techniques are widely used in the areas of software maintenance, reverse engineering, and re-engineering, where typically large amounts of complex data need to be understood and a high degree of interaction between software engineers and automatic analyses is required. This paper reports the results of a survey on the perspectives of 82 researchers in software maintenance, reverse engineering, and re-engineering on software visualization. It describes to which degree the researchers are involved in software visualization themselves, what is visualized and how, whether animation is frequently used, whether the researchers believe animation is useful at all, which automatic graph layouts are used if at all, whether the layout algorithms have deficiencies, and--last but not least--where the medium-term and long-term research in software visualization should be directed. The results of this survey help to ascertain the current role of software visualization in software engineering from the perspective of researchers in these domains and give hints on future research avenues.

[1]  Gruia-Catalin Roman,et al.  Program visualization: the art of mapping programs to pictures , 1992, International Conference on Software Engineering.

[2]  Alan F. Blackwell,et al.  Metacognitive theories of visual programming: what do we think we are doing? , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[3]  David J. Gilmore,et al.  Comprehension and Recall of Miniature Programs , 1984, Int. J. Man Mach. Stud..

[4]  Marian Petre,et al.  When Visual Programs are Harder to Read than Textual Programs , 1992 .

[5]  Peter Eades,et al.  FADE: Graph Drawing, Clustering, and Visual Abstraction , 2000, GD.

[6]  Marian Petre,et al.  Why looking isn't always seeing: readership skills and graphical programming , 1995, CACM.

[7]  Colin Ware,et al.  Evaluating stereo and motion cues for visualizing information nets in three dimensions , 1996, TOGS.

[8]  T. Dean Hendrix,et al.  Do visualizations improve program comprehensibility? experiments with control structure diagrams for Java , 2000, SIGCSE '00.

[9]  Robert F. Cohen,et al.  Validating Graph Drawing Aesthetics , 1995, GD.

[10]  Bran Selic,et al.  Real-time object-oriented modeling , 1994, Wiley professional computing.

[11]  Andy Schürr,et al.  GXL: toward a standard exchange format , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[12]  Bill Curtis,et al.  Experimental evaluation of software documentation formats , 1989, J. Syst. Softw..

[13]  Kirsten N. Whitley Visual Programming Languages and the Empirical Evidence For and Against , 1997, J. Vis. Lang. Comput..

[14]  Hausi A. Müller,et al.  How do program understanding tools affect how programmers understand programs? , 2000, Sci. Comput. Program..

[15]  Malcolm Munro,et al.  Mediating diverse visualisations for comprehension , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[16]  Girish Parikh,et al.  Tutorial on Software Maintenance , 1983 .

[17]  Stephan Diehl Software visualization : international seminar, Dagstuhl Castle, Germany, May 20-25, 2001 : revised papers , 2002 .

[18]  Rudolf K. Keller,et al.  Software visualization tools: survey and analysis , 2001, Proceedings 9th International Workshop on Program Comprehension. IWPC 2001.

[19]  Hausi A. Müller,et al.  A reverse engineering environment based on spatial and visual software interconnection models , 1992 .

[20]  Colin Ware,et al.  Visualizing object oriented software in three dimensions , 1993, CASCON.

[21]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[22]  Melissa Wiggins,et al.  An overview of program visualization tools and systems , 1998, ACM-SE 36.