Cyclomatic Complexity Of A Program
环复杂性定义
we define the cyclomatic complexity (CC) of a graph as follows[18]:
For a graph G=(V,E) which consists of P connected components, the cyclomatic complexity
M = E - V + 2P
一段程序的循环复杂度是其线性独立路径的数量。若程序中没有像IF指令或FOR循环的控制流程,因为程序中只有一个路径,其循环复杂度为1,若程序中有一个IF指令,会有二个不同路径,分别对应IF条件成立及不成立的情形,因此循环复杂度为2。
数学上,一个结构化程序[note 1]的循环复杂度是利用程序的控制流图来定义,控制流图是一个有向图,图中的节点为程序的基础模块,若一个模块结束后,可能会运行另一个模块,则用箭头链接二个模块,并标示可能的运行顺序。循环复杂度M可以用下式定义[2]:
M = E - N + 2P
其中
- E 为图中边的个数
- N 为图中节点的个数
- P 为连接组件的个数