软考学习之关于McCabe环路复杂度的计算

您所在的位置:网站首页 最大圈复杂度计算 软考学习之关于McCabe环路复杂度的计算

软考学习之关于McCabe环路复杂度的计算

2024-06-11 21:38| 来源: 网络整理| 查看: 265

McCabe环路复杂度计算

环路复杂度用来定量度量程序的逻辑复杂度。以McCabe方法来表示。

McCabe度量法是由托马斯·麦克凯提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序图的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。

 

在程序控制流程图中,节点是程序中代码的最小单元,边代表节点间的程序流。一个有e条边和n个节点的流程图F,可以用下述3种方法中的任何一种来计算环形复杂度。

(1)流图中的区域数等于环形复杂度。 (2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。 (3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

(最好使用第二种方法进行计算)

环路复杂度越高,程序中的控制路径越复杂。  

2009年试题:

软件设计师Mccabe试题

 使用第1种方法:

上图:共有判断节点2个,把整个平面分成3块,即C节点将区域分为2,而E节点再将C的右区域分为2,C的左区域1加上右区域2,因此复杂度为3;

下图:共有判断节点3个,把整个平面分为4块,即C节点将区域分为2,而D节点再将C的左区域分为2,E节点再将C的右区域分为2,C的左区域加上右区域,因此复杂度为4

使用第2种方法:

流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。

上图:8-7+2=3

下图:9-7+2=4(此处E为9非10,因为环路度量法,它是考虑控制的复杂程度,即条件选择的分支繁杂程度,而G节点并没有涉及到程序控制分支,G节点的自环弧线要忽略掉)

使用第3种方法计算:

流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。

上图:C,E 2个点,复杂度2+1=3

下图:C, E, D 3个点,复杂度3+1=4

 

 

 

下图所示的程序流程图中有( )条不同的简单路径。采用McCabe度量法计算该程序图的环路复杂性为()。

环形复杂度定量度量程序的逻辑复杂度。描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。 (1)流图中的区域数等于环形复杂度。 (2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。 (3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。 这种环路度量法,计算的思路是这样的:它是考虑控制的复杂程度,即条件选择的分支繁杂程度。 图中有3次简单的判断。故3条简单路径,形成3块环形区域,区域复杂度为3。

乐意黎 http://blog.csdn.net/aerchi/article/details/52983673



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3