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方法度量程序空间复杂度相关推荐

  1. 请画出计算机主机的装配工艺程序图,工艺程序图

    工艺程序图,是工艺程序分析的主要分析工具,它是记录产品从原材料投入开始,经过各道工序加工为成品的生产过程图.它是按照工艺加工或装配的先后顺序从右向左依次画出,同时注明了各项材料和零件的进入点.规格.型 ...

  2. 环形复杂度,McCabe方法是什么?

    原创不易,麻烦点个关注,点个赞,谢谢各位. 1. 流图 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度. 为了突出表示程序的控制流,人们通常使用流 ...

  3. P12- 软件复杂性 之度量、程序图、强连通图、McCabe度量法

    [软考-软件设计师-历年真题-2013年上半年上午基础知识] 软件的复杂性主要体现在程序的复杂性.(30)是度量软件复杂性的一个主要参数.若采用McCabe度量法计算环路复杂性,则对于下图所示的程序图 ...

  4. 笔记-项目质量管理-过程决策程序图法

    <系统集成项目管理工程师教程>的"10.2.2 制定项目质量计划所采用的主要方法.技术工具"节中指出: 制定项目质量管理计划一般采取效益/成本分析.基准比较.流程图.实 ...

  5. Java黑皮书课后题第4章:*4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上面的三个随机点,显示由这三个随机点组成的三角形的三个角的度数

    *4.6(图上的随机点)编写一个程序,产生一个圆心位于(0,0)原点半径为40的圆上的三个随机点,显示由这三个随机点组成的三角形的三个角的度数 题目 题目概述 破题 代码 题目 题目概述 *4.6(图 ...

  6. 解决电脑桌面程序图标变白问题

    解决电脑桌面程序图标变白 一.问题描述 二.解决方案 一.问题描述 最近在整理桌面时遇到这样一件可大可小的烦心事,那就是桌面图标变成了白色方块,这对于有强迫症的人来说是不允许发生的,查了很多资料,说是 ...

  7. 质量控制新七工具:亲和图、过程决策程序图、关联图、树形图、优先矩阵、活动网络图和矩阵图

    ①亲和图.亲和图与心智图相似.针对某个问题,产生出可联成有组织的想法模式的各种创意.在项目管理中,使用亲和图确定范围分解的结构,有助于WBS的制订. ②过程决策程序图(PDPC).用于理解一个目标与达 ...

  8. 【已解决】单个程序图标变白色怎么办?

    方式一: 任务栏单个程序图标变白色; 右键点击任务栏中的白色程序图标; 找到程序名称,也就是第一项; 右键点击,菜单中选属性; 点击更改图标按钮; 此时会有错误提示; 浏览选中程序; 在图标选择窗口中 ...

  9. 数控车椭圆编程实例带图_数控车床加工椭圆的宏程序实例

    随着数控技术不断进步, 数控车床加工中各种复杂形面也日渐增多, 如椭圆.抛物线.正弦曲线.余弦曲线.双曲线等各种非圆曲面.对于上述各种复杂成形面, 利用CAM 软件进行自动编程相对简单, 但由于种种原 ...

最新文章

  1. jQuery基础之(一)jQuery概述
  2. Android测量图像中物体大小,android – 加载图像后测量ImageView
  3. python不会英语不会数学怎么自学-英语和数学都不好,但是我想学Python编程可以吗?...
  4. 如何保证kafka消息的可靠性传递?
  5. 一文带你斩杀Python之Numpy☀️Pandas全部操作【全网最详细】❗❗❗
  6. root 红米note5_小米 红米NOTE5_刷机助手root-Android手机一键ROOT工具 - 线刷宝官网...
  7. 高通平台开发系列讲解(音频篇)Codec驱动移植步骤
  8. Qt Designer怎样加入资源文件
  9. 用tbtools基因家族分析《一》
  10. 【sketchup 2021】草图大师图像输出与渲染之Enscape渲染(优秀的实时渲染软件)的高级使用【灯光的添加、代理模型的添加、材质编辑器、视频编辑器、全景导出并编辑】
  11. Android常用设置
  12. Iterative closest point (ICP) 算法
  13. 复旦大学python教学视频_B站资源推荐:复旦大学机器学习、深度学习公开课,附PDF课件下载...
  14. 全国职业院校技能大赛(中职组)网络安全竞赛试题—解析
  15. LaTeX标点符号基础
  16. 服务器 稳定 重要性,云服务器 重要性
  17. 模拟光源 html5,光照渲染——用canvas模拟光照效果
  18. 基于Spark的巨型矩阵分布式LU计算求逆【第一篇】
  19. 洛谷 P2327 [SCOI2005] 扫雷
  20. Python 计算EMA(指数移动平均线)

热门文章

  1. IT界招聘信息免费发布专用帖
  2. node.js入门之child_process子进程
  3. a++ 和 ++a 的区别
  4. 30天自制操作系统-初体验
  5. less 使用入门教程
  6. 嘿!不备案不要HTTPS!小程序请求任意网站黑科技来了!
  7. 老客户回访与需求挖掘计划
  8. 幻数java题_java – ConcurrentModificationException的幻数
  9. Arnold渲染器与众不同的地方在于何处?
  10. mean IOU是什么意思