本文概述
循环复杂度是一种用于度量程序复杂度的软件度量。托马斯·麦凯布(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
评论前必须登录!
注册