# Cyclomatic Complexity Measures

Every program encompasses statements to execute in order to perform some task and other decision-making statements that decide, what statements need to be executed. These decision-making constructs change the flow of the program.

If we compare two programs of same size, the one with more decision-making statements will be more complex as the control of program jumps frequently.

McCabe, in 1976, proposed Cyclomatic Complexity Measure to quantify complexity of a given software. It is graph driven model that is based on decision-making constructs of program such as if-else, do-while, repeat-until, switch-case and gotostatements.

Process to make flow control graph:

●      Break program in smaller blocks, delimited by decision-making constructs.

●      Create nodes representing each of these nodes.

●      Connect nodes as follows:

○    If control can branch from block i to block j

○    Draw an arc

○    From exit node to entry node

○    Draw an arc.

To calculate Cyclomatic complexity of a program module, we use the formula –

V(G) = e – n + 2

Where
e is total number of edges
n is total number of nodes

The Cyclomatic complexity of the above module is

e = 10
n = 8
Cyclomatic Complexity = 10 – 8 + 2
= 4

According to P. Jorgensen, Cyclomatic Complexity of a module should not exceed 10.