Transcript
Page 1: 3D Source Code Visualization Toolkit

3D Source Code Visualization

Toolkit

ProblemSoftware 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.

PropertiesSize

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.

Page 2: 3D Source Code Visualization Toolkit

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.

Page 3: 3D Source Code Visualization Toolkit

Information VisualizationInformation 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.

Sample 2D prototype visualization