Continuous architecture analysis with SonarQube in 3D
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. I started to work with software visualization technologies and especially with 3d visualization during my masters thesis at the NICTA in Sydney 2012. The result of the thesis is a tool for 3D visualization of software structures and dependencies that can be integrated in the software development process.
A few month after the thesis I started to work as a software-engineer for the Payback GmbH and started to integrate the tool into their software development process. This revealed one of the most common issues of software visualization platforms. Which data should be used to create the visualization? Who are the experts on code analysis? So I started to analyze current platforms for software quality analysis and found SonarQube. The platform is wide spread in the industry and I started to rewrite my tool from a visualization platform to a SonarQube plugin. Now, all analysis results (metrics) can be used for the visualization.
The SoftVis3D plugin provides two different views. The "Code city" is a visualization for the hierarchical structure of the project. It is based on the city metaphor where classes are depicted as buildings and packages as districts. This kind of visualization will help all stakeholders to get an common understanding of the system. The most common use case is the risk analysis. For instance, use the complexity of the class as metric for the building footprint and the number of lines as building height, then you can see you high risk classes as big skyscrapers.
The dependency view is focussed on the dependencies within the given software project. It was necessary to do a hierarchical transformation of the input dependencies and to alter the 3D visualization to be able to create an understandable representation. The plugin now presents a new concept of the visualization of dependencies, uncovering the real architecture of the system.
This session will be structured in 3 parts:
- Why and how to integrate SonarQube in the software development process
- City code metaphor (explanation and demo)
- Dependency view (explanation and demo)