Skip to content
This repository has been archived by the owner on Mar 29, 2023. It is now read-only.

Metrics results for the project #112

Open
Kaivanov21 opened this issue Sep 27, 2021 · 0 comments
Open

Metrics results for the project #112

Kaivanov21 opened this issue Sep 27, 2021 · 0 comments

Comments

@Kaivanov21
Copy link

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:

image

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:

image

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

image

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

image

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.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant