《软件工程》课件 第6章详细设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014年春 • 软件工程
6.2.1
1. 2. 3. 4.
设计问题
在设计人机界面的过程中,几乎总会遇到下述 4个问题: 系统响应时间 用户帮助设施 出错信息处理 命令交互
2014年春 • 软件工程
6.2.2
设计过程
用户界面设计是一个迭代的过程,步骤如下:
2014年春 • 软件工程
6.2.3
2014年春 • 软件工程
6.3.2
盒图(N-S图)
2014年春 • 软件工程
示例
2014年春 • 软件工程
N-S图的嵌套定义形式
2014年春 • 软件工程
特点:
① 没有箭头,不允许随意转移控制;
② 每个矩形框(Case中条件取值例外)都是一 个功能域(即一个特定结构的作用域),结 构表示明确; ③ 局部及全程数据的作用域易见;
2014年春 • 软件工程
6.3
过程设计的工具
在详细设计阶段,要决定各个模块的实现算法, 并精确地表达这些算法。表达过程规格说明的工 具叫做详细设计工具,它可以分为以下三类:
图形工具:程序流程图;盒图;问题
分析图; 表格工具:判断表;判断树; 语言工具:过程设计语言;
2014年春 • 软件工程
2014年春 • 软件工程
6.4.1 Jackson图
注意:
A A
S
A
I
Co
H中的方框表示模 块,而JD中的方 框代表几个语句构 成的简单操作; H表现调用关系, 而JD表现组成关 系。
B
C
Bo
B*
A=
B
A=
B
S C
A=B
C
2014年春 • 软件工程
2、Jackson方法:
例:一个正文文件由若干个记录组成,每个
必须回答式 无需回答式 警告式
无需回答式对话框
必须回答式对话框
2014年春 • 软件工程
警告式对话框
4、窗口(window)
下图描述了一个包括多个部件的窗口.
标题区
菜单 菜单区 工作区 大小区
退出区
图 标 区
滚 动 区
2014年春 • 软件工程
2. 信息显示指南
(1) 只显示与当前工作内容有关的信息。 (2) 不要用数据淹没用户,应该用便于用户迅速吸取信息的 方式来表示数据。 (3) 使用一致的标记、标准的缩写和可预知的颜色。 (4) 允许用户保持可视化的语境。 (5) 产生有意义的出错信息。 (6) 使用大小写、缩进和文本分组以帮助理解。 (7) 使用窗口分隔不同类型的信息。 (8) 使用“模拟”显示方式表示信息,以使信息更容易被用 户提取。 (9) 高效率地使用显示屏。
④ 易表现嵌套关系(embedded structure)以及模 块的层次结构。
2014年春 • 软件工程
6.3.3 PAD图
PAD是问题分析图(probl em analysis diagram)的 英文缩写,自1973年由 日本日立公司发明以后, 已得到一定程度的推广。
2014年春 • 软件工程
2014年春 • 软件工程
判定表的优点是能够简洁,无二义性的描述所有的处理规 则。缺点是它所表示的是静态逻辑,是在某种条件组合情况 下可能的结果,它不能表达加工的顺序,也不能表达循环结 构。因此,判定表不能成为一种通用的设计工具,一般作为 辅助工具配合其他工具一起使用。
2014年春 • 软件工程
例:“行李托运费的算法”的处理逻辑描述如下: 假设某航空公司规定,乘客可以免费托运重量不 超过30kg的行李。当行李重量超过30kg时,对 头等舱的国内乘客超重部分每公斤收费4元,对 其他舱的国内乘客超重部分每公斤收费6元,对 外国乘客超重部分每公斤收费比国内乘客多一倍, 对残疾乘客超重部分每公斤收费比正常乘客少一 半。试用判定表表示出该逻辑。
2014年春 • 软件工程
3. 数据输入指南
(1) 尽量减少用户的输入动作。 (2) 保持信息显示和数据输入之间的一致性。 (3) 允许用户自定义输入。 (4) 交互应该是灵活的,并且可调整成用户最喜欢 的输入方式。 (5) 使在当前动作语境中不适用的命令不起作用。 (6) 让用户控制交互流。 (7) 对所有输入动作都提供帮助。 (8) 消除冗余的输入。
x2
2 3
d
e
2014年春 • 软件工程
§2. 设计工具
特点: ① 结构清晰,层次分明,易读; ② 支持逐步求精的设计思想; ③ 容易将PAD自动转换为高级语言源程序。
2014年春 • 软件工程
6.3.4
判定表
当算法中包含多重嵌套的条件选择时,用程序流 程图、N-S图或PAD都不易清楚地描述。这时可 以用判定表或判定树来描述这些复杂的条件。判 定表与判定树除了在详细 设计阶段使用外, 在需求分析阶段也经常使用。 判定表一般由4部分组成:左上半部分列出所有 条件、左下半部分列出所有动作、右上半部分列 出各种条件组合,右下半部分列出和每组条件取 值组合对应的动作。其结构下图所示:
2014年春 • 软件工程
例:非结构化到结构化
2014年春 • 软件工程
例:非结构化到结构化
2014年春 • 软件工程
6.2
人机界面设计
人机界面设计是接口设计的一个重要的组成部分。 对于交互式系统来说,人机界面设计和数据设计、 体系结构设计及过程设计一样重要。 近年来,人机界面在系统中所占的比例越来越大, 在个别系统中人机界面的设计工作量甚至占总设 计量的一半以上。 问题:你心目中友好的人机界面是怎样的?
新的设计思想和风格:
清晰第一 使用标准的、规范的控制结构 逐步细化
2014年春 • 软件工程
例:打印A, B, C三数中最小者的程序
2014年春 • 软件工程
程序1
100 110 120 130 140
程序2 if ( A < B ) and ( A < C ) then write ( A ) if ( A < B ) goto 120; else if ( B < C ) goto 110; if ( A ≥B ) and ( B < C ) then write ( C ); write ( B ) goto 140; else write ( B ); write ( C ) goto 140; endif if ( A < C ) goto 130; endif goto 100; write ( A ); end
固定及下拉菜单
2、图

在用户界面中,加入丰富多彩的画面,将能够更加形象地为用户提供 有用的信息,以达到可视化的目的。主要的处理操作有:图像的隐蔽和再 现、屏幕滚动和图案显示、动画等。
2014年春 • 软件工程
3、对话框
对话框是在需要时,显示在屏幕上一个矩形区域内的图形和正文信息。 通过对话,实现系统和用户之间的通信。 对话框显示的方式与弹出式菜单类似,即瞬时弹出。同时,系统还应 将对话框所覆盖的原图像进行保存,以便在对话结束后能立即恢复。 有三种对话形式:
2014年春 • 软件工程
2014年春 • 软件工程
6.3.5
判定树
判定树实质上是判定表的一种变形,本质上是一 样的。 判定树的优点是形式简单、比较直观、易于掌握 和使用。 缺点是不如判定表简洁。对于:“行李托运费的 算法”例的描述可用判定树表示成如下图所示的 形式:
2014年春 • 软件工程
I
表格体
I
空格总数
字符*
S
串信息*
空格O
非空格O
字符串
空格数
第2步:在两个图中指出有直接因果关系(causality)、 可以同时处理的单元(重复的次序,次数均相同)
2014年春 • 软件工程
输入
正文文件
I
输出
输出表格
字符串*
I
表格体
I
空格总数
字符*
S
串信息*
?
字符串 空格数
空格O
非空格O
人机界面设计指南
用户界面设计主要依靠设计者的经验。 一般交互指南

信息显示指南 数据输入指南
2014年春 • 软件工程
1. 一般交互指南
(1) 保持一致性。 (2) 提供有意义的反馈。 (3) 在执行有较大破坏性的动作之前要求用户确认。 (4) 允许取消绝大多数操作。 (5) 减少在两次操作之间必须记忆的信息量。 (6) 提高对话、移动和思考的效率。 (7) 允许犯错误。 (8) 按功能对动作分类,并据此设计屏幕布局。 (9) 提供对用户工作内容敏感的帮助设施。 (10) 用简单动词或动词短语作为命令名。
6.3.1
程序流程图
程序流程图也称为程序框图,程序流程图中使用 的各种符号是:
2014年春 • 软件工程
循环的标准符号
注解的使用
2014年春 • 软件工程
多出口判断
2014年春 • 软件工程
示例
2014年春 • 软件工程
程序流程图特点
优点:容易掌握,且历史“悠久”,使用广泛。 缺点:本质上不具备逐步求精的特点,对于提高 大型系统的可理解性作用甚微; 不易表示数据结构; 转移控制太方便。 趋势:停止使用
⑴ 在保证正确可靠的前提
下,尽量提高算法的可读 性 ⑵ 结构化设计方法 ① 自顶向下逐步求精;
⑶ 确定模块间的接口细节
⑷ 为每个模块设计测试
② 具有单入、单出的控 制结构(取消GOTO语句) ⑶ 用工具来描述模块算法
2014年春 • 软件工程
6.1
结构程序设计
传统的设计技术和旧观念:
强调设计的随意性,具有浓厚的个人色彩. 追求程序效率和个人设计技巧
例:N-S图与PAD的转换
a
T T
b x1 f x4 i g
x5
F
F
k: x2
1 Do-While x3 c 2 3
k
Do-Until
h
Do-Until x6
d
e
j
2014年春 • 软件工程
开始
a
b
Until x6
f
x4
Until x5
i
结束
j
x1
g k h c
k
def
1
While x3
记录是一个字符串。要求统计每个记录中空格
字符的个数,以及文件中空格字符的总个数。
要求的输出数据格式是:每复制一行输入字符
串之后,另起一行印出这个字符串中的空格数,
最后印出文件中空格的总个数。
2014年春 • 软件工程
第1步:用Jackson图描述 I\O 的数据结构
输入
正文文件
I
输出
输出表格
字符串*
2014年春 • 软件工程
交互界面的基本类型
常用有以下类型:菜单、图象、对话框和窗口。 1、菜单(menu) 按照显示方式 正文菜单、图标菜单、正文和图标混合动位置(弹出)、下拉式、嵌入式
固定菜单
下拉菜单
2014年春 • 软件工程
混合菜单
图6.7 用判定树表示计算行李费的算法
2014年春 • 软件工程
6.3.6
过程设计语言
应具备以下特点: ① 有固定的外语法(keyword); ② 内语法用自然语言描述; ③ 有数据说明; ④有子程序定义与调用机制;
优点:易于实现由PDL到源代码的自动转换。 缺点:不够直观。
2014年春 • 软件工程
2014年春 • 软件工程
友好的用户界面应具有的特性
1、可使用性 ① 使用简单。 ② 用户界面中所用术语的标准化和一致性。 ③ 具有HELP功能。 ④ 快速的系统响应和低的系统成本。 ⑤ 具有容错能力。 2、灵活性 ① 考虑用户的特点、能力、知识水平。 ② 提供不同的系统响应信息。 ③ 提供根据用户需求制定和修改界面。 3、界面的复杂性与可靠性 复杂性—界面规模及组织的复杂程度。应该愈简单愈好。 可靠性—指无故障使用的时间间隔。用户界面应该能够保证用户正 确、可靠地使用系统,及程序、数据的安全。
第6章 详细设计
6.1 6.2 6.3 6.4 6.5 6.6 结构程序设计 人机界面设计 过程设计的工具 面向数据结构的设计方法 程序复杂程度的定量度量 小结
2014年春 • 软件工程
引言:详细设计的任务和原则
任务: 原则:
为SC图的每一个模块确定
使用的算法和数据结构 ⑴ 确定模块内算法,用某 种工具来表达 ⑵ 确定模块内的数据结构
面向数据流的结构化分析与设计方法总结
2014年春 • 软件工程
6.4
面向数据结构的设计方法
在许多应用领域中信息都有清楚的层次结构,数 据结构既影响程序的结构又影响程序的处理过程, 层次的数据组织通常和使用这些数据的程序的层 次结构十分相似。
面向数据结构的设计方法的最终目标是得出对程 序处理过程的描述。这种设计方法并不明显地使 用软件结构的概念,模块是设计过程的副产品, 对于模块独立原理也没有给予应有的重视。因此, 这种方法最适合于在详细设计阶段使用,也就是 说,在完成了软件结构设计之后,可以使用面向 数据结构的方法来设计每个模块的处理过程。
相关文档
最新文档