User:Dreniers/Sandbox

Solid Software Xplorer (SolidSX) is a software tool developed by SolidSource that facilitates browsing and analysis of software systems, by visualizing the system using computer graphics and providing real-time interaction with it. SolidSX can be used to visually browse classes/methods/fields/etc., inspect call graphs, inheritance graphs, and other dependencies, and analyze source code metrics. Currently it supports .NET software (written in e.g. C#, Visual Basic .NET, or Visual C++) out-of-the-box, but additionally, an open data format enables users to visualize dependency data coming from other sources.

Through the use of visualization, a large amount of information can be conveyed to the user with a single image, which arguably poses advantages over non-visual approaches. SolidSX visualizes three aspects of the software:


 * hierarchical software structure, such as namespace/class/method nesting
 * internal and external relations between code elements (or dependencies), such as calls, inheritance relations, etc.
 * software metrics computed on the software, such as code size, cyclomatic complexity, number of casts, etc.

These three aspects are combined into a single view, the so-called "radial view". The radial view visualizes source code elements (modules, classes, methods, etc.) on concentric rings. The nesting of rings indicates the hierarchical relations between code elements. Relations between elements are drawn as curved arrows in the center of the radial view. The relations are not drawn as straight lines but are instead ``bundled" by transfering hierarchical information onto the relations and so preventing the visual clutter that would occur in traditional node-link diagrams that use straight lines . This technique is called ``hierarchical edge bundling": a visualization technique developed at the Eindhoven University of Technology. Metrics are displayed on the source code elements using color maps and cushions, increasing visual realism leading to a quicker and better understanding of the image. The images are created using graphics hardware (using OpenGL) and can be navigated by the user. Animations are used to preserve the user's mental map of the view. Besides the radial view, SolidSX provides other non-visual views on the software, such as a classical tree view.

SolidSX can be operated stand-alone, but can also integrate with Microsoft Visual Studio .NET by using a plug-in. When integrated, one can navigate forth and back between source code and visualization.