Description / Features
Overview
The Quality Index plugin combines a global measure (quality index) of quality with a measure of the method complexity (complexity factor).
The Quality Index measures 4 weighted axes of quality and combines them to give a global note between 0 and 10 to the project, 10 being the best.
Axes of quality
Coding
Coding violations: a PMD compliance index
Coding = (Blocker * 10 + Critical * 5 + Major * 3 + Minor + Info) / ValidLines
Where:
- ValidLines = Lines of Code - Duplicated Lines
- Blocker = number of PMD blocker violations
- Critical = number of PMD critical violations
- Major = number of PMD major violations
- Minor = number of PMD minor violations
- Info = number of PMD info violations
Complexity
Complexity = (Complexity>30 * 10 + Complexity>20 * 5 + Complexity>10 * 3 + Complexity>1) / ValidLines
Where:
- ValidLines = Lines of Code - Duplicated Lines
- Complexity>X = number of methods whose Complexity is greater than X
Coverage
Coverage = Code coverage by unit tests.
If there is no unit tests and thus no code coverage, the Coverage axis will get the worst grade.
Style
Style violations: a Checkstyle compliance index
Style = (Errors * 10 + Warnings) / ValidLines * 10
Where:
- ValidLines = Lines of Code - Duplicated Lines
- Errors = number of Checkstyle blocker violations + number of Checkstyle critical violations
- Warnings = number of Checkstyle major violations + number of Checkstyle minor violations + number of Checkstyle info violations
Quality Index
Quality Index = 10 - 4.5 * Coding - 2 * Complexity - 2 * Coverage - 1.5 * Style
Complexity Factor
The Complexity Factor measures the complexity density.
Complexity Factor = (5 * Complexity>30) * 100 / (Complexity>1 + Complexity>10 + Complexity>20 + Complexity>30)
Where:
- Complexity>X = number of methods whose Complexity is greater than X
Usage & Installation
1. Copy the jar into /extensions/plugins/ directory
2. Restart Sonar Web server
3. Launch a new quality analysis and the metrics will be fed
Changelog