-
Notifications
You must be signed in to change notification settings - Fork 160
Metrics results for the project #112
Description
I run some metrics to your project by Metrics Reloaded plugin in context of my academic project.
Some of the most important results :
1. Chidamber-Kemerer metrics:
| Name of metrics | Good range | Actual values |
|---|---|---|
| WMC (number of methods per class) | 20-50 | 20,79 |
| DIT (maximum inheritance path from class to root class) | < 5 | 3,12 |
| NOC (Number of Children) | high NOC | 0,37 |
| CBO (Coupling between Object Classes) | <= 14 | 7,52 |
| RFC (Response for a Class) | low RFC | 21,89 |
| LCOM (Lack of Cohesion of Methods) | low LCOM | 2,81 |
So as we can see all results are in good ranges.
2. Complexity metrics:
| Name of metrics | Good range | Actual values |
|---|---|---|
| v(G) = Cyclomatic complexity | 1-4 is low complexity, 5-7 indicates medium complexity, 8-10 is high complexity and 11+ is very high | 2,37 |
| iv(G) = Design complexity | <= 8 | 1,75 |
| ev(G) = Essential cyclometric complexity | <= 3 | 1,5 |
| CogC = Cognitive Complexity | <=15 | 1,83 |
So as we can see all results are in good ranges.
3. MOOD metrics
| Name of metrics | Good range | Actual values |
|---|---|---|
| AHF = attribute hiding factor | high AHF | 70,95% |
| AIF = attribute inheritance factor | from 0% to 48%. | 88,83% |
| CF = coupling factor | <= 12% | 4,53% |
| MHF = method hiding factor | from 8% to 25%. | 19,50% |
| MIF = method inheritance factor | from 20% to 80%. | 33,10% |
| PF = polymorphism factor | Not defined | 63,18% |
So as we can see we have one bad value AIF = 88,83% with good range from 0 % to 48 %
AIF should be in a reasonable range, not too low and not too high either. Too high a value indicates either superfluous inheritance or too wide member scopes.
The acceptable AIF range is 0% to 48%. Another view is that AIF should ideally be zero because all variables should be declared Private.
So maybe we need some improvements there.
4. Martin metrics
| Name of metrics | Good range | Actual values |
|---|---|---|
| A = Abstractness | near 0 or near 1 | 0,19 |
| Ca = Afferent coupling | from 0 to 500 | 107,26 |
| Ce = Efferent coupling | from 0 to 20 | 107,77 |
| D = distance from the main sequence | low D | 0,46 |
| I = Instability | from 0 to 0,3 or from 0,7 to 1 | 0,5 |
So as we can see we have one bad value Ce = 107,77 with good range from 0 to 20
The high value of the metric Ce> 20 indicates instability of a package, change in any of the numerous external classes can cause the need for changes to the package. Preferred values for the metric Ce are in the range of 0 to 20, higher values cause problems with care and development of code.
The second bad value is I = 0,5 with good range from 0 to 0,3 or from 0,7 to 1
Preferred values for the metric I should fall within the ranges of 0 to 0.3 or 0.7 to 1. Packages should be very stable or unstable, therefore we should avoid packages of intermediate stability.
As conclusion I would like to say that the main number of metrics in this project is in a good range, but also there are some points that can be improved.



