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

Metrics results for the project #112

@Kaivanov21

Description

@Kaivanov21

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions