- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序的环域复杂度反映了程序控制流的复杂程度,也反映了程序结构的复杂程度。当一个程序中判定结构或循环结构的个数以及嵌套层次增加时,环域复杂度也随之线性增加。这势必增加了理解、测试、维护程序的难度,也将影响软件的可靠性和维护性。 实践表明一个模块中的复杂度以V(G)≤10为宜。 对于不同种类的控制流的复杂性不能区分 简单IF语句与循环语句的复杂性同等看待 嵌套IF语句与简单CASE语句的复杂性是一样的 模块间接口当成一个简单分支一样处理 一个具有1000行的顺序程序与一行语句的复杂性相同 这种度量方法的缺点是: HalStead方法 又称为文本复杂性度量方法。 原理:程序是由操作符和操作数组成;程序中使用操作符和操作数的总数说明程序的规模,亦反映其复杂性。 该方法通过收集程序中使用的操作数和操作符的数目作为程序复杂性度量的依据,并采用若干预测公式计算程序的复杂度。 操作数:指程序中定义并使用的变量常量等被处理的实体对象。 操作符:指运算符号和关键字,运算符号如:+,-,×,/,,,and,or等;关键字如:if,then,while等。 HalStead方法的预测公式 用N1表示程序中出现的操作符(含关键字符号)总次数; 用N2表示程序中出现的操作数的总次数。 定义:N=N1+N2为程序长度 在详细设计完成之后可以知道程序中使用的不同操作符个数n1和不同操作数个数n2。 Halstead给出预测程序长度的公式如下: H=n1log2n1+n2log2n2 多次验证表明预测长度H与实际长度N非常接近。 Halstead还给出程序中包含错误个数的公式如下: E=Nlog2(n1+n2)/3000 人们对300~12000条语句的程序进行核实,发现预测错误个数与书记的错误个数相比误差在8%以内。 总结 程序复杂性度量的方法可归纳为以下几类: ⑴程序规模:语句行数法; ⑵难度指标:Halstesd方法; ⑶结构指标:环域复杂度(McCabe方法)。 一个复杂的例子 流程图如右图所示,分别画出N-S图和PAD图 Y Y N N N N N S5 S2 C4 S4 S1 C1 C2 C3 C5 S3 N-S图 DO WHILE C1 C2 C3 S5 Y N Y N UNTIL C4 S2 Y N C5 S3 S4 S1 N—S图 Y Y N N N N N S5 S2 C4 S4 S1 C1 C2 C3 C5 S3 PAD图 DO WHILE C1 C2 C3 S5 Y N Y N UNTIL C4 S2 Y N C5 S3 S4 S1 PAD图 S 1 S5 WHILE C1 UNTIL C4 S 4 S 2 S 3 C5 C3 C2 7.3.4 判定表 在许多软件应用问题中,常会遇到根据多个条件的复杂组合来选择适当的动作。当一个算法中涉及到复杂的条件组合判断时,采用程序流程图、盒图、PAD图或过程定义语言(PDL)都很难做到简单清晰地描述条件组合与处理动作之间的因果关系。 判定表是能够清晰直观地表达这种复杂条件组合与动作之间关系的一种描述工具。 判定表的结构 通常用双线将判定表分为四部分: 条件定义栏 条件取值列 动作定义栏 选定的动作 左上部列出了算法中所有的独立条件,左下部是所有可能采取的具体动作 ,右上部表示各种条件组合取值的一个矩阵,右下部定义了每种条件组合与具体动作的对应关系。 举例说明判定表的使用 例1:假定某航空公司行李托运费规定如下:每位乘客可免费托运30公斤。当行李超过30公斤时,头等仓的国内乘客超重部分每公斤收4元,经济仓的国内乘客超重部分每公斤收6元;国外乘客超重部分按国内乘客标准加倍收费,残疾乘客比照常乘客减半收费。其条件取值表如下: 根据取值表得到判定表如下: 分析: 因为当W≤30Kg时均免费,与其他条件取值无关,所以其组合中有八种是相同取值的。当W>30 Kg时,三个条件有八种选择,加上W≤30,共有九种选择,取得列为9。 例2:研究所对大学以上学历的工作安排如下: ⑴如果年龄不满18岁,男性,考研; 女性,行政干部。 ⑵如果年龄18~50岁,研究生不分男女均任课题组长。 大学生不分男女均任
文档评论(0)