Vizz3D™ is a 3D information visualization system. It promotes system structure and quality information to a user in a comprehesible way and leverages the understanding of that system. It is, however, also usable in other contexts since it can display any kind of graphical and statistical information.
Vizz3D™, originally developed for the VizzAnalyzer™, is now a stand-alone tool. It allows to show different relations / graphs simultaneously. Even their changes over time can be displayed. The screenshots below give some examples. The relations / graphs can be defined by the user. Then different layouts, visual metaphors can be selected to display the information. Even own layouts and metaphors can be integrated when using the Vizz3D™ as a Framework. [ top ]
The first screenshot shows a software visualization of the Vizz3D program code capturing class hierarchy and the class usages relations. It contains class and interface nodes and field access, creates, and call edges. It can be interpreted as interaction of classes (boxes) and interfaces (spheres). The red color indicates nodes that are not used anymore (dead code).
[ top ]The second screenshot shows interactions of classes (solid spheres) belonging to packages (transparent spheres enclose classes of the same package).
[ top ]The third screenshot illustrates the evolution of a system with its classes (boxes) and interfaces (spheres) over seven versions. Each version has its own level and colors. Same classes and interfaces in the different versions have same x- and z-coordinate. The size of items corresponds to the code size.
[ top ]The forth screenshot illustrates some quality aspects classes of a system. It shows four standard metrics that are maintainability indicators of a system: Lack of Documentation (LOD), Weighted Method Count (WMC), Change Dependency Between Classes (CDBC), and Lines of Code (LOC). All metrics are scaled between 0 and 100.
WMC is mapped to the x-coordinate of the boxes, LOC to the y-, CDBC to the z- coordinate. LOD is mapped to a color enoding small valuers to green, medium to yellow, and large to red.
The screenshot indicates now maintainability outliers in the system. To the upper right, classes have many lines of code and a high complexity. To the front, classes have a high CDBC, which means if one of those classes is going to be changed, many other classes will need to be changed as well. The "healthy" classes are expected to be green and positioned in the origin of the coordinate system.
[ top ]The visualization of a system's quality can also be connected to the evolution of that system. The fifth screenshot is a snapshot of an animation, i.e. a series of visualizations. It indicates changes of LOC, and changes of WMC between consecutive versions. The height of boxes shows the change of LOC. A boxes in the positive/negative y-direction indicates an increase/decrease of LOC. The color changes between red and green, indicating that a class became more complex (red) or less complex (green). The default is a grey color for no changes. Same classes remain at the same position throughout the versions, so that their change can easily be perceived.
[ top ]Vizz3D™ is a reusable framework as well. All visualizations and animations shown in the previous section have been developed using this framework. More specifically, we iteratively added new binding functions, metaphors, and layout algorithms when needed of a specific visualization or animation. Then the visualizations or animations are just online-configured by defining model and view mappings.
The advantage of a framework is that users (developers) can reuse all binding functions, metaphors, and layout algorithms once they are defined. Hence, more and more, a visualization or an animation just needs to be online-configured. This enables also an interactive and iterative software analysis, where appropriate views are created on demand.
Binding functions map graph property values to visual graph property values. In Vizz3D™, binding functions are deployed in the special binding directory and dynamically loadable. They need to be online-configurable, in our implementation using XML descriptors. This allows for an online-implementation of a binding function in case one is missing for a specific visualization. Note, that this online-implementation should be the exception once the framework is mature. Then, one just picks and configures the appropriate binding function from the pool of existing, see below.
Layout algorithms assign position properties to scene graph nodes. Besides this layout function, a layout class may restrict the set of metaphors it is applicable for. The layout classes are deployed into the layout algorithm directory and dynamically loadable. This allows for an online-implementation of a layout, as well.
Metaphors are families of visual objects fitting together. Metaphors contain even files describing the environment of the visualization, i.e. the background, additional visual entities and other environmental factors like fog and light sources. The individual implementations are API dependent (Java3D or OpenGL). A metaphor class may restrict the set of layouts it allows to be applied. The metaphor classes are deployed into the metaphor directory and dynamically loadable. [ top ]
Vizz3D™ is a GPL licensed product. Anyone can download the source code and make changes. Any changes being redistributed must contain the source code.
For further questions regarding Vizz3D™, please contact Thomas Panas. You find the email address at: https://sourceforge.net/projects/vizz3d/ [ top ]