Full documentation for SonarQube has moved to a new location: http://docs.sonarqube.org/display/SONAR

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

This plugin is an implementation of the Toxicity Chart visualization technique presented by Erik Dörnenburg on his blog. This technique is very useful to quickly get an idea about of the general quality of the a large existing code base. Toxicity Charts stack multiple static analysis metrics for classes, methods, or components within an application, providing a combined "toxicity" score for each area of the code base. This can be extremely useful in helping managers and non-developers understand the internal quality of the code

...

Axes of quality

All the metrics are computed using the approach presented above.

File Length

Total of points accumulated due to the violation of Checkstyle File Length rule. The possible associated technical debts are: Understandability, Maintainability and Single Responsibility Principle violation.

Method Length

Total of points accumulated due to the violation of Checkstyle Method Length rule. The possible associated technical debts are: Understandability, Maintainability and Single Responsibility Principle violation.

Cyclomatic Complexity

Total of points accumulated due to the violation of Checkstyle Cyclomatic Complexity rule. The possible associated technical debts are: Understandability, Maintainability and Testability.

Parameter Number

Total of points accumulated due to the violation of Checkstyle Parameter Number rule. The possible associated technical debts are: Understandability, Maintainability and Testability.

Boolean Expression Complexity

Total of points accumulated due to the violation of Checkstyle Boolean Expression Complexity rule. The possible associated technical debts are: Understandability, Maintainability and Testability.

Nested If Depth

Total of points accumulated due to the violation of Checkstyle Nested If Depth rule. The possible associated technical debts are: Understandability, Maintainability and Testability.

Nested Try Depth

Total of points accumulated due to the violation of Checkstyle Nested Try Depth rule. The possible associated technical debts are: Understandability, Maintainability and Testability.

Missing Switch Default

Total of points accumulated due to the violation of Checkstyle Missing Switch Default rule. The possible associated technical debt is: Correctness.

Class Fan Out Complexity

Total of points accumulated due to the violation of Checkstyle Class Fan out Complexity rule. The possible associated technical debts are: Understandability, Maintainability, Testability and High Coupling.

Class Data Abstraction Coupling

Total of points accumulated due to the violation of Checkstyle Class Data Abstraction Coupling rule. The possible associated technical debts are: Understandability, Maintainability, Testability and High Coupling.

Anon Inner Length

Total of points accumulated due to the violation of Checkstyle Anon Inner Length rule. The possible associated technical debt is: Maintainability.

Average value

Total of points accumulated due violation of all above rules divided by the number of classes that score more than one point.

Anchor
ToxicityChartConfiguration
ToxicityChartConfiguration
Include Page
Include - Plugin Installation
Include - Plugin Installation

Usage

  1. Check on Quality Profile page if the below Make sure the Checkstyle Rules listed below are enabled in your profile and that the threshold values are set appropriateappropriately.
  2. Launch a new quality analysis and to calculate the metrics will be fed.

The table below lists the Checkstyle rules that should be enabled in order to generate the Toxicity Chart. The threshold values are just suggestions and they can be modified to fit the desired Quality Profile.

 

Checkstyle RuleLevelThreshold
File Lengthfile500
Method Lengthmethod30
Cyclomatic Complexitymethod10
Parameter Numbermethod7
Boolean Expression Complexitystatement3
Nested If Depthstatement3
Nested Try Depthstatement2
Missing Switch Defaultstatement-
Class Fan Out Complexityclass30
Class Data Abstraction Couplingclass10
Anon Inner Lengthinner class35

 

...