Description / Features
Total Quality plugin combines four domains measures (architecture, design, code, and tests) in order to calculate a global and unified project quality health. Plugin provides metrics at project level only.
The default formula is :
TQ= 0.25*ARCH + 0.25*DES + 0.25*CODE + 0.25*TS
ARCH = 100 - TI
TI = Tangle Index
DES = 0.15*NOM + 0.15*LCOM + 0.25*RFC 0.25*CBO + 0.20*DIT
NOM = (1 - (class_complexity - 12) / (acel * 12)) * 50 + (1 - (method_complexity - 2.5) / (acel * 2.5)) * 50
LCOM = (1 - (lack_of_cohesion_of_method - 1) / (acel * 1)) * 100
RFC = (1 - (response_for_class - 50) / (acel * 50)) * 100
CBO = (1 - (efferent_coupling - 5) / (acel * 5)) * 100
DIT = (1 - (depth_of_inheritance_tree - 5) / (acel * 5)) * 100
acel is an accelerator factor whose value can be configured in the Sonar settings page.
The default threshold for each metric can be also configured (for instance, 50 is the default response_for_class threshold).
Code = 0.15*DOC + 0.45*RULES + 0.40*DRYNESS
DOC = Documented API density
RULES = Rules compliance index
DRYNESS = 100 - Duplicated lines density
Testing quality is based on coverage metric family (coverage, and test success).
Test = 0.80*COV + 0.20*SUC
COV = Code coverage
SUC = Unit Tests success density
Every limit and every formula should be configure with administration view.
If you want to remove a metric just do,
"ARCH=0.25 DESIGN=0.25 CODE=0.50 TESTS=0.00"
Known limitations and TODO
- See SONARPLUGINS-415
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
TQ 1.0.1 (1 issues)
|SONARPLUGINS-537||Some metrics are currently not reported in Views||Closed||Fixed|
TQ 1.0 (6 issues)
|SONARPLUGINS-427||Total Quality metrics should be calculated only at project level||Closed||Fixed|
|SONARPLUGINS-421||Add a widget to report on the dashboard||Closed||Fixed|
|SONARPLUGINS-419||Coverage for test index||Closed||Fixed|
|SONARPLUGINS-418||prefer "org.sonar.plugins.totalquality" as a package name for plugin||Closed||Fixed|
|SONARPLUGINS-417||Reformat your code according to Sonar code-style||Closed||Fixed|
|SONARPLUGINS-416||Total Quality Basic Features||Closed||Fixed|