-
Notifications
You must be signed in to change notification settings - Fork 161
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.