SoftVis3D

Visualize your project in SonarQube

Overview

Software systems are complex, intangible structures, which are hard to understand. Therefore, visualization of software properties, structure and dependencies in different views play an important role within the lifecycle of a software system. SoftVis3D is a tool for 3D visualization of software structures and metrics that can be integrated in the software development process by using SonarQube.

Give your software a shape, build from the sources of your project. Communicate about the structure by using the visualisation, from the developer up to management. You will see hot spots faster and more reliable than before.

Benefits

Getting started

If you are running SonarQube >= 5.5 go to ‘Administration -> System -> Update center’ and install with a single click!

Or download it using the links at the top.

3D city layout

Code city

The “code city” view provides a visualization for the hierarchical structure of the project. Folders or packages are shown as districts, files as buildings. The building footprint, height and color are dependent on two arbitrary sonar metrics.

Code city layout

Evostreet

Evostreet is a stable layout for visualizing evolving software systems using the city metaphor.

Code city layout

Live demo - Examples

You can take a look at the visualisation various open source projects on our SonarQube live demo instance which is available here.

Jenkins server project

Direct visualization link Github URL

Guava

Direct visualization link

Github URL

OpenRefine

Direct visualization link

Github URL

SoftVis3d plugin

Direct visualization link

Github URL

Documentation

Code city layout

Profiles

Profiles give you a good head start to your project and select the most common metrics for the visualization.

Default risk profile

This profile provides a very good overview of the structure of your project. It should be easy to identify the classes or packages with the highest risks.

Leak period profile

Check the quality of new code in the current leak period. It should be easy to identify the changing parts of the system (high buildings) and to identify the parts with the most risk. Take a closer look at the changing parts during the next release tests.

Duplicated lines profile

Buildings only gain height if duplicated code is found within the class or file. Search for hot spots of high buildings. High and massive buildings could contain complex duplicated code which is a high risk especially if a lot of changes take place.

Custom profile

Is set if you change one of the profile related metrics (footprint, height).

Building color

The building color will be orange if nothing is selected here. Other options:

Min value is 1 and max values is the highest value in the project.

Min 1 and max 95.

This rule has the “bus factor” in focus. Building is green from 3 committers and more. Please keep in mind that the scm “blame info” ist used. The result is that we can only see the number of authors on the current lines of the file. No scm history data can be used.

A class with high complexity and a lot of activity during the leak period is a hotspot. In legacy code, no commits or a few of commits during the leak period - means it’s not that critical. Building gets red from 3 commits and more. Please keep in mind that the scm “blame info” ist used. The result is that we can only see the number of authors on the current lines of the file. No scm history data can be used.

Min value 0. Max value is either is the highest value in the project but at least 20 and maximum 180.

Min value 0. Max value is either is the highest value in the project but at least 20 and maximum 180.

Min value 25. Max value is either is the highest value in the project but at least 350 and maximum 900.

Min value 0. Max value is either is the highest value in the project but at least 20 and maximum 180.

Random color by package name.

Exclude / include options

The file name will be checked against the regular expression provided. Default Javascript regExp is used: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/RegExp