流图(程序图)表示程序的控制流——McCabe方法度量程序空间复杂度
McCabe方法
McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度。
为了突出表现程序的控制流,人们通常使用流图(也称程序图)。
1、流图
所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。
(1)在流图中用圆表示结点,一个圆代表一条或多条语句
(2)程序流程图中的一个顺序的处理框序列和一个菱形判断框,可以映射成流图中的一个结点
(3)流图中的箭头称为边,它和程序流程图中的箭头线类似,代表控制流
(4)流图中一条边必须终止于一个结点,即使这个结点并不代表任何语句(实际上相当于一个空语句)
2、环形复杂度
环形复杂度定量度量程序的逻辑复杂度。
可以用下述三种方法中的任意一种来计算环形复杂度:
(1)流图中的区域数等于环形复杂度
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目
把程序流程图映射成流程图:(a)程序流程图(b)为流图
如图(a)所示,流图中有九条边,八个结点,流图G的环形复杂度V(G)=E-N+2,
所以V(G)=10-8+2=4 。
流图(程序图)表示程序的控制流——McCabe方法度量程序空间复杂度相关推荐
- 请画出计算机主机的装配工艺程序图,工艺程序图
工艺程序图,是工艺程序分析的主要分析工具,它是记录产品从原材料投入开始,经过各道工序加工为成品的生产过程图.它是按照工艺加工或装配的先后顺序从右向左依次画出,同时注明了各项材料和零件的进入点.规格.型 ...
- 环形复杂度,McCabe方法是什么?
原创不易,麻烦点个关注,点个赞,谢谢各位. 1. 流图 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度. 为了突出表示程序的控制流,人们通常使用流 ...
- P12- 软件复杂性 之度量、程序图、强连通图、McCabe度量法
[软考-软件设计师-历年真题-2013年上半年上午基础知识] 软件的复杂性主要体现在程序的复杂性.(30)是度量软件复杂性的一个主要参数.若采用McCabe度量法计算环路复杂性,则对于下图所示的程序图 ...
- 笔记-项目质量管理-过程决策程序图法
<系统集成项目管理工程师教程>的"10.2.2 制定项目质量计划所采用的主要方法.技术工具"节中指出: 制定项目质量管理计划一般采取效益/成本分析.基准比较.流程图.实 ...
- Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数
*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...
- 解决电脑桌面程序图标变白问题
解决电脑桌面程序图标变白 一.问题描述 二.解决方案 一.问题描述 最近在整理桌面时遇到这样一件可大可小的烦心事,那就是桌面图标变成了白色方块,这对于有强迫症的人来说是不允许发生的,查了很多资料,说是 ...
- 质量控制新七工具:亲和图、过程决策程序图、关联图、树形图、优先矩阵、活动网络图和矩阵图
①亲和图.亲和图与心智图相似.针对某个问题,产生出可联成有组织的想法模式的各种创意.在项目管理中,使用亲和图确定范围分解的结构,有助于WBS的制订. ②过程决策程序图(PDPC).用于理解一个目标与达 ...
- 【已解决】单个程序图标变白色怎么办?
方式一: 任务栏单个程序图标变白色; 右键点击任务栏中的白色程序图标; 找到程序名称,也就是第一项; 右键点击,菜单中选属性; 点击更改图标按钮; 此时会有错误提示; 浏览选中程序; 在图标选择窗口中 ...
- 数控车椭圆编程实例带图_数控车床加工椭圆的宏程序实例
随着数控技术不断进步, 数控车床加工中各种复杂形面也日渐增多, 如椭圆.抛物线.正弦曲线.余弦曲线.双曲线等各种非圆曲面.对于上述各种复杂成形面, 利用CAM 软件进行自动编程相对简单, 但由于种种原 ...
最新文章
- jQuery基础之(一)jQuery概述
- Android测量图像中物体大小,android – 加载图像后测量ImageView
- python不会英语不会数学怎么自学-英语和数学都不好,但是我想学Python编程可以吗?...
- 如何保证kafka消息的可靠性传递?
- 一文带你斩杀Python之Numpy☀️Pandas全部操作【全网最详细】❗❗❗
- root 红米note5_小米 红米NOTE5_刷机助手root-Android手机一键ROOT工具 - 线刷宝官网...
- 高通平台开发系列讲解(音频篇)Codec驱动移植步骤
- Qt Designer怎样加入资源文件
- 用tbtools基因家族分析《一》
- 【sketchup 2021】草图大师图像输出与渲染之Enscape渲染(优秀的实时渲染软件)的高级使用【灯光的添加、代理模型的添加、材质编辑器、视频编辑器、全景导出并编辑】
- Android常用设置
- Iterative closest point (ICP) 算法
- 复旦大学python教学视频_B站资源推荐:复旦大学机器学习、深度学习公开课,附PDF课件下载...
- 全国职业院校技能大赛(中职组)网络安全竞赛试题—解析
- LaTeX标点符号基础
- 服务器 稳定 重要性,云服务器 重要性
- 模拟光源 html5,光照渲染——用canvas模拟光照效果
- 基于Spark的巨型矩阵分布式LU计算求逆【第一篇】
- 洛谷 P2327 [SCOI2005] 扫雷
- Python 计算EMA(指数移动平均线)