第5章+详细设计.ppt

  1. 1、本文档共103页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图5.16 由PDL翻译成的流图 图5.17 由包含复合条件的PDL映射成的流图 将复合条件分解成若干个简单条件 环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。 (1) 流图中的区域数等于环形复杂度。 (2) 流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。 (3) 流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。 5.3.1.2 环形复杂度计算(I) 5.3.1.2 环形复杂度计算(II) 方法一:4(每种颜色代表一种个区域) 5.3.1.2 环形复杂度计算(III) 方法二:E(11)-N(9)+2=4 5.3.1.2 环形复杂度计算(IV) 方法三:P(3)+1=4 procedure averagy; I=1; Total.input=total.valid=0; Sum=0; Do while value[I]-999 and total.input100 Increment total.input by 1; If value[I]=minimum and value[I]=maximum Then increment total.valid by 1; Sum=sum+valid[I]; Else skip Endif; Increment I by 1; Enddo If total.valid0 Then averagy=sum/total.valid; Else averagy=-999; Endif End averagy 程序的环形复杂度取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。 McCabe研究大量程序后发现,环形复杂度高的程序往往是最困难、最容易出问题的程序。 模块规模以V(G)≤10为宜,也就是说,V(G)=10是模块规模的一个更科学更精确的上限。 5.3.1.2 环形复杂度用途 Halstead方法是另一个著名的方法,它根据程序中运算符和操作数的总数来度量程序的复杂程度。 令N1为程序中运算符出现的总次数,N2为操作数出现的总次数,程序长度N定义为:N=N1+N2 5.3.2 Halstead方法(I) Halstead给出预测程序长度的公式如下:H=n1 log2 n1+n2 log2 n2 不同运算符(包括关键字)的个数n1, 不同操作数(变量和常数)的个数n2。 预测程序中包含错误的个数的公式如下:E=N log2 (n1+n2)/3000 5.3.2 Halstead方法(II) 5.3.2 Halstead方法(III) 例如,用FORTRAN语言写出的交换排序的例子 SUBROUTINE SORT ( X, N ) DIMENSION X( N ) IF ( N .LT. 2 ) RETURN DO 20 I=2, N DO 10 J=1, I IF ( X(I) .GE. X(J) ) GO TO 10 SAVE = X(I) X(I) = X(J) X(J) = SAVE 10 CONTINUE 20 CONTINUE RETURN END 5.3.2 Halstead方法(IV) (1)只显示与当前内容有关的信息。 (2)窗口显示的一致性。 (3)产生有意义的出错信息。 (4)必要时,用图形化的方式显示信息。 5.1.2.2 信息显示指南 (1)尽量减少用户的输入动作,下拉框就是一个很好的选择。 (2)允许编辑。 (3)重要操作提示确认。 (4)交互的方式应该灵活,允许用户选择喜欢的输入方式。 (5)提示输入的格式和范围。 5.1.2.3 数据输入指南 5.2.1 程序流程图 5.2.2 盒图(N-S图) 5.2.3 PAD图 5.2.4 判定表 5.2.5 判定树 5.2.6 过程设计语言 5.2 过程设计的工具 5.2.1 程序流程图(I) 6.3.1 程序流程图(III) 程序流程图的主要缺点如下: (1) 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2) 程序流程图中用箭头代表控制

文档评论(0)

微微 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档