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

GameObject-i-s-shrink

UML view of parital class heirarchy of the example project.

GameObject-i-s

Like the above UML diagram but with the methods included

xrayOverall

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

codstructionOverall

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 )