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.
Here, E = 8, N = 9 and P = 1. Hence M = 8 - 9 + (2x1) = 1.
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.
You need to take more care to correctly insert the values into the formula.
In example 1, you say
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.)