Calculation of Cyclomatic Complexity

tech_human picture tech_human · Feb 1, 2012 · Viewed 59.2k times · Source

I am at learning stage of cyclomatic complexity(CC). For practise, I am calculating cyclomatic complexity of 2 examples and want to confirm if my answers are correct or not...

Referring to wikipedia, CC is given by M = E − N + 2P where:

  • E = the number of edges of the graph
  • N = the number of nodes of the graph
  • P = the number of connected components

Please help.

Example 1

Here, E = 8, N = 9 and P = 1. Hence M = 8 - 9 + (2x1) = 1.

Example 2:

Example 2

Here E = 11, N = 10 and P = 1. Hence M = 10 - 11 + (2x1) = 1.

Hence for both the examples CC is 1. Please let me know if my calculation is correct or not.

Answer

flyx picture flyx · Feb 1, 2012

You need to take more care to correctly insert the values into the formula.

In example 1, you say

Here, E = 8, N = 9 and P = 1

But actually, it's the other way round: 9 edges (=E), 8 nodes (=N), so you get a CC of 3.

In example 2, you have the values right: E=11, N=10, P=1. But you insert them in the wrong order in the formula; it actually should be 11 - 10 + (2x1) = 3.

Shortcut: If you have a picture of your graph, you can very easily determine the cyclomatic complexity. Just count the number of regions the background is divided into by the edges. In your first example, you have 2 inner regions (bordered by the edges) and one surrounding region, giving a CC of 3. Same goes with the second example. (This method requires that edges are not crossing each other, obviously.)