环复杂性定义

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 为连接组件的个数