11-05-2011, 02:37 PM
[attachment=13548]
3D Source Code Visualization Toolkit
Problem
Software professionals regularly ask if one could provide them with some graphic view of their code, looking at source code is so tedious etc. Of course we have various UML tools, but can never manage to get any truly useful visualization out of any of them. Maybe the problem with UML is that it’s so limited to two dimensions? The idea is to design a tool that visualizes code in three dimensions!
Overview
• The toolkit would provide a new look on Java projects.
• Relying on our ability to deal with real objects by examining their shape, size or relative place in space it gives a "physical" view on java packages, types and fields and their relationships, making them easier to handle.
Let’s see how we interpret physical properties and how it can help us to grasp project characteristics.
Properties
Size
Do you prefer a small or a big chocolate box? so a package containing a lot of classes or interfaces will be bigger than one containing a few.
Shape
A box is often represented as a cube, a sphere as an atom. Packages and classes are boxes, interfaces and type's fields are spheres.
Distance to center (gravity)
On a desk we put things we often need near us and everything else further. If class A is more used than class B, A will be nearer the center than B.
Depth
In a bag heavy things are put in the bottom and lighter ones upper. Here weight is not related to content but to dependancy so that a class needing a lot of others will be placed deeper than an interface with few fields.
Relationships
Colors are used in links and tree background to show relationships between entities.
Information Visualization
Information visualization is the interdisciplinary study of the visual representation of large-scale collections of non-numerical information, such as files and lines of code in software systems, and the use of graphical techniques to help people understand and analyze data. In contrast with scientific visualization, information visualization focuses on abstract data sets, such as unstructured text or points in high-dimensional space that does not have an inherent 2D or 3D geometrical structure.