2014年《软件工程》第六讲 详细设计.pptVIP

  1. 1、本文档共81页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * JSP方法 特点: 重点不是自顶向下逐步求精, 而是在数据结构基础上进行构造 根据输入/输出的数据结构建立程序结构 目标: 获得简单清晰的设计方案 设计原则: 使程序结构与问题结构(数据结构)相对应 数据结构和程序结构 一般的数据处理系统,处理的是具有层次结构的数据,因而其问题结构,可以用它所处理的数据结构来表示 数据结构与程序结构的表示 采用Jackson图来表示数据结构和程序结构 结构图是一种从左到右阅读的树状层次结构图 数据结构图中方框表示数据,程序结构图中方框就表示模块(过程或函数) 底部的叶子节点称为基本元素 在底部枝干以上的节点称为结构元素 三种元素类型:顺序元素、选择元素、重复元素 示例:打印表格程序的输出数据结构和对应的程序结构 JSP方法的分析和设计步骤 分析并确定输入和输出数据结构的逻辑结构, 并用Jackson图画出 从输入数据结构与输出数据结构中, 找出有对应关系的数据元素 从描述数据结构的Jackson图, 导出描述程序结构的Jackson图 列出所有操作和条件, 将它们分配到程序结构图的适当位置 把带有操作的程序结构图转换成结构正文, 同时加入选择及迭代条件 JSP方法的特点 简单、易学、形象直观、可读性好 便于表示层次结构 适用于小型数据处理系统 6.1 详细设计任务 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量 6.5 程序复杂程度的定量度量 6.5 程序复杂程度的定量度量 根据程序控制流的复杂程度, 定量度量程序的复杂度 流图 计算环形复杂度的方法 环形复杂度的用途 6.5.1 McCabe方法 所谓流图实质上是“退化了的”程序流程图,它仅仅描绘程序的控制流程,完全不表现对数据的具体操作以及分支或循环的具体条件。 程序流程图中的顺序的处理框序列和菱形判定框,可以映射成流图中的一个结点。 流图中的箭头线称为边,代表控制流。 6.5.1.1 流图(I) 方法二: V(G) = E-N+2 = 11-9+2 = 4 E: 流图边的条数 N: 结点数 方法三: V(G) = P+1 = 3+1 = 4 P:判定结点的数目 程序的环形复杂度,取决于程序控制流的复杂程度,也即是取决于程序结构的复杂程度。 McCabe研究大量程序后发现,环形复杂度高的程序,往往是最困难、最容易出问题的程序。 模块规模以V(G)≤10为宜,也就是说,V(G)=10是模块规模的一个更科学更精确的上限。 6.5.1.2 环形复杂度用途 Halstead方法是另一个著名的方法, 它根据程序中运算符和操作数的总数, 来度量程序的复杂程度。 令N1为程序中运算符出现的总次数, N2为操作数出现的总次数, 程序长度N定义为:N=N1+N2 6.5.2 Halstead方法(I) Halstead给出预测程序长度的公式如下: H=n1 log2n1+n2 log2 n2 不同运算符(包括关键字)的个数n1, 不同操作数(变量和常数)的个数n2。 预测程序中包含错误的个数的公式如下: E=N log2 (n1+n2)/3000 6.5.2 Halstead方法(II) 6.5.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 6.5.2 Halstead方法(IV) 6.5.2 Halstead方法(V) 对于上面的例子,利用n1,N1,n2,N2,可以计算得 H = 10 ? log210+7 ? log27 = 52.87 N = 28+22 = 50 E=N log2 (n1+n2)/3000=50* log2(10+7)/3000=0.07 V = (28+22) ? log2(10+

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档