1.程序图
1.1概述
-
用来表示程序结构的一种有向图
-
由圆圈和有向线段构成
-
圆圈(节点):执行语句
-
有向线段:程序执行方向
1.2作用
- 体现程序基本结构
- 反映程序结构复杂度
- 不关心源代码的细节
1.3程序图是简化的流程图
- 不区分语句的含义,对所有节点都采用圆圈表示
1.4程序图是压缩的流程图
-
忽略数据声明
-
忽略注释语句
-
压缩串行语句
-
压缩循环次数
左侧流程图中的5条语句——>(对应)右侧程序图中的A节点
2.环复杂度
- McCabe复杂性度量
- 是一种定量描述程序结构复杂度的度量模型
- 能够反映判定节点和循环的引入对程序结构以及执行路径数目带来的不利影响
2.1环复杂度的确定
2.1.1直观观察法
- 观察程序图将二维平面分割为封闭区域和开发区域的个数
-
2.1.2公式计算法
- 利用程序图包含的边和顶点的数量来计算环复杂度
- 环复杂度
V(G)=e-n+2
e
表示边的数量,n
表示顶点的数量- 需要满足 前提条件:
- 程序图中无孤立节点
- 程序图是强连通图(即双向连通)
直接套公式:V(G) = e - n + 2 = 10 - 7 + 2 = 5
2.1.3判定节点法
- 利用程序图包含的边和顶点的数量来计算环复杂度
- 环复杂度
V(G) = P + 1
P
表示判定节点的数量- 前提条件:仅计算两分支的判定节点