流图(程序图)表示程序的控制流——>McCabe方法度量程序空间复杂度

2023-10-27

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 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流图(程序图)表示程序的控制流——>McCabe方法度量程序空间复杂度 的相关文章

  • 正确的认识乱码与编码

    文章目录 编码的本质 乱码的几个例子及思考解决方案 浏览器输入到后端乱码 后端返回浏览器乱码 java 枚举类乱码 数据库存储乱码 Linux系统显示乱码 总结 编码的本质 编码将内存字节作用于磁盘文件或者网络文件的过程 是将磁盘文件 网络
  • 软件工程:(四)概要设计

    一 定义 概要设计是一个设计师根据用户交互过程和用户需求来形成交互框架和视觉框架的过程 其结果往往以反映交互控件布置 界面元素分组以及界面整体板式的页面框架图的形式来呈现 这是一个在用户研究和设计之间架起桥梁 使用户研究和设计无缝结合 将对
  • 合肥工业大学 软件学院 软件质量保证与测试 第九章 软件测试

    文章目录 第九章 软件测试 1 软件测试概述 1 1 软件测试的定义 1 2 软件测试的目的 2 软件测试过程 3 软件测试类型 3 1 单元测试 3 2 集成测试 测试方法 3 3 系统测试 3 4 验收测试 3 5 回归测试 3 6 补
  • 【软件工程】静态测试与动态测试

    静态测试 桌前检查 代码走查 代码审查 动态测试 黑盒测试 等价类划分 确定无效与有效等价类 设计用例尽可能多的覆盖有效类 设计用例只覆盖一个无效类 边界值分析 处理边界情况时最容易出错 选取的测试数据应该恰等于 稍小于或稍大于边界值 错误
  • 软件工程毕业设计选题大全 毕设题目推荐

    文章目录 0 前言 1 题目推荐 2 开题指导 2 1 起因 2 2 如何避坑 重中之重 2 3 为什么这么说呢 2 4 难度把控 2 5 题目名称 3 最后 0 前言 这是学长亲手整理的 软件工程毕设选题系列第三篇 都是经过学长精心审核的
  • 【基于深度学习的生活垃圾分类识别管理可视化系统-哔哩哔哩】 https://b23.tv/0UBohX2

    基于深度学习的生活垃圾分类识别管理可视化系统 哔哩哔哩 https b23 tv 0UBohX2 https b23 tv 0UBohX2
  • 17、系统设计篇-技术选型

    技术选型 就是在两个或多个技术方案中选择适合当前项目情况的方案 技术选型不仅是个技术的选择 也是一个和项目情况密切相关的项目决策 技术选型 本质上是项目决策的一种 要做好技术选型 就是要做好项目决策 一 项目决策需考虑的角度 1 时间 范围
  • [管理与领导-69]:IT基层管理者 - 辅助技能 - 4- 职业发展规划 - 评估自己、下属、老板的职业性格

    目录 前言 一 心理学上性格 1 1 心理学 1 2 知情意行 1 3 心理学性格 1 4 四大生理人格特征 1 4 1 外向型 1 4 2 内向型 1 5 大五人格特质理论 二 霍兰德社会职业兴趣类型 2 1 霍兰德六型的简要描述 2 2
  • 软工导论知识框架(五)面向对象方法学

    传统软件工程方法学适用于中小型软件产品开发 面向对象软件工程方法学适用于大型软件产品开发 一 四要素 对象 类 继承 传递消息实现通信 二 概念 1 对象 具有相同状态的一组操作的集合 对状态和操作的封装 2 类 对具有相同状态和相同操作的
  • 什么是决策表?什么是决策树?

    决策树 是在已知各种情况发生概率的基础上 通过构成决策树来求取净现值的期望值大于等于零的概率 评价项目风险 判断其可行性的决策分析方法 是直观运用概率分析的一种图解法 这种决策分支画成图形很像一棵树的树干 故称决策树 它是一种树形结构 每个
  • 推荐111个软件工程本科的计算机毕业设计,有手就会

    对于即将挑战计算机专业毕业设计的学子们 是否已经为选题和项目感到焦虑 今天 我们为即将毕业的学生提供了大量的毕业设计项目 期望对于正在为毕业设计挠头的同学们有所助益 一 成品列表 以下所有springboot框架项目的源码博主已经打包好上传
  • [需求管理-4]:需求分析全过程:需求分析+资源评估+项目计划

    前言 需求收集后 需要经过漫长的需求分析和所需要评估过程 才能正式在某个软件版本中实现需求 在软件开发人员通过编程实现需求前 中间经过了多种角色的辛苦劳动 最终才会生成需要规格说明书 需求规格说明书是逐步由粗到细的分解过程 一个需求 要进入
  • 个人技术总结——uview-plus下的Http请求基本使用及相关使用

    这个作业属于哪个课程 软件工程 23年春季学期 这个作业要求在哪里 软件工程实践总结 个人技术总结 这个作业的目标 个人技术总结 其他参考文献 构建之法 CSDN社区 uni app官方文档 uview plus官方文档 目录 一 写在前面
  • Go 语言注释教程

    注释是在执行时被忽略的文本 注释可用于解释代码 使其更易读 注释还可用于在测试替代代码时防止代码执行 Go支持单行或多行注释 Go单行注释 单行注释以两个正斜杠 开头 在 和行尾之间的任何文本都将被编译器忽略 不会被执行 示例 This i
  • SQL 算术运算符:加法、减法、乘法、除法和取模的用法

    SQL Server中的存储过程 什么是存储过程 存储过程是一段预先编写好的 SQL 代码 可以保存在数据库中以供反复使用 它允许将一系列 SQL 语句组合成一个逻辑单元 并为其分配一个名称 以便在需要时调用执行 存储过程可以接受参数 使其
  • 嵌入式培训机构到底怎么选?培训了能找到工作吗

    嵌入式作为一种广泛应用于企业级开发的编程语言 对于想要从事软件开发行业的人来说 掌握嵌入式技能是非常重要的 而参加嵌入式培训机构是一个快速提升技能的途径 然而 很多人可能会担心 参加嵌入式培训了能找到工作吗 如何选择靠谱的嵌入式培训机构 要
  • 68 | 软件工程的宏观视角

    软件工程 今天开始 我们进入第六章 谈谈软件工程 我理解的架构师的职责其实是从软件工程出发的 也许大家都学过软件工程 但如果我们把软件工程这门课重新看待 这门学科到底谈的是什么 是软件项目管理的方法论 无论如何 软件工程是一门最年轻的学科
  • 这套Go语言开发框架组合真的非常高效

    我尝试过很多框架 从Django Flask和Laravel到NextJS和SvelteKit 到目前为止 这是我唯一可以使用的不会让我感到疯狂或者放弃项目的堆栈 框架 我喜欢所有这些框架 但我只是不太适应它们的设计方式 实际上 我是一个弱
  • 深入了解 Python MongoDB 查询:find 和 find_one 方法完全解析

    在 MongoDB 中 我们使用 find 和 find one 方法来在集合中查找数据 就像在MySQL数据库中使用 SELECT 语句来在表中查找数据一样 查找单个文档 要从MongoDB的集合中选择数据 我们可以使用 find one
  • Python 中多态性的示例和类的继承多态性

    单词 多态 意味着 多种形式 在编程中 它指的是具有相同名称的方法 函数 操作符 可以在许多不同的对象或类上执行 函数多态性 一个示例是 Python 中的 len 函数 它可以用于不同的对象 字符串 对于字符串 len 返回字符的数量 示

随机推荐

  • JavaScript 字符串后四位变为*

    let str jkjsgfhiasdggaacvdsawe let res str substring 0 str length 4 res console log res 运行结果
  • 家用可燃气浓度报警控制系统

    使用软件Keil uVision4 proteus 8 Professions 一 研究目的 计算机控制系统通常具有精度高 速度快 存储容量大和有逻辑判断功能等特点 因此可以实现高级复杂的控制方法 获得快速精密的控制效果 在控制系统中 为了
  • 9i 11g linux,Linux平台下Oracle9i/10g/11gR1IO-Fencing的hangcheck-timer模块说

    Linux 平台下Oracle 9i 10g 11gR1 IO Fencing 的hangcheck timer 模块说明 Hangcheck timer 是Linux 提供的一个内核级的IO Fenc 一 官网的说明 参考MOS 9i 1
  • apt-get的用法

    apt命令用法 packagename指代为软件包的名称 apt get update 在修改 etc apt sources list或 etc apt preferences之後运行该命令 此外您需要定期运行这一命令以确保您的 软件包列
  • Go语言学习5-切片类型

    切片类型 引言 1 切片 1 1 类型表示法 1 2 值表示法 1 3 属性和基本操作 1 4 切片使用的复杂用法 总结 引言 上篇我们介绍了 Go语言的数组类型 本篇将介绍Go语言的切片类型 主要如下 1 切片 切片可以看作是对数组的一种
  • SSD系列算法原理讲解----(1)SSD系列算法介绍(主干网络、多尺度Feature Map预测)(笔记)

    SSD系列算法原理介绍 SSD算法介绍 Single Shot MultiBox Detector One stage方法 Wei Liu在ECCV 2016提出 直接回归目标类别和位置 不同尺度的特征图上进行检测 端到端的训练 图像的分辨
  • 前端面试问答题(1)

    1 页面从输入URL到页面加载显示完成 这个过程中都发生了什么 1 输入域名地址 2 发送至DNS服务器并获得域名对应的WEB服务器IP地址 3 与WEB服务器建立TCP连接 4 服务器的永久重定向响应 从 http example com
  • Java 代理模式详解

    前言 在软件设计过程中 我们经常需要对对象或系统进行扩展 但是在开发过程中 直接修改现有代码可能会带来一些风险和不良影响 比如破坏原有的稳定性 影响已有的功能等 而代理模式则是通过引入一个代理对象来间接访问目标对象 从而为应用程序提供额外的
  • linux入门基础

    这本阿里P8撰写的算法笔记 再次推荐给大家 身边不少朋友学完这本书最后加入大厂 Github 疯传 史上最强悍 阿里大佬 LeetCode刷题手册 开放下载了 一 虚拟机的管理 概念 虚拟机 Virtual Machine 指通过软件模拟的
  • MySQL分片高可用集群之Cobar部署使用

    MySQL分片高可用集群之Cobar部署使用 2015 10 22 14 58 47 标签 mysql 高可用 分片 cobar 分库 原创作品 允许转载 转载时请务必以超链接形式标明文章 原始出处 作者信息和本声明 否则将追究法律责任 h
  • Chatgpt4来了,测试小姐姐实测,在失业的边缘疯狂试探~

    GPT 4是OpenAI于2023年3月发布的最新人工智能模型 它是继GPT 3 5之后的又一次重大突破 它的核心技术是基于Transformer的自回归语言模型 它使用了大量的无标注数据进行预训练 学习了自然语言和其他模态之间的通用表示和
  • 关于传递函数的频率响应和低通滤波器

    关于传递函数的频率响应和低通滤波器 参考资料 动态系统的建模与分析 9 一阶系统的频率响应 低通滤波器 Matlab Simulink分析 哔哩哔哩 bilibili 以前关于这部分只是知道了而已 并没有用MATLAB认真试验过 这里借着D
  • moxa Nport配置tcp/udp实现数据发送和回传(补充数据接收错乱处理方法)

    moxa Nport配置tcp udp实现数据发送和回传 记一次吐血经历 目的 现有一内网环境需要连外网进行钉钉推送 开始使用串口连接实体电脑的方式实现 现需要撤除实体电脑 故选用串口服务器的方式实现 型号是moxa NPort5150 网
  • snipaste截图软件滚动截图_Windows截图:snipaste & QQ截图工具

    介绍Windows端两款便利的截图工具 snipaste 和 QQ截图工具 我在使用snipaste的时候 最常用的是三个功能 截图 截图并自动复制到剪切板 贴图 使用QQ截图工具 须后台运行QQ 的时候 最常用的是 OCR文本识别 标注
  • 1.4 CNN的崛起

    目录 四 CNN的崛起 4 1 SVM vs NN 4 2 ILSVRC 4 2 1 分类任务描述 4 2 2 SVM 的覆灭 4 3 CNN 的发展 四 CNN的崛起 4 1 SVM vs NN 虽然反向传播算法的提出 使得神经网络的学习
  • python内点法_最优化问题(三) 之 外点法(罚函数法)

    1 基本概念 罚函数法又称乘子法 是将约束优化问题转换为无约束最优化问题的方法之一 其基本思想就是通过在原始的目标函数中添加一个障碍函数 也可以理解成惩罚函数 来代替约束条件中的不等式约束 如果当前解不满足约束条件 就在目标项上加上一个正向
  • Web前端——CSS复习(3.27-3.31)

    1 渐变 1 什么是渐变 渐变 指的是两种或多种颜色之间的平滑过渡 aa 渐变可指定多个中间颜色值 色标 bb 渐变可以用在任何适用背景图片的地方 线性渐变 径向渐变 重复渐变 2 渐变语法 在CSS3中使用background image
  • leetcode shell题解

    195 Tenth Line print just the 10th line of a file sed n 10 10p file txt 194 Transpose File For example if file txt has t
  • 主流编程语言介绍

    目录 前言 一 编程语言作用 1 1 Python 1 2 Java 1 3 JavaScript 1 4 Go 1 5 PHP 二 Python和PHP学习网站 2 1 菜鸟教程 2 2 W3school 总结 前言 主流的编程语言有很多
  • 流图(程序图)表示程序的控制流——>McCabe方法度量程序空间复杂度

    McCabe方法 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度 这样度量出的结果称为程序的环形复杂度 为了突出表现程序的控制流 人们通常使用流图 也称程序图 1 流图 所谓流图实质上是 退化了的 程序流程图 它仅仅描绘程序