范文无忧网范文学习范文大全

软件复杂度的复杂度的种类

02月03日 编辑 fanwen51.com

[我爱你用外语怎么说种类越多越好!谢谢]```````````````附加:注释版~````````````````英国:I love you爱尔兰:Taim i' ngra leat荷兰:Ik hou van jou法国:je t'aime, je t'adore德国:Ich liebe dich希腊:S'agapo意大利:Tia...+阅读

有模块、类和程序三类复杂度。模块复杂度包含了关于模块的复杂度信息;类复杂度是针对那些使用McCabe面向对象特性的程序,它包含了关于类的复杂度信息;程序复杂度包含了关于程序的复杂度信息。集成复杂度报告 对应于三种复杂度的是三种复杂度报告。如果一个报告的复杂度信息不只一种,那么就把这些复杂度信息组合成新的报告。集成复杂度信息只收集一个部件及其下级的信息。

例如:如果一个程序级报告包含一个类复杂度,那么只报告组成程序的类的信息,而不包含类组成的信息。 McCabe复杂度是对软件结构进行严格的算术分析得来的,实质上是对程序拓扑结构复杂性的度量,明确指出了任务复杂部分。McCabe复杂度包括:圈复杂度、基本复杂度、模块设计复杂度、设计复杂度、集成复杂度、行数、规范化复杂度、全局数据复杂度、局部数据复杂度、病态数据复杂度。

McCabe复杂度的用途 在软件工程中,有三种使用McCabe复杂性度量的方式。作为测试的辅助工具。McCabe复杂性度量的结果等于通过一个子程序的路径数,因而需要设计同样多的测试案例以覆盖所有的路径。如果测试案例数小于复杂性数,则有三种情况一是需要更多的测试;二是某些判断点可以去掉;三是某些判断点可用插入式代码替换。作为程序设计和管理指南。

在软件开发中,需要一种简单的方式指出可能出问题的子程序。保持子程序简单的通用方法是设置一个长度限制,例如50行或2页,但这实际上是在缺乏测试简明性的有效方法时无可奈何的替代方法。不少人认为McCabe度量就是这样一种简明性度量。但是要注意,McCabe度量数大的程序,不见得结构化就不好。例如,Case语句是良结构的,但可能有很大的McCabe度量数(依赖于语句中的分支数),这可能是由于问题和解决方案所固有的复杂性所决定的。

使用者应当自己决定如何使用McCabe度量所提供的信息。作为网络复杂性度量的一种方法。Hall和Preiser提出了一种组合网络复杂性度量,用于度量可能由多个程序员组按模块化原理建立的大型软件系统的复杂性。他们提出的组合度量公式为 式中 C1,...,Ck是各个模块的复杂性;CN是网络复杂性;W1和W2为权值。McCabe复杂度即可用于度量各个模块的复杂性,也可用于度量网络复杂性。

圈复杂度是用来衡量一个模块判定结构的复杂程度,数量上表现为独立路径的条数,即合理的预防错误所需测试的最少路径条数,圈复杂度大说明程序代码可能质量低且难于测试和维护,经验表明,程序的可能错误和高的圈复杂度有着很大关系。独立路径组成的集合称为基本路径集合,独立路径数就是指基本路径集合中路径的数量。基本路径集合不是唯一的,独立路径数也就不唯一。

因此,圈复杂度是最大独立路径数。 计算方法 节点是程序中代码的最小单元,边代表节点间的程序流。如果一个模块流程图有e条边n个节点,它的圈复杂度V(G)=e-n+2,典型的V(G)max=10。图1中示例的圈复杂度是2。优点 避免软件中的错误倾向;指出极复杂模块,这样的模块也许可以进一步细化;度量测试计划,确定测试重点;在开发过程中通过限制程序逻辑,指导测试过程;指出将要测试的区域;帮助测试人员确定测试和维护对象;与所用的高级程序设计语言类型无关。

应用 圈复杂度指出为了确保软件质量应该检测的最少基本路径的数目。在实际中,测试每一条路经是不现实的,测试难度随着路径的增加而增加。但测试基本路径对衡量代码复杂度的合理性是很必要的。McCabe & Associates建议圈复杂度到10,因为高的圈复杂度使测试变得更加复杂而且增大了软件错误产生的概率。提示:圈复杂度度量是测量在一个软件模块中的分支数目,在所有的开发周期中都要使用。

圈复杂度度量以软件的结构流程图为基础。控制流程图描述了软件模块的逻辑结构。一个模块在典型的语言中是一个函数或子程序,有一个入口和一个出口,也可以通过调用/返回机制设计模块。软件模块的每个执行路径,都有与从模块的控制流程图中的入口到出口的节点相符合的路径。“Cyclomatic”来源于非直接连接基本测试周期的数目,更重要的是,也通过直接相连的图表给出独立路径的数目。

通过图表的相关性,一个节点可到达另一个节点。圈复杂度度量也可作为模块基本流程图路径的数目,其重点在于模块线形组合后,所产生的路径数目是最小的。对圈复杂度的限制 现在有许多好方法可以用来限制圈复杂度。过于复杂的模块容易出错,难于理解、测试、更正,所以应当在软件开发的各个阶段有意识地限制复杂度,许多开发者已经成功地实现把对软件复杂度的限制作为软件项目的一部分,尽管在确切的数目上略微有些争议。

最初支持的数目是10,现在支持数目可达15。但是,只应当在条件较好的情况下使数目大于10,例如开发者非常有经验,设计合乎正式标准,使用现代化的程序语言、结构程序、代码预排和先进的测试计划。换句话说,开发团队可以选择超过10的限制数目,但是必须根据经验进行一些取舍,把精力花在比较复杂的模块上。 基本复杂度是用来衡量程序非结构化程度的,非结构成分降低了程序...

延伸阅读:

商务谈判分类标准及其种类商务谈判的类型 1、以谈判人员数量分类 (一)“一对一”谈判 项目小的商务谈判往往是“一对一”式的。出席谈判的各方虽然均只有一个人,但并意味着谈判者不要做准备。“一对一”...

心理学分为哪几种类心理学可以分为理论心理学类和应用心理学类。 1 理论心理学类 理论心理学的研究是围绕着下面八大主题来进行的,即:心理的生理基础、感觉与知觉的形成机制、个体与环境交感互动...

我国国有商业银行的中间业务种类主要有哪些有何特点商业银行中间业务: 商业银行中间业务广义上讲“是指不构成商业银行表内资产、表内负债,形成银行非利息收入的业务”。狭义的中间业务是商业银行作为中间机构,企业客户向商业银...

域网络的特征1计算机网络按分布地域上分有几种类计算机网络的分类 计算机网络复杂多样,可以从不同的角度对网络进行分类。实际上,一个计算机网络多数是一个混合型网络,通常按网络的覆盖面积分为局域网和广域网。 (1)局域网(Local...

水产品包括哪些种类1、鲜活类 2、冻肉制品类 3、 火锅小吃类 4、水发类 5、水产干货类 6、水产冻品类 1 鲜活主要分为活和鲜 活包括活鱼、虾、蟹、贝、龟、蛙等等;鲜就是冰鲜了为了方便你记,我把...

生产现场看板管理的种类有哪些生产现场管理,看板管理六个使用规则分别是:没有看板不能生产也不能搬运,看板只能来自后工序,前工序只能生产取走的部分,前工序按收到看板的顺序进行生产,看板必须和实物一起以及不...

库存有多少种类?企业如何实施库存管理一、库存的种类 从不同角度可对库存进行多种不同的分类。 1.按物资在生产过程中所处的状态,可以将库存分为原材料库存、在制品库存和成品库存。 1)原材料库存,指企业购入的尚未...

比较中外美术史谈谈中外美术不同的种类和特点中外美术在我认为区别在于中西方的哲学观念不同,艺术的发展是要有哲学做指导的,西方人考虑问题理性的因素比较多,而中国的艺术人在考虑问题中以人的思想指导比较多.你可以看到,...

历史材料题的主要几种类型训练新课改形势下,很多地方的历史中考形式改为开卷考试,命制材料题时的“材料”来源已经不再是单纯的照搬课本内容,而是尽量避免摘抄教材原文;所设问题的立 足点更注重于考查学生独...

推荐阅读
图文推荐
栏目列表