03面向对象设计-人机交互部分的设计
- 格式:pdf
- 大小:336.58 KB
- 文档页数:21
①输入步骤的细化 ②输入设备的选择 ③输入信息表现形式的选择(命令,数据) (2)输出的细化 ①输出步骤的细化 ②输出设备的选择 ③输出信息表现形式的选择
6
二、命令的组织
不受欢迎的命令组织方式:
(1)一条命令含有大量的参数和任选项 (2)系统有大量命令,不加任何组织和引导
抽取方法: 删除所有与输入、输出无关的语句和不再包含任何内容 的控制语句与括号, 剩下的就是对一个参与者(人)使用一项系统功能时的 人机交互描述。
3
收款员收款(use case) 输入开始本次收款的命令;
作好收款准备,应收款总数 置为0,输出提示信息; for 顾客选购的每种商品 do 输入商品编号; if 此种商品多于一件 then 输入商品数量 end if; 检索商品名称及单价; 货架商品数减去售出数; if 货架商品数低于下限 then
象之间的通讯,而只能对界面部分对象进行响应,也就是说,只有界面部分
的对象才能访问问题域部分的对象。通常把界面对象向问题域部分对象传输 的信息或发布命令看作是“请求”,而把从问题域部分对象向界面部分对象传 输的信息看作是“回应”或“通知”。
(c)尽量减少界面部分与问题域部分的耦合。由于界面是易变的,从易于 维护和易于复用的角度出发,问题域部分和界面部分应该是低耦合的。
在图上看不到祖先类的操作和属性。解决问题的方法是,把所需要的祖 先类的操作和属性,在标有{复用}的类中重新列出来,并加上标记,如 “√”,表明这些属性和操作是继承而来的,不需要在本系统中实现,这 样做仅仅是为了使用方便。
处理结果 提示信息
提示信息
处理结果 提示信息
10
反馈信息:需较长时间执行命令。
处理结果,可能不需要。
提示信息:对下一步可输入的命令的 提示。
11
在建立命令树时,应遵循如下策略:
n 把使用最频繁的命令放在前面,按照用户的工作步骤进行排列。 n 在命令中发现整体-部分模式,以帮助对命令的组织与分块。 n 每层命令的个数应遵循7+2原则,命令的层次深度尽量要控制在三层
a=50% b=30% c=20%
1..* 订阅者
有变化时,向管 理者发布事件。
维护出版者和订 阅者间的映射, 把出版者发布信 息,利用参数通 知给订阅者。
向管理者订阅事 件。
解决问题域中的对象 对界面层对象的访问问题。
15
Observer (观察者)模式用于定义对象间的一对多的依赖关系,当 一个对象发生变化并对外发布消息时,所有依赖它的对象都将得 到通知并可进行更新。后一句话中的那组对象是观察者,它们要 在发布消息的对象中进行登记(订阅),以便在发布消息时能找 到它们。该模式也称为发布-订阅(Publish-Subscribe)模式。
基本命令:使用一项独立的系统功能的命令。(提取后的用况) 命令步:在执行一条基本命令的交互过程中所包含的具体输 入步骤。 高层命令:如果一条命令是在另一条命令的引导下被选用的 ,则后者称作前者的高层命令。
命令的组措施——分解与组合
(1)分解:将一条含有许多参数和选项的命令分解为若干命令步 (2)组合:将基本命令组织成高层命令,从高层命令引向基本命令
•易学、易用、操作方便 •尽量保持一致性 •及时提供有意义的反馈 •使用户的注意力集中在当前的任务上而不是界面上 •尽量减少用户的记忆 •具有语境敏感的帮助功能 •减少重复的输入和操作 •对用户的操作具有容错性 ,如UNDO •防止灾难性的错误 •其它:如艺术性、趣味性、风格、视感等
5
9.4 人机界面的OO设计
问题域部分
人机交互部分
也可以通过在人机交互部分和问题域部分之间增加控制器或协调类的方式 解决这种问题,如可采用下面将要讲述的出版-订阅模式,还有一些相关的模 式
14
例题:出版-订阅模式(观察者模式)
90
80
70
60
50
东部
40
西部
30
北部
20
10
0 第一季度 第二季度 第三季度 第四季度
出版者 1 1 管理者 1
输出提示信息; for 顾客选购的每种商品
输入商品编号; if 此种商品多于一件 then
输入商品数量 end if;
打印商品编号、名称、 数量、单价、总价; end for; 打印应收款总数 输入顾客交来的款数 打印交款数及找回款数;
(b)人机交互描述
从use case提取人机交互描述
4
10.3 人机界面的设计准则
第10章
人机交互部分的设计
10.1 什么是人机交互部分
把人机交互部分作为系统中一个独立的组成部分,进行分析和 设计,有利于隔离界面支持系统的变化对问题域部分的影响
MXOS-SW-FW/iMinndoootwwifs
人
数
机 交 互
问题域 部分
据 管 理
部
部
分
分
控制接口部分
1
10.2 人机交互部分的需求分析
7
基本命令及其 命令步的结构
(a) 线性结构
(b) 树型结构
(c) 半序网状结构
(d) 一般网状结构
8
高层命令及其结构
按功能组织:如文件下有:创建、打开、关闭、打印、删除等。 按子系统组织:如文本编辑子系统、编译自系统。
9
两层命令之间的输出信息结构
反馈信息 处理结果 提示信息
反馈信息 处理结果 提示信息
通知供货员请求上货 end if; 计算本种商品总价并打印编号、 名称、数量、单价、总价; 总价累加到应收款总数; end for; 打印应收款总数; 输入顾客交来的款数; 计算应找回的款数, 打印以上两个数目, 收款数计入账册。
(a)一个use case的例子
收款员收款(人机交互) 输入开始本次收款的命令;
以内。
12
三、用OO概念表达所有的界面成分*
1、选择界面支持系统(窗口系统、图形用户界面、可视化编程环境) 2、设计报表及报告.对要生成的报表和报告格式等进行设计。每一种报表或 报告应对应于一个类。 3、设计诸如安全/登录、设置和业务功能之类的窗口。
每一种窗口对应于一个类。 4、在窗口中,按照命令的逻辑层次,部署所需要的元素,如菜单、工作区 和对话框等。窗口中的部件元素对应窗口类的部分类,部分类与窗口类形成 聚合关系。 5.发现窗口类间的共性以及部件类间的共性,定义较一般的窗口类和部件 类,分别形成窗口类间以及部件类间的泛化关系。 6.用类的属性表示窗口或部件的静态特征,如尺寸、位置、颜色和选项等。 7.用操作表示窗口或部件的动态特征,如选中、移动和滚屏等。有的操作要 涉及到问题域中的类。 8.发现界面类之间的联系,在其间建立关联。必要时,进一步地绘制用户与 系统会话的顺序图。
对使用系统的人进行分析 ——以便设计出适合其特点的交互方式和界面表现形式;
对人和机器的交互过程进行分析 ——核心问题是人如何命令系统,以及系统如何向人提交
信息。
1、分析与系统交互的人——人员参与者 人对界面的需求,不仅在于人机交互的内容,而且在于他
们对界面表现形式、风格等方面的爱好。 ——前者是客观需求,对谁都一样;后者是主观需求,因
采用观察者模式,要在发布消息的对象中设立增减观察者对象的 操作,对于观察者对象要建立一个统一的用于接收消息的接口。 益处:观察者发生变化时,只须在发布消息的对象中增减对象标 识即可,而不需进行其他改动
16
Observer模式的通用结构图
17
视图-帮助者模式
18
例题
19
界面类图—局部示例
20
由于复用类的子类可能要使用祖先类的操作和属性,这样就出现了
13
9. 建立界面类与问题域类之间的联系。有些界面对象要与问题域中的对 象进行通讯,故要对二者之间的通讯进行设计。在具体设计时,设计人员应 该注意以下几点:
(a)人机界面只负责输入与输出和窗口更新这样的工作,并把所有面向问 题域部分的请求转发给问题域部分,即在界面对象中不应该对业务逻辑进行
处理。 (b)一种常见的作法是,问题域部分的对象不应该主动发起与界面部分对
人而异。
(1)列举所有的人员参与者 (2)调查研究
(3)区分人员类型
(4)统计(或估算)各类人员的比例
(5)了解使用者的主观需求
(6) 按照一定的准则进行折中与均衡
2
2、从use case分析人机交互
use case的构成 参与者的行为和系统行为按时序交替出现,左右分明。 形成交叉排列的段落。 每个段落至少含有一个输入语句或输出语句; 有若干纯属参与者自身或系统自身的行为陈述; 可能包含一些控制语句或括号。