Single or multiple properties software visualization
October 8, 2009
I am researching on whether a 3d environment presenting multiple properties of a software is helpful.
The background idea is that having more properties helps to construct a unified mental model rather than multiple mental models with multiple relationships with other.
We first look at the visualization generated by some tools on a example project.
2D visualization

UML view of parital class heirarchy of the example project.

Like the above UML diagram but with the methods included

This is a screenshot of visualization generated by X-ray. It is a fit-screen view that shows all classes in the example project with their hierarchies as lines connecting boxes and lines of code as length of boxes.
X-ray can be downloaded here.
3D visualization

My current prototype inspired by CodeCity. This is a screen-shot of visualization on the same project the one visualized by X-ray above. Each colored box represent a class and class hierarchy is represented by box stacking. Height of box is proportional to number of methods of the class.
This prototype is developed as a eclipse plugin which can be downloaded here.
To install, unzip content and paste them into plugin folder under your eclipse program, that is
“<eclipse_dir>/plugins”
Restart eclipse if it is running. To visualize any project, right click and select “Visualize with Codstruction”.
————————————————————————————————————————
I need to verify whether doing such a visualization tool is useful before proceeding further so give me your views by answering the following questions:
1. Does a multiple properties representation helps more than a single property representation? If so, what software properties do you think is useful to be visualized together?
To give an idea on what a multiple properties representation is, take a look at the example above. X-ray tool is representing two properties at the same time, the length of code as the length of the box representing a box and the hierarchical structure of the classes.
2. Will 3d be better than 2d is doing the job of representing multiple properties?
3. Will you prefer to use a 2d or 3d visualization tool to do visualize multiple properties?
4. Do you use software visualization tools? Why so?
5. Rate your experience in programming ( 1 – 10 )