Name |
SIG Maintainability Model Plugin |
Authors |
Roland Schmaderer, Olivier Gaudin |
Jira |
http://jira.codehaus.org/browse/SONARPLUGINS/component/13990 |
Latest version |
0.1 |
License |
LGPL v3 |
Download sources |
|
Download jar |
Compatibility matrix
Plugin |
0.1 |
|---|---|
Sonar |
1.11+ |
Description / Features
This plugin is an implementation of the Software Improvement Group(SIG) Maintainability Model.
The model is a 2 steps approach: calculate base indicators and then combine them to get higher level ones.
Every indicator results to a 5-levels ranking from -- (very bad)to ++ (very good).
The first step is to evaluate base metrics.
Volume: based on the number of lines of code
Rank |
LOC |
|---|---|
-- |
> 1310000 |
- |
> 655000 |
0 |
> 246000 |
+ |
> 66000 |
++ |
> 0 |
Duplications: based on the density of duplications
Rank |
Duplication |
|---|---|
-- |
> 20% |
- |
> 10% |
0 |
> 5% |
+ |
> 3% |
++ |
> 0% |
Unit tests: based on the coverage of the application by unit tests
Rank |
Coverage |
|---|---|
++ |
> 95% |
+ |
> 80% |
0 |
> 60% |
- |
> 20% |
-- |
> 0% |
Complexity: based on the cyclomatic complexity of methods
A first pass consists in determining the percentage of LOC belonging to methods that are in a certain range of complexity
Eval |
Complexity |
|---|---|
Very high |
> 50 |
High |
> 20 |
Medium |
> 10 |
Low |
> 0 |
Then based on the distribution, we use the following table to evaluate the rank :
Rank |
Medium |
High |
Very High |
|---|---|---|---|
++ |
< 25% |
< 0% |
< 0% |
+ |
< 30% |
< 5% |
< 0% |
0 |
< 40% |
< 10% |
< 0% |
- |
< 50% |
< 15% |
< 5% |
Rank is -- otherwise
Unit size: based on the lines of code of methods
A first pass consists in determining the percentage of LOC belonging to methods that are in a certain range of LOCS
Eval |
LOCs |
|---|---|
Very high |
> 100 |
High |
> 50 |
Medium |
> 10 |
Low |
> 0 |
Then based on the distribution, we use the following table to evaluate the rank :
Rank |
Medium |
High |
Very High |
|---|---|---|---|
++ |
< 25% |
< 0% |
< 0% |
+ |
< 30% |
< 5% |
< 0% |
0 |
< 40% |
< 10% |
< 0% |
- |
< 50% |
< 15% |
< 5% |
Rank is -- otherwise
The second step is to combine them, by doing a simple average, using the following mapping table :
|
Volume |
Complexity |
Duplications |
Unit size |
Unit tests |
|---|---|---|---|---|---|
analysability |
|
|
|
|
|
changeability |
|
|
|
|
|
stability |
|
|
|
|
|
testability |
|
|
|
|
|
and therefore obtain 4 advanced indicators representing the 4 axes of maintainability of a software.
Optionally, the 4 indicators can be combined to give the maintainability ranking.

It is to be noted that the color of the spider represents the actual combined value, from RED = -- to GREEN = ++
Usage & Installation
1. Copy the jar into /extensions/plugins/ directory
2. Restart Sonar Web server
3. Launch a new quality analysis
Known limitations
TBD

