软件工程第6章_第1页
软件工程第6章_第2页
软件工程第6章_第3页
软件工程第6章_第4页
软件工程第6章_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第6章章 详细设计详细设计6.1 结构程序设计结构程序设计6.2 人机界面设计人机界面设计6.3 过程设计的工具过程设计的工具6.5 程序复杂程度的度量程序复杂程度的度量详细设计详细设计正确地设计每个模块的内部的处理过程;正确地设计每个模块的内部的处理过程;设计的过程(流程)应该尽可能简明易懂;设计的过程(流程)应该尽可能简明易懂;详细设计阶段的任务还不是具体地编写程序;详细设计阶段的任务还不是具体地编写程序;结构化程序设计;结构化程序设计; 结构程序设计尽可能少用结构程序设计尽可能少用GO TO语句语句,通常在检测出错误通常在检测出错误时才使用时才使用GO TO语句。语句。On Error

2、 GoTo errh: errh: MsgBox Err.Description结构程序设计结构程序设计3种基本的控制结构:种基本的控制结构:顺序顺序选择选择循环循环 流程图分别为图流程图分别为图6.1(a),6.1(b)和和6.1(c)。6.1 结构程序设计结构程序设计6.1 3种基本的控制结构种基本的控制结构 还可以使用还可以使用DO-CASE型多分支结构和型多分支结构和DO-UNTIL型循环结构。型循环结构。一般交互指南一般交互指南信息显示指南信息显示指南数据输入指南数据输入指南1. 一般交互指南一般交互指南6.2.3 人机界面设计指南人机界面设计指南6.2 人机界面设计人机界面设计 保

3、持一致性。保持一致性。 (2) (2) 提供有意义的反馈提供有意义的反馈 。(3) (3) 在执行有较大破坏性的动作之前要求用户确认。在执行有较大破坏性的动作之前要求用户确认。(4) (4) 允许取消绝大多数操作。允许取消绝大多数操作。(5) (5) 减少在两次操作之间必须记忆的信息量。减少在两次操作之间必须记忆的信息量。 (6) (6) 提高对话、移动和思考的效率。提高对话、移动和思考的效率。- - 尽量减少用户击键的次数尽量减少用户击键的次数; ;- - 设计屏幕布局时应该考虑尽量减少鼠标移动的距离设计屏幕布局时应该考虑尽量减少鼠标移动的距离; ;- - 应该尽量避免出现用户问应该尽量避免

4、出现用户问“这是什么意思这是什么意思? ?”的情况的情况. .(7) (7) 允许犯错误。允许犯错误。(8) (8) 按功能对动作分类,并据此设计屏幕布局。按功能对动作分类,并据此设计屏幕布局。 - - 设计者应该尽力提高命令和动作组织的设计者应该尽力提高命令和动作组织的“内聚性内聚性”. .(9) (9) 提供对用户工作内容敏感的帮助设施。提供对用户工作内容敏感的帮助设施。(10) (10) 用简单动词或动词短语作为命令名。用简单动词或动词短语作为命令名。2. 信息显示指南信息显示指南只显示与当前工作内容有关的信息只显示与当前工作内容有关的信息( (数据、菜单、图形数据、菜单、图形) )。

5、不要用数据淹没用户,应该用便于用户迅速吸取信息的不要用数据淹没用户,应该用便于用户迅速吸取信息的方式来表示数据。方式来表示数据。( (统计图表统计图表) )(3) (3) 使用一致的标记、标准的缩写和可预知的颜色。使用一致的标记、标准的缩写和可预知的颜色。 (4) (4) 允许用户保持可视化的语境。(电子地图)允许用户保持可视化的语境。(电子地图)(5) (5) 产生有意义的出错信息。产生有意义的出错信息。(6) (6) 使用大小写、缩进和文本分组以帮助理解。使用大小写、缩进和文本分组以帮助理解。(7) (7) 使用窗口分隔不同类型的信息。使用窗口分隔不同类型的信息。(8) (8) 使用使用“

6、模拟模拟”显示方式表示信息,以使信息更容易被显示方式表示信息,以使信息更容易被用户提取。用户提取。(9)(9)高效率地使用显示屏。高效率地使用显示屏。3. 数据输入指南数据输入指南(1)(1)尽量减少用户的输入动作。尽量减少用户的输入动作。(2)(2)保持信息显示和数据输入之间的一致性。保持信息显示和数据输入之间的一致性。( (文字文字大小、颜色和位置大小、颜色和位置) ) (3)(3)允许用户自定义输入。允许用户自定义输入。 (4)(4)互应该是灵活的,并且可调整成用户最喜欢的输互应该是灵活的,并且可调整成用户最喜欢的输入方式。入方式。3. 数据输入指南数据输入指南(5)(5)使在当前动作语

7、境中不适用的命令不起作用。使在当前动作语境中不适用的命令不起作用。(6)(6)让用户控制交互流。让用户控制交互流。 (7)(7)对所有输入动作都提供帮助。对所有输入动作都提供帮助。(8)(8)消除冗余的输入。消除冗余的输入。 程序流程图至今仍在广泛使用。程序流程图至今仍在广泛使用。6.3 过程设计的工具过程设计的工具 6.3.1 程序流程图程序流程图图图6.4 盒图的基本符号盒图的基本符号6.3.2 盒图盒图(N-S图图) 调用子程序PAD是问题分析图是问题分析图(problem analysis diagram)。1973年由日本日立公司发明。年由日本日立公司发明。6.3.3 PAD图图图图

8、6.5 PAD图的基本符号图的基本符号图图6.6 使用使用PAD图提供的定义功能图提供的定义功能来逐步求精的例子来逐步求精的例子x4TF x5ighfkx1TFb x6 ajx21cx323dek :例:例:N-S图与图与PAD的转换的转换开始开始 结束结束 aj Until x5i Until x6bx1kfx4ghdefkx2de123 While x3c一张判定表由一张判定表由4部分组成:部分组成:左上部列出所有条件;左上部列出所有条件;左下部是所有可能做的动作;左下部是所有可能做的动作;右上部是表示各种条件组合的一个矩阵;右上部是表示各种条件组合的一个矩阵;右下部是和每种条件组合相对应

9、的动作。右下部是和每种条件组合相对应的动作。6.3.4 判定表判定表 条件条件 操作操作 条件组合矩阵条件组合矩阵 动作动作 假设某航空公司规定:假设某航空公司规定:乘客可以免费托运重量不超过乘客可以免费托运重量不超过30kg的行李。的行李。当行李重量超过当行李重量超过30kg时:时:对头等舱的国内乘客超重部分每公斤收费对头等舱的国内乘客超重部分每公斤收费4 4元元对其他舱的国内乘客超重部分每公斤收费对其他舱的国内乘客超重部分每公斤收费6 6元元对外国乘客超重部分每公斤收费比国内乘客多一倍,对外国乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半。对残疾乘客超

10、重部分每公斤收费比正常乘客少一半。 用判定表可以清楚地表示与上述每种条件组合相用判定表可以清楚地表示与上述每种条件组合相对应的计算行李费的算法。(对应的计算行李费的算法。(P128P128)国内乘客TTTTFFFF头等仓TFTFTFTF残疾乘客FFTTFFTT行李重量30T F F F FF F F F免费 (W-30)*2(W-30)*3(W-30)*4(W-30)*6(W-30)*8(W-30)*12 当数据元素的值多于两个时当数据元素的值多于两个时( (例如,例如,6.3.46.3.4例子例子中假设对机票需细分为头等舱、二等舱和经济舱等中假设对机票需细分为头等舱、二等舱和经济舱等多种级别

11、时多种级别时) ),判定表的简洁程度也将下降。,判定表的简洁程度也将下降。6.3.5 判定树判定树 表示复杂的条件组合与应做的动作之间的对应关系表示复杂的条件组合与应做的动作之间的对应关系; ; 判定树的简洁性不如判定表判定树的简洁性不如判定表, ,但易理解但易理解 经常出现同一个值重复写多遍经常出现同一个值重复写多遍; ; 且叶端重复次数急剧增加且叶端重复次数急剧增加. . 由于判定树的分枝次序对于最终画出的判定树的简洁程由于判定树的分枝次序对于最终画出的判定树的简洁程度有较大影响度有较大影响 所以选择哪一个条件作为第一个分枝是至关重要的所以选择哪一个条件作为第一个分枝是至关重要的. .图图

12、6.7 用判定树表示计算行李费的算法用判定树表示计算行李费的算法6.3.6 过程设计语言过程设计语言PDL(Program Design Language)应该具有下述特点:应该具有下述特点:关键字的固定语法,三种控制结构。关键字的固定语法,三种控制结构。为了使结构清晰和可读性好,通常在控制结构的头和尾都为了使结构清晰和可读性好,通常在控制结构的头和尾都有关键字,例如,有关键字,例如,if.fi(if.fi(或或endif).endif).(2) (2) 自然语言的自由语法,描述处理。自然语言的自由语法,描述处理。(3) (3) 数据说明。数据说明。纯量、数组、链表或层次等数据结构。纯量、数组

13、、链表或层次等数据结构。(4) (4) 模块定义和调用的技术,应该提供各种接口模块定义和调用的技术,应该提供各种接口描述模式。描述模式。(5)(5)可以作为注释直接插在源程序中间。可以作为注释直接插在源程序中间。1.数据说明数据说明 declare数据名数据名 as 限定词限定词2.子程序结构子程序结构/function procedure 子程序名子程序名 interface 参数表参数表 分程序或分程序或PDL语句语句 return end 子程序名子程序名3.分程序结构分程序结构begin 分程序名分程序名 PDL语句语句end 分程序名分程序名4.选择选择if 条件条件 then PD

14、L语句语句else PDL语句语句end if 5.WHILE型循环型循环 loop while 条件条件 PDL语句语句 end loop6.UNTIL型循环型循环 loop until 条件条件 PDL语句组语句组 end loop 7.CASE型型case 选择因子选择因子 of标号标号,标号,标号:PDL语句语句end case8.输入输入/输出结构输出结构print read display input output等等PDL: : begin execute process a loop until condition x8 Begin/ execute process b if

15、condition x1 then begin/ execute process f if condition x6 then loop until condition x7 execute process i end loop else begin/ execute process g execute process h end/ abx1x2x5fcx3x4deghix6x7x8j end if end/ else case xi of x2:loop while condition x5 execute process c end loop x3: execute process d x

16、4: execute process e end case end if end/ end loop exceute process j endabx1x2x5fcx3x4deghix6x7x8j6.5 程序复杂程度的度量程序复杂程度的度量6.5.1 McCabe方法方法1. 流图流图 McCabeMcCabe方法根据程序控制流的复杂程度定方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果量度量程序的复杂程度,这样度量出的结果称为程序的称为程序的环形复杂度环形复杂度。一个结点(圆)代表一条或多条语句(几个一个结点(圆)代表一条或多条语句(几个顺序执行语句);顺序执行语句);一

17、个顺序语句和一个菱形判断框可以对应一一个顺序语句和一个菱形判断框可以对应一个结点;个结点;一条边必须终止于一个结点(即使该结点不一条边必须终止于一个结点(即使该结点不表示任何结点);表示任何结点);当包含复合条件时,需要进行分解。当包含复合条件时,需要进行分解。图图6.16 由由PDL翻译成的流图翻译成的流图图图6.17 由包含复合条件的由包含复合条件的PDL映射成的流图映射成的流图2. 计算环形复杂度的方法计算环形复杂度的方法 环形复杂度定量度量程序的逻辑复杂度。有了描绘程序环形复杂度定量度量程序的逻辑复杂度。有了描绘程序控制流的流图之后,可以用下述控制流的流图之后,可以用下述3种方法中的任何一种来计种方法中的任何一种来计算环形复杂度。算环形复杂度。(1) 流图中的区域数等于环形复杂度。流图中的区域数等于环形复杂度。(2) 流图流图G的环形复杂度的环形复杂度V(G)=E-N+2,其中,其中,E是流图中边的是流图中边的条数,条数,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论