软件复杂度问题之根据统计的运算子和运算元数据计算Halstead复杂度,如何解决

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 软件复杂度问题之根据统计的运算子和运算元数据计算Halstead复杂度,如何解决

问题一:什么是修改扩散,它是如何产生的?如何避免修改扩散的问题?


什么是修改扩散,它是如何产生的?如何避免修改扩散的问题?


参考回答:

修改扩散是指在修改软件时产生的连锁反应,通常是因为模块之间耦合过重,相互依赖太多导致的。例如,一个接口在系统中被多处引用,当该接口需要升级时,会牵动多个模块的修改。

为了避免修改扩散的问题,可以将高度耦合的接口或模块抽取到适配器中,这样当接口需要升级时,只需要修改适配器,而不需要修改所有引用该接口的地方。这样可以降低修改成本和风险。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/633629



问题二:软件复杂度是什么?软件的高复杂度会带来什么问题?


软件复杂度是什么?软件的高复杂度会带来什么问题?


参考回答:

软件复杂度是软件的一组特征,它由软件内部的相互关联引起。随着软件的实体(模块)的增加,软件内部的相互关联会指数式增长,直至无法被全部掌握和理解。

软件的高复杂度会导致在修改软件时引入非主观意图的变更的概率上升,最终在做变更的时候更容易引入缺陷。在极端情况下,软件复杂到几乎无法修改。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/633632



问题三:Halstead复杂度是什么?Halstead复杂度计算需要哪些数值?


Halstead复杂度是什么?Halstead复杂度计算需要哪些数值?


参考回答:

Halstead复杂度是软件科学提出的第一个计算机软件的分析“定律”,用以确定计算机软件开发中的一些定量规律。它根据程序中语句行的操作符和操作数的数量计算程序复杂性。

Halstead复杂度计算需要以下数值:η1(不同运算子的个数)、η2(不同运算元的个数)、N1(所有运算子合计出现的次数)、N2(所有运算元合计出现的次数)。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/633636



问题四:如何根据统计的运算子和运算元数据计算Halstead复杂度?


如何根据统计的运算子和运算元数据计算Halstead复杂度?


参考回答:

可以计算Halstead复杂度相关的量测量,但具体的计算公式没有直接给出,需要参考Halstead复杂度的原始定义和公式。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/633642



问题五:Halstead方法优点有什么?


Halstead方法优点有什么?


参考回答:

1.不需要对程序进行深层次的分析,就能够预测错误率,预测维护工作量;

2.有利于项目规划,衡量所有程序的复杂度;

3.计算方法简单;

4.与所用的高级程序设计语言类型无关。


关于本问题的更多回答可点击原文查看:

https://developer.aliyun.com/ask/633643

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
6月前
|
人工智能 算法 测试技术
【数学】【排序】【C++算法】3027人员站位的方案数
【数学】【排序】【C++算法】3027人员站位的方案数
|
4月前
|
数据采集 存储 编译器
优化计算效率
【7月更文挑战第26天】优化计算效率
72 8
|
5月前
|
存储 算法
数据结构和算法——散列表的性能分析(开放地址法的查找性能、期望探测次数与装填因子的关系、分离链接法的查找性能)
数据结构和算法——散列表的性能分析(开放地址法的查找性能、期望探测次数与装填因子的关系、分离链接法的查找性能)
101 0
|
负载均衡 并行计算 算法
BWA序列比对方法丨针对较大基因组的并行计算和性能优化方式,利用多线程和负载均衡策略提高效率
BWA序列比对方法丨针对较大基因组的并行计算和性能优化方式,利用多线程和负载均衡策略提高效率
|
XML 自然语言处理 运维
【大数据开发运维解决方案】Solr6.2默认相似性算法检索匹配得分高于5.1版本问题分析
我们之前使用的solr版本是solr5.1,分词器使用的是jcseg1.9.6,后续接触了Solr6.2,分词器使用的是jcseg2.6.0,发现同一个Oracle库的同一套表数据,分别使用solr5.1和solr6.2版本的模板collection配置集做相同的字段配置并成功做索引后,做相同查询,solr6.2检索文档score远高于solr5.1,下面是我们使用的两个solr环境以及另一个单机solr测试环境的基本情况:
【大数据开发运维解决方案】Solr6.2默认相似性算法检索匹配得分高于5.1版本问题分析
|
算法 搜索推荐 Shell
一篇文章带你整体把控算法中的基本问题《排序
排序 本篇文章对算法中的基本问题--排序 的思想进行了描述,后续文章会对所有排序算法进行实现,欢迎关注本系列。 可以转载,但请声明源链接:文章源链接justin3go.com(有些latex公式某些平台不能渲染可查看这个网站)
79 0
|
存储 机器学习/深度学习 自然语言处理
【算法的特性,标准,时间维度空间维度计算方式】
【算法的特性,标准,时间维度空间维度计算方式】
284 0
【算法的特性,标准,时间维度空间维度计算方式】
|
数据采集 消息中间件 监控
最终整体回顾(代码-离线计算)|学习笔记
快速学习最终整体回顾(代码-离线计算)
|
算法
分析复杂度来判断算法效率
算法复杂度用于分析算法运行所需计算机资源的量,需要的时间资源为时间复杂度,需要的空间资源为空间复杂度。 在判断一个算法的优劣时,可以抛开软件和硬件因素,只考虑问题的规模。编写程序前预先估计算法优劣,可以改进并选择更高效的算法。
150 0
分析复杂度来判断算法效率
|
机器学习/深度学习 算法
【计算理论】计算复杂性 ( 计算理论内容概览 | 计算问题的有效性 | 时间复杂性度量 | 输入表示 | 时间复杂度 )
【计算理论】计算复杂性 ( 计算理论内容概览 | 计算问题的有效性 | 时间复杂性度量 | 输入表示 | 时间复杂度 )
174 0