精华内容
下载资源
问答
  • McCabe度量法

    2021-04-05 11:55:40
    McCabe度量法是通过定义环路复杂度,建立程序复杂性的度量,它基于一个程序模块的程序图中环路的个数。 计算有向图G的环路复杂性的公式为:V(G)=m-n+2或V(G)=闭合区域+1 其中V(G)是有向图G中的环路个数,m是G...

    McCabe度量法

    McCabe度量法是通过定义环路复杂度,建立程序复杂性的度量,它基于一个程序模块的程序图中环路的个数。

    计算有向图G的环路复杂性的公式为:V(G)= m-n+2或V(G)= 闭合区域+1

    其中m是G中的有向弧数(边数),n是G中的节点数。

    例题

    (2009年上半年软件设计师上午试卷32题)McCabe度量法是通过定义环路复杂度,建立程序复杂性的度量,它基于一个程序模块的程序图中环路的个数。下图所示程序图的程序复杂度是()。

    A.2   B.3   C.4   D.5

    有向弧数:8
    节点数:7
    V(G)= 有向弧数-节点数+2 = 3
    闭合区域:2
    V(G)= 闭合区域+1 = 3

    (2009年下半年软件设计师上午试卷32题)某程序的程序图如下所示,运用McCabe度量法对其进行度量,其环路复杂度是()。

    A.2   B.3   C.4   D.5

    有向弧数:10
    节点数:7
    V(G)= 有向弧数-节点数+2 = 5
    闭合区域:4
    V(G)= 闭合区域+1 = 5

    (2010年上半年软件设计师上午试卷36题)某程序的程序图如下图所示,运用McCabe度量法对其进行度量,其环路复杂度是()。
    在这里插入图片描述
    A.4   B.5   C.6   D.8

    有向弧数:11
    节点数:7
    V(G) = 有向弧数-节点数+2 = 6
    封闭区域 = 5
    V(G) = 闭合区域+1 = 6

    (2010年下半年软件设计师上午试卷32题)McCabe度量法,以下程序图的复杂性度量值为()。
    在这里插入图片描述
    A.4   B.5   C.6   D.7

    有向弧数:9
    节点数:7
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G)= 封闭区域+1 = 4

    (2012年上半年软件设计师上午试卷33题)采用McCabe度量法计算下列程序图的环路复杂性为()。
    在这里插入图片描述
    A.2   B.3   C.4   D.5

    有向弧数:10
    节点数:9
    V(G) = 有向弧数-节点数+2 = 3
    封闭区域:2
    V(G) = 封闭区域+1 = 3

    (2012年下半年软件设计师上午试卷31题)采用McCabe度量法计算下图的环路复杂件为()。
    在这里插入图片描述
    A.2   B.3   C.4   D.5

    有向弧数:12
    节点数:10
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区间+1 = 4

    (2013年上半年软件设计师上午试卷31题)若采用McCabe度量法计算环路复杂性,则对于下图所示的程序图,其环路复杂度为()。
    在这里插入图片描述
    A.2   B.3   C.4   D.5

    有向弧数:11
    节点数:9
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2014年上半年软件设计师上午试卷32题) 采用McCabe度量法计算下列程序图的环路复杂性为()。
    在这里插入图片描述
    A.2   B.3   C.4   D.5

    有向弧数:12
    节点数:10
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2014年下半年软件设计师上午试卷35题) 采用McCabe度量法计算该程序图的环路复杂性为()。
    在这里插入图片描述
    A.3   B.4   C.5   D.6

    有向弧数:12
    节点数:11
    V(G) = 有向弧数-节点数+2 = 3
    封闭区域:2
    V(G) = 封闭区域+1 = 3

    (2015年上半年软件设计师上午试卷35题) 采用McCabe度量法计算下列程序图的环路复杂性为()。
    在这里插入图片描述
    A.2   B.3   C.4   D.5

    有向弧数:10
    节点数:8
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2015年下半年软件设计师上午试卷36题) 采用McCabe度量法算出该程序的环路复杂性为()。
    在这里插入图片描述
    A.1   B.2   C.3   D.4

    画图
    有向弧数:10
    节点数:8
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2016年上半年软件设计师上午试卷36题) 采用McCabe度量法计算下图所示程序的环路复杂性为()。
    在这里插入图片描述
    A.1   B.2   C.3   D.4

    有向弧数:11
    节点数:10
    V(G) = 有向弧数-节点数+2 = 3
    封闭区域:2
    V(G) = 封闭区域+1 = 3

    (2016年下半年软件设计师上午试卷33题)对下图采用McCabe度量法计算该程序的环路复杂性为()。
    在这里插入图片描述
    A.1   B.2   C.3   D.4

    补充有向弧和节点
    在这里插入图片描述
    有向弧数:13
    节点数:11
    V(G) = 有向弧-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2017年上半年软件设计师上午试卷36题)对下图所示的程序流程图采用 McCabe 度量法计算其环路复杂度为()。
    在这里插入图片描述
    A.1   B.2   C.3   D.4

    补充有向弧和节点
    在这里插入图片描述
    有向弧数:16
    节点数:14
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2018年上半年软件设计师上午试卷35题)对下图所示的程序流程图采用McCabe度量法计算器环路复杂度为()。
    在这里插入图片描述
    A.2   B.3   C.4  D.5

    补充有向弧和节点
    在这里插入图片描述
    有向弧数:13
    节点数:12
    V(G) = 有向弧数-节点数+2 = 3
    封闭区域:2
    V(G) = 封闭区域+1 = 3

    (2018年下半年软件设计师上午试卷35题)对以下的程序伪代码(用缩进表示程序块)采用McCabe度量法计算其环路复杂度为()。
    在这里插入图片描述
    A.2  B.3   C.4   D.5
    画图
    在这里插入图片描述
    补充有向弧和节点
    在这里插入图片描述
    有向弧数:20
    节点数:18
    V(G) = 有向弧数-节点数+2 = 4
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    (2019年下半年软件设计师上午试卷29题)下图采用McCabe度量计算该程序图的环路复杂性为()
    在这里插入图片描述
    A.3   B.4   C.5   D.6

    补全节点和有向弧
    在这里插入图片描述
    有向弧数:16
    节点数:14
    V(G) = 有向弧数-节点数+2 = 3
    封闭区域:3
    V(G) = 封闭区域+1 = 4

    展开全文
  • 软考必考题型之McCabe度量法

    千次阅读 多人点赞 2019-03-25 00:06:51
    McCabe度量法是一种基于程序控制流的复杂性度量方法。 McCabe复杂性度量又称环路度量,其计算公式为: V(g)=m-n+2,其中m和n分别代表图中的边数和顶点数。 下面来分析几道往年软考例题 (2016年上半年试题)对下图所示...

    McCabe概念:

    McCabe度量法是一种基于程序控制流的复杂性度量方法。
    McCabe复杂性度量又称环路度量,其计算公式为: V(g)=m-n+2,其中m和n分别代表图中的边数顶点数

    下面来分析几道往年软考例题

    1. (2016年上半年试题)对下图所示流程图采用白盒测试方法进行测试,若要满足路径覆盖,则至少需要___个测试用例。采用McCabe度量法计算该程序对环路复杂性为___。
      16年例题
      路径覆盖是指设计若干个测试用例,覆盖程序中的所有路径。
      上图中一共有6条路径:12345678,1234568,1235678,123568,12678,1268。
      根据McCabe度量法环路复杂性公式V(g)=m-n+2,图中m=10,n=8,V(g)=10-8+2=4。
      那么答案应是:6个用例,环路复杂度为4。
    2. (2015年上半年试题)若采用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要___个测试用例。采用McCabe度量法算出该程序的环路复杂性为___。
    int find_max(int i, int j, int k){
        int max;
        if(i > j) {
            if(i > k){
               max = i;
            } else {
               max = k;
            }
        } else {
            if(j > k) {
                max = j;
            } else {
                max = k;
            }
        }
        return max;
    }
    

    先画出该代码的流程图,如下:
    15年例题
    要满足条件覆盖,要求三个判断框的Y和N至少要经过一次,即:1Y2Y,1Y2N,1N3Y,1N3N,至少需要4个测试用例。
    根据McCabe度量法环路复杂性公式V(g)=m-n+2,图中m=9,n=7, V(g)=9-7+2=4。
    那么答案应是:4个用例,环路复杂度为4。

    展开全文
  • McCabe度量法计算程序的环路复杂性: 3.软件测试的目的在于希望以最少的人力和时间发现潜在的各种错误和缺陷。 4.内聚类型: 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:处理元素...

    McCabe度量法计算程序的环路复杂性:
    在这里插入图片描述

    展开全文
  • McCabe度量法McCabe度量法是由托马斯·麦克凯(Thomas McCabe)提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序图的复杂性。单一的顺序结构...

    1. 定义和介绍

    McCabe度量法:(来自百度百科)McCabe度量法是由托马斯·麦克凯(Thomas McCabe)提出的一种基于程序控制流的复杂性度量方法。
    McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序图的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越多,程序就越复杂。这种方法以图论为工具,先画出程序图,然后用该图的环路数作为程序复杂性的度量值。程序图是退化的程序流程图。也就是说,把程序流程图的每一个处理符号都退化成一个结点原来连接不同处理符号的流线变成连接不同结点的有向弧,这样得到的有向图就叫做程序图。
    程序图仅描述程序内部的控制流程,完全不表现对数据的具体操作分支和循环的具体条件。因此,它往往把一个简单的if语句与循环语句的复杂性看成是一样的。

    根据图论,在一个强连通的有向图G中,环的个数V(G)由以下公式给出:
    V(G)=m-n+2p其中,V(G)是有向图G中环路数,m是图G中数,n是图G中结点数,p是图G中强连通分量个数。

    2. 相关概念:

    强连通(Strongly Connected)是指一个有向图(Directed Graph)中任意两点v1、v2间存在v1到v2的路径(path)及v2到v1的路径。也即两个节点之间形成了回路。

    连通 :一个图中,两个节点之间有路径相连。

    如果将一个有向图所有有向边替换为无向边之后的无向图是连通的,则被称作弱连通(weakly connected)。如果对于任意一对顶点u,v,或者存在一条从u到v的有向路径,或者存在一条从v到u的有向路径,则该图是单连通(unilaterally conncected)的。如果对于如果对于任意一对顶点u,v,同时存在一条从u到v的有向路径和一条从v到u的有向路径,则该图是强连通(strongly connected)的。

    强连通分量则是指一张有向图G的极大强连通子图G’。如果将每一个强连通分量缩成一个点,则原图G将会变成一张有向无环图。

    连通子图:一个图是另外一个图的子图,并且它连通。

    极大(强)连通子图:一个图的(强)连通子图,并且加入任何一个不在它的点集中的点都会导致它不再(强)连通。

    一般的程序流程图/程序框图,大多数节点之间的连接都是依时间顺序单向的(程序流程图不考虑循环重复调用语句的情况)。为了能够使用McCabe度量法进行环路复杂度的测度,一般假设程序的出口处有一条虚线连接回入口处,使得程序流程图成为强联通图。因而使用该公式时,强联通分量p取2。

    3. 两个例子

    例1. 对下图所示流程图采用白盒测试方法进行测试,若要满足路径覆盖,则至少需要( 1 )个测试用例。采用McCabe度量法计算该程序对环路复杂性为( 2 )。
    在这里插入图片描述
    路径覆盖是指设计若干个测试用例,覆盖程序中的所有路径。
    上图中一共有6条路径:12345678,1234568,1235678,123568,12678,1268。
    根据McCabe度量法环路复杂性公式V(g)=m-n+2,图中m=10,n=8,V(g)=10-8+2=4。
    那么答案应是:6个用例,环路复杂度为4。

    例2. 若采用白盒测试方法测试以下代码,并满足条件覆盖,则至少需要( )个测试用例。采用McCabe度量法算出该程序的环路复杂性为( )。

    int find_max(int i, int j, int k){
        int max;
        if(i > j) {
            if(i > k){
               max = i;
            } else {
               max = k;
            }
        } else {
            if(j > k) {
                max = j;
            } else {
                max = k;
            }
        }
        return max;
    }
    
    

    先画出该代码的流程图,如下:
    在这里插入图片描述
    要满足条件覆盖,要求三个判断框的Y和N至少要经过一次,即:1Y2Y,1Y2N,1N3Y,1N3N,至少需要4个测试用例。
    根据McCabe度量法环路复杂性公式V(g)=m-n+2,图中m=9,n=7, V(g)=9-7+2=4。
    那么答案应是:4个用例,环路复杂度为4。

    总结

    比较重要的部分是清晰地界定好概念,以及根据程序语句准确画出程序流程图。

    展开全文
  • McCabe度量法,java函数

    2020-02-24 17:32:29
    McCabe度量法,java函数 1.McCabe度量法计算环路复杂性 A.流程图中边与节点围成的区域 判断节点有两条及以上输出弧(蓝色的) 使用用于流程图中的区域数计算,环形复杂度V(G)=D,D为区域数,环形复杂度,线性无关区域 ...
  • McCabe度量法题型1.程序流程图转化为结点图(流图)1.1 画图中所需注意要点1.2化简实例2.观察结点图(流图) McCabe度量法 1.程序流程图转化为结点图(流图) 2.观察,根据结点图得出结点数和边数,强连通分量,带入...
  • 计算公式:V(G)=E-N+2E为流程图的边数,N为流程图的节点数例如(2016年下半年软考中级试题):
  • McCabe度量方法计算程序复杂度

    万次阅读 多人点赞 2016-11-04 14:32:08
    软考软件设计师McCabe环路复杂度,09年的两个题,为什么不一样?—from 百度知道 为什么上半年的答案是8-7+2=3 弧数为8,节点为7,没问题; 下半年的却是9-7+2=4 下半年的弧为什么不是10呢 ?谢谢! 这个啊,我...
  • McCabe度量法是由托马斯·麦克凯提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序图的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越...
  • mccabe计算环路复杂度

    万次阅读 2016-05-05 11:24:13
    采用McCabe度量法计算该程序图的环路复杂性为()。 环形复杂度定量度量程序的逻辑复杂度。描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。 (1)流图中的区域数等于环形复杂度。 (2...
  • McCabell:主要是度量程序的复杂度。 环形复杂度:度量程序的逻辑复杂度。描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。 (1)流图中的区域数等于...这种环路度量法,计算的思路是这...
  • McCabe环路复杂度计算

    千次阅读 2017-08-19 09:46:54
    环路复杂度用来定量度量程序的逻辑复杂度。以McCabe方法来表示。 在程序控制流程图中,节点是程序中代码的最小单元,边代表节点间的程序流。一个有e条边和n个节点的流程图F,可以用下述3种方法中的任何一种来计算...
  • 环路复杂度用来定量度量程序的逻辑复杂度。以McCabe方法来表示。 在程序控制流程图中,节点是程序中代码的最小单元,边代表节点间的程序流。一个有e条边和n个节点的流程图F,可以用下述3种方法中的任何一种来计算...
  • McCabe环路复杂度计算方法

    万次阅读 多人点赞 2017-11-26 10:47:10
    软考的McCabe这种题型来说几乎每次都考,那么我来讲讲如何计算以及题型的分类: 形复杂度定量度量程序的逻辑复杂度:描绘程序控制流的流图之后, 可以用下述3种方法中的任何一种来计算环形复杂度。 (1...
  • 程序复杂性度量

    千次阅读 2010-05-12 16:19:00
     减少程序复杂性,可提高软件的简单性和可理解性,并使软件开发费用减少,开发周期缩短,软件内部潜藏错误减少 一、代码行度量法 度量程序的复杂性,最简单的方法就是统计程序的源代码行数。此方法基于两个前提:...
  • 软考软件设计师McCabe环路复杂度计算方法

    万次阅读 多人点赞 2015-11-05 14:41:53
    软考软件设计师McCabe环路复杂度计算方法
  • 11、MaCabe 度量法  环路图的复杂性=M-N+2 13、RGB 8:8:8 表示每个像素用8位表示,共计有2的8次方中可能。这里三种都为8,则共有2的24次方种 14、各种图所描述的模型  ER图:数据模型,描述现实世界的概念模型...
  • 环形复杂度,McCabe方法是什么?

    千次阅读 2019-12-13 14:15:18
    McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。 为了突出表示程序的控制流,人们通常使用流图(也称为程序图)。所谓流图实质上是“退化了的”程序流程图,它...
  • 软件源码复杂度度量方法

    千次阅读 2018-03-20 20:35:47
    软件源码复杂度度量方法主要有三种:代码行、Helstead方法、McCabe方法(环形复杂度)代码行: 代码行方法...代码行度量法只是一个简单的、估计得很粗糙的方法。 Helstead方法: 思路是根据程序中可执行代码行的...
  • McCabe度量法是由托马斯·麦克凯提出的一种基于程序控制流的复杂性度量方法。McCabe复杂性度量又称环路度量。它认为程序的复杂性很大程度上取决于程序图的复杂性。单一的顺序结构最为简单,循环和选择所构成的环路越...
  • 程序复杂性度量原则2.McCabe度量法 软件度量用于对产品及开发产品的过程进行度量。 软件产品、软件过程、资源都具有外部属性和内部属性。 外部属性(指面向管理者和用户的属性,体现了软件产品/软件过程与相关资源...
  • 软件设计-结构化设计、McCabe

    千次阅读 2019-04-25 18:51:17
    McCabe度量法3.1 环路复杂度的两种计算方法 1. 软件设计 从工程管理的角度,将软件设计分为: 概要设计阶段 详细设计阶段 从技术的角度,将软件设计分为: 体系结构设计 数据设计 接口设计 过程设计 2. 模块...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 592
精华内容 236
关键字:

mccabe度量法