The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Analizo::Metric::AverageCycloComplexity - Average Cyclomatic Complexity per Method (ACCM) metric

DESCRIPTION

The metric calculation is based on the following article and calculates the cyclomatic complexity of the program.

Article: McCabe, Thomas J. "A complexity measure." IEEE Transactions on software Engineering 4 (1976): 308-320.

The Average Cyclomatic Complexity per Method is calculated counting the predicates (i.e., decision points, or conditional paths) on each method plus one, then a mean of all methods is returned as the final value of ACCM.

The cyclomatic complexity of a program represented as a graph can be calculated using a formula of graph theory:

  v(G) = e - n + 2

Where e is the number of edges and n is the number of nodes of the graph.

Another good reference is: Woodward, Martin R., Michael A. Hennell, and David Hedley. "A measure of control flow complexity in program text." IEEE Transactions on Software Engineering 1 (1979): 45-50.