Towards the visualization of software systems as 3D forests: the CodeTrees environment

We present an approach based on a forest metaphor to ease the comprehension of object oriented software systems. Software systems are represented as forests of trees that users can navigate and interact with. We also describe here the mapping of the information of the source code in meaningful ways to take advantages of familiar concepts such as agglomerates of trees (or sub-forest), trunk, branches, leaves, and color of the leaves. The approach has been implemented in a prototype of a 3D environment, namely CodeTrees. To assess the validity of the approach and environment, we have also conducted a preliminary empirical evaluation on three open source software systems implemented in the programming languages Java and C++.

[1]  Malcolm Munro,et al.  Virtual but visible software , 2000, 2000 IEEE Conference on Information Visualization. An International Conference on Computer Visualization and Graphics.

[2]  Ben Shneiderman,et al.  The eyes have it: a task by data type taxonomy for information visualizations , 1996, Proceedings 1996 IEEE Symposium on Visual Languages.

[3]  C.J.H. Mann,et al.  Object-Oriented Metrics in Practice: Using Software Metrics to Characterize, Evaluate, and Improve the Design of Object-Oriented Systems , 2007 .

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

[5]  Meir M. Lehman,et al.  Program evolution , 1984, Inf. Process. Manag..

[6]  John Domingue,et al.  Software visualization : programming as a multimedia experience , 1998 .

[7]  Patrick Ogao,et al.  Evaluation of software visualization tools: Lessons learned , 2009, 2009 5th IEEE International Workshop on Visualizing Software for Understanding and Analysis.

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

[9]  Amaia Aguirregoitia Martínez,et al.  A landscape metaphor for visualization of software projects , 2008, SoftVis '08.

[10]  John C. Grundy,et al.  Information visualisation utilising 3D computer game engines case study: a source code comprehension tool , 2005, CHINZ '05.

[11]  Marvin V. Zelkowitz,et al.  Principles of software engineering and design , 1979 .

[12]  Stéphane Ducasse,et al.  The class blueprint: visually supporting the understanding of glasses , 2005, IEEE Transactions on Software Engineering.

[13]  Andrian Marcus,et al.  Comprehension of software analysis data using 3D visualization , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[14]  Romain Robbes,et al.  Software systems as cities: a controlled experiment , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[15]  Jarke J. van Wijk,et al.  Botanical visualization of huge hierarchies , 2001, IEEE Symposium on Information Visualization, 2001. INFOVIS 2001..

[16]  Stuart M. Charters,et al.  Visualisation for informed decision making; from code to components , 2002, SEKE '02.

[17]  L. Erlikh,et al.  Leveraging legacy system dollars for e-business , 2000 .

[18]  Xiaodi Huang,et al.  Pattern puzzle: a metaphor for visualizing software complexity measures , 2006, APVIS.

[19]  Tom Davis,et al.  Opengl programming guide: the official guide to learning opengl , 1993 .

[20]  John C. Grundy,et al.  A 3D metaphor for software production visualization , 2003, Proceedings on Seventh International Conference on Information Visualization, 2003. IV 2003..

[21]  Michele Lanza,et al.  Program Comprehension through Software Habitability , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[22]  Jason Weber,et al.  Creation and rendering of realistic trees , 1995, SIGGRAPH.

[23]  Michele Lanza,et al.  CodeCity: 3D visualization of large-scale software , 2008, ICSE Companion '08.

[24]  Hong Yul Yang,et al.  A Solar System Metaphor for 3D Visualisation of Object Oriented Software Metrics , 2004, InVis.au.