• / 81
  • 下载费用:10 金币  

《软件工程》第六讲 详细设计.ppt

关 键 词:
《软件工程》第六讲 详细设计.ppt
资源描述:
第6章 详细设计,6.1 详细设计任务 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量,目标,设计人机交互界面 利用工具设计程序蓝图 计算程序蓝图复杂程度,详细设计阶段的根本目标 确定应该怎样具体地实现所要求的系统,不是具体地编写程序,而是要设计出程序的“蓝图”,以后程序员将根据这个蓝图,写出实际的程序代码。,详细设计任务,(1) 过程设计。确定每个模块的具体算法。 (2) 数据设计。设计模块内所需要的数据结构。 (3) 接口设计。确定模块间的接口信息以及用户界面(比如GUI设计)。 (4) 为每个模块设计一组测试用例。 (5) 编写文档,参加复审。,详细设计任务,,6.2 人机界面设计,设计问题,设计过程,人机界面设计指南,一般交互指南 信息显示指南 数据输入指南,数据输入的规则 在设计时要考虑尽可能减少用户的记忆负担,使界面具有预见性和一致性,防止用户输入出错,以及尽可能增加数据自动输入。 在软件设计的范围,可以通过以下方法来减少用户输入的工作量。对共同的输入内容设置默认值(缺省值)。使用代码和缩写。 自动填入已输入过的内容或需要重复输入的内容。如果输入内容是来自一个有限的备选集,可以采用列表选择或指点方式。,数据输入界面设计,数据显示界面设计,,6.3 过程设计的工具,6.3.1 程序流程图(I),6.3.1 程序流程图(III),,程序流程图的主要缺点如下: (1) 程序流程图本质上不是逐步求精的好工具,它诱使程序员过早地考虑程序的控制流程,而不去考虑程序的全局结构。 (2) 程序流程图中用箭头代表控制流,因此程序员不受任何约束,可以完全不顾结构程序设计的精神,随意转移控制。 (3) 程序流程图不易表示数据结构。,6.3.1 程序流程图(III),出于要有一种不允许违背结构程序设计精神的图形工具的考虑,Nassi和Shneiderman提出了盒图,又称为N-S图。,6.3.2 盒图(N-S图)(I),6.3.2 盒图(N-S图)(I),6.3.2 盒图(N-S图)(II),嵌套的表示,盒图的特点: (1) 功能域明确,可以从盒图上一眼就看出来。 (2) 不可能任意转移控制。 (3) 很容易确定局部和全程数据的作用域。 (4) 很容易表现嵌套关系,也可以表示模块的层次结构。盒图没有箭头,因此不允许随意转移控制。这对我们结构化的思考方式很有帮助。,6.3.2 盒图(N-S图)(III),问题分析图PAD,6.3.3 PAD图(I),PAD示例,6.3.3 PAD图(II),对应于增量型循环结构for i := n1 to n2 step n3 do 在PAD中有相应的循环控制结构,6.3.3 PAD图(III),下面以计算应发工资模块为例, 用上述三种图形工具:程序流程图、盒图以及PAD图,分别来设计。,判定表,下面以行李托运费的算法为例,说明判定表的组织方法。 假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李。 当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的国内乘客超重部分每公斤收费6元,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。 用判定表可以清楚地表示与上述每种条件组合相对应的计算行李费的算法。,6.3.4 判定表(II),判定表虽然能清晰地表示复杂的条件组合与应做的动作之间的对应关系,但其含义却不是一眼就能看出来的,初次接触这种工具的人,理解它需要有一个简短的学习过程。 判定树是判定表的变种,它的形式简单到不需任何说明,一眼就可以看出其含义,因此易于掌握和使用。,6.3.5 判定树,图6.7 用判定树表示计算行李费的算法,过程设计语言(PDL)也称为伪码,现在有许多种不同的过程设计语言在使用。它是用正文形式表示数据和处理过程的设计工具。 PDL具有严格的关键字外部语法,内部语法灵活 PDL-----关键字+自然语言,6.3.6 过程设计语言,6.3.6 过程设计语言(II),6.3.6 过程设计语言(III),6.3.6 过程设计语言(IV),6.3.6 过程设计语言(V),6.1 详细设计任务 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量,6.1 详细设计任务 6.2 人机界面设计 6.3 过程设计的工具 6.4 面向数据结构的设计方法 6.5 程序复杂程度的定量度量,上一章介绍了面向数据流的设计方法,也就是根据数据流确定软件结构的方法;下面介绍的面向数据结构的设计方法,根据数据结构进行过程设计,也就是每个模块的处理过程。,6.4 面向数据结构的设计方法,典型方法有Jackson方法和Warnier方法JSP:Jackson结构程序设计方法 JSD:Jackson系统开发方法,6.4 面向数据结构的设计方法,JSP方法,1975年,M.A.Jackson总结COBOL事务处理的开发方法,提出了该方法。用数据结构作为程序设计的基础。 从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。 这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。,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+7) = 204,
展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:《软件工程》第六讲 详细设计.ppt
链接地址:https://www.weizhuannet.com/p-10087988.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网络工作室版权所有

     经营许可证编号:冀ICP备18006529号-1 ,公安局备案号:13028102000124

收起
展开