DOC3d: A 3d Documentations system for programming languages

Contact person: Alexey V. Ignatenko (ignatenko@graphics.cs.msu.ru)

 Download

Download

The documentation in Russian.

Overview

 Modern object-oriented programs become more complex from day to day. These systems contain millions lines of code, thousands - tens of thousands classes. Visualization could help programmer to better comprehend these large systems, to orientate between lot of objects of these systems, to analyze intricate structure of code and find required information. Different visualization techniques have two main goals:

  1. represent the information that way which allow programmer comprehend the general structure of information almost at a single glance;
  2. allow review of details (that is necessary for more fundamental understanding code) and provide with handy navigation between different visualization modes and represented objects.

Project Description

The goal of this project is creating 3D-documentation for program code with handy navigation.

Doxygen utility generates xml- and html-documentation from code, then xml-documentation is used for visualization. Html-documentation is necessary for supporting comments from code.

Several visualization modes have been created. Here are some of them:

Visualization of namespaces/packages (or modules in terms of Doxygen)

Modules and different relations between them:

 

Modules placed on some levels (relations between modules are taken into consideration: independent modules are placed on bottom level, modules, which depend on mentioned modules, are placed on next level and so on):

These two modes are intended for understanding a whole struct of code and main features of it.

These two modes are intended for understanding a whole struct of code and main features of it.

Representation of all classes. This mode have been developed for small systems (~50 classes):

Large systems may be presented not whole at time. Classes which have a lot of derived classes and their base classes are visualisated. Size and color of traced class depend on quantity of derived classes of this class:

Other features

Opening html-documentation is possible by pressing on left mouse’s key. Visualisation classes of any namespace (or visualisation classes which are derived from any class) is possible after clicking on this namespace (or the base class accordingly). Work is underway on creating new visualisating modes and handy navigation (for example simple change-over from one visualizating mode to another, handy moving in tridimensional space).

Team

  • Ekaterina Chepurnova

Publications