软考软件设计师McCabe环路复杂度计算方法
2015-11-05 14:41
246 查看
软考的McCabe这种题型来说几乎每次都考,那么我来讲讲如何计算以及题型的分类:
形复杂度定量度量程序的逻辑复杂度:描绘程序控制流的流图之后,
可以用下述3种方法中的任何一种来计算环形复杂度。
(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
自己是这样理解的:
这种环路度量法,计算的思路是这样的:它是考虑控制的复杂程度,即条件选择的分支繁杂程度
例一
如图:
根据公式:
V(G)=E-N+2
10 - 8 + 2 = 4
则得出答案选择 C.
例二:
根据公式:
V(G)=E-N+2
8 - 6 + 2 = 4 选 C
例三:
方法一:
流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
有了前面的分析,现在就好做了:
上图:8-7+2=3
下图:9-7+2=4(注意E不是10,因为G节点的自环弧线要忽略掉)
方法二:
流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
判断节点:
上图:C,E, 2个点,复杂度2+1=3
下图:C.E.D 3个点,复杂度3+1=4
形复杂度定量度量程序的逻辑复杂度:描绘程序控制流的流图之后,
可以用下述3种方法中的任何一种来计算环形复杂度。
(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
自己是这样理解的:
这种环路度量法,计算的思路是这样的:它是考虑控制的复杂程度,即条件选择的分支繁杂程度
例一
如图:
根据公式:
V(G)=E-N+2
10 - 8 + 2 = 4
则得出答案选择 C.
例二:
根据公式:
V(G)=E-N+2
8 - 6 + 2 = 4 选 C
例三:
方法一:
流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
有了前面的分析,现在就好做了:
上图:8-7+2=3
下图:9-7+2=4(注意E不是10,因为G节点的自环弧线要忽略掉)
方法二:
流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
判断节点:
上图:C,E, 2个点,复杂度2+1=3
下图:C.E.D 3个点,复杂度3+1=4
相关文章推荐
- android中出现support中引用的类找不到
- ImportError: No module named redis
- 杭电ACM1150
- JavaScript高级程序设计之DOM 扩展之HTML5之自定义数据属性第11.3.5讲
- linux启动关闭tomcat
- UNITY 5.2 Time类
- 浮点型丢失精度解决办法
- static_cast和reinterpret_cast
- ImageLoader进阶(结合ListView、ViewPager使用)
- 使用Log4j记录日志说明
- Logback学习笔记
- Xshell配色方案说明
- java socket编程中backlog的含义
- 初学Mybaties连接oracle/Mysql数据库 基于eclipse/myeclipse的开发环境
- vs2013 快捷键整理
- 使用Qt开发中国象棋(六):将军和死棋检测
- 数组排序系列 sortedArrayUsingComparator
- Android学习路线
- Tutorial: Loading Wave files in OpenAL without ALUT
- Apache Kafka源码分析 - ReplicaStateMachine