📜  软件工程|循环复杂度

📅  最后修改于: 2021-01-09 14:58:02             🧑  作者: Mango

圈复杂度

循环复杂度是一种用于度量程序复杂度的软件度量。 Thomas J. McCabe于1976年开发了此度量标准。McCabe将计算机程序解释为一组强连接的有向图。节点代表源代码中没有分支的部分,弧代表程序执行期间可能的控制流转移。程序图的概念已用于此度量,它用于度量和控制通过程序的路径数。计算机程序的复杂度可以与图的拓扑复杂度相关。

如何计算环复杂度?

McCabe提出了图论的圈数V(G)作为软件复杂性的指标。圈数等于在其图形表示中通过程序的线性独立路径的数量。对于程序控制图G,圈数V(G)给出为:

V(G)= E-N + 2 * P

E =图形G中的边数

N =图G中的节点数

P =图形G中连接的组件数。

例:

圈复杂度的属性:

以下是圈复杂度的属性:

  • V(G)是图中独立路径的最大数量
  • V(G)> = 1
  • 如果V(G)= 1,则G将具有一条路径
  • 将复杂度降至10