面向对象第8章人机交互部分的设计ppt课件.ppt

上传人:牧羊曲112 文档编号:1371587 上传时间:2022-11-15 格式:PPT 页数:36 大小:537KB
返回 下载 相关 举报
面向对象第8章人机交互部分的设计ppt课件.ppt_第1页
第1页 / 共36页
面向对象第8章人机交互部分的设计ppt课件.ppt_第2页
第2页 / 共36页
面向对象第8章人机交互部分的设计ppt课件.ppt_第3页
第3页 / 共36页
面向对象第8章人机交互部分的设计ppt课件.ppt_第4页
第4页 / 共36页
面向对象第8章人机交互部分的设计ppt课件.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《面向对象第8章人机交互部分的设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《面向对象第8章人机交互部分的设计ppt课件.ppt(36页珍藏版)》请在三一办公上搜索。

1、第八章 人机交互部分的设计,最终的系统是要提供给用户使用的。用户对系统的理解,包括用户要操纵的系统中的事物、系统能够完成的功能以及任务的实施过程,决定了用户对系统的使用。而用户对系统的使用是通过人机界面来进行的。 现今的用户对软件系统的人机交互方面的要求越来越高,人机界面的设计在软件系统开发中所占的地位也就越来越重要。特别是,新一代的人机界面将是以人为中心的计算,这样人机交互部分的设计作为一个独立且重要的领域,就显得越发重要。 简言之,人机交互部分是人和计算机之间交互信息的媒介,对它的设计涉及计算机科学、心理学、艺术学、认知科学和人机工程学等学科。本章讲述的是人机交互的软件方面的设计。,对使用

2、系统的人进行分析以便设计出适合其特点的交互方式和界面表现形式;对人和机器的交互过程进行分析核心问题是人如何命令系统,以及系统如何向人提交信息。 设计人机交互就是要设计输入与输出,其中所包含的对象(称作界面对象)以及其间的关系构成了系统的人机交互部分的模型。,8. 1 什么是人机交互部分,最初设计人员按设计目标(用户需求),设计出界面(原型),提交给用户去加以评判,也即这个初步的界面起抛砖引玉的作用。用户通过对界面的学习,根据自己的经验和需求,经过一定的评判,把结果反馈给设计人员,让设计人员继续设计。这种过程可能要反复进行多次,使得双方的意见达到一致或达到一定程度的一致,直至用户认可为止。,人机

3、界面的开发不仅是设计和实现问题,也包括分析问题。可以在不同的开发阶段,对人机交互部分进行不同的处理。在捕获需求时对用况所做的描述,其实就包含了人机交互部分的信息。 这些工作的目标是为了更好地理解系统的需求。尽管那时注重的是系统的功能需求,但也很可能在那时分析人员与用户就系统的界面的框架和内容已经达成了共识。若有必要,在确定了用况模型后,可以紧接着完成人机交互部分的分析工作。考虑到经过了OOA阶段,当时的用况模型会有一些变动,以及要考虑用户群的特点等因素,在OOD阶段仍有必要重新分析原来所做的人机交互部分的分析结果。,对人机界面的分析,首先要对使用系统的人进行分析,以得到适合其特点的交互方式和界

4、面表现形式;然后对人和机器的交互过程进行分析,解决的核心问题是人如何命令系统,以及系统如何向人提交信息。要以捕获需求时获得的用况模型为基础,加上已有的界面原型,进行后一项工作。,8. 2 如何分析人机交互部分,1. 分析与系统交互的人员参与者 人对界面的需求,不仅在于人机交互的内容,而且在于他们对界面表现形式、风格等方面的爱好。前者是客观需求,对谁都一样;后者是主观需求,往往因人而异。如下给出了分析策略:1)列举所有的人员参与者;2)对人员参与者进行调查研究; 3)区分人员类型,并了解各类人员的主观需求; 4)统计(或估算)出各类人员的比例; 5)按照一定的准则进行折中与均衡。,2. 从用况分

5、析人机交互 我们先回顾一下通常的用况的构成:1)参与者的行为和系统行为按时序交替出现,在布局上左右分明,形成交叉排列的段落;2)每个段落至少含有一个输入语句或输出语句; 3)有若干纯属参与者自身或系统自身的行为陈述; 4)可能包含一些控制语句或括号。 从用况中抽取人机交互序列可以用以下方法:针对各用况,先删除所有与输入、输出无关的语句和不再包含任何内容的控制语句与括号,剩下的就是对参与者(人)使用系统功能时的人机交互描述。 图8-2为一个从用况提取人机交互描述的示例。,收款员收款(use case)输入开始本次收款的命令;作好收款准备,应收款总数置为0,输出提示信息;for 顾客选购的每种商品

6、 do 输入商品编号; if 此种商品多于一件 then 输入商品数量 end if;检索商品名称及单价;货架商品数减去售出数;if 货架商品数低于下限 then 通知供货员请求上货end if;计算本种商品总价并打印编号、名称、数量、单价、总价;总价累加到应收款总数;end for;打印应收款总数;输入顾客交来的款数;计算应找回的款数,打印以上两个数目,收款数计入账册。 (a)一个use case的例子,收款员收款(人机交互)输入开始本次收款的命令;输出提示信息;for 顾客选购的每种商品 输入商品编号; if 此种商品多于一件 then 输入商品数量 end if;打印商品编号、名称、数量

7、、单价、总价;end for;打印应收款总数输入顾客交来的款数打印交款数及找回款数; (b)人机交互描述,从use case提取人机交互描述,8. 3 如何设计人机交互部分,以往在操作系统和编程语言的支持下,或再加上图形包,进行图形方式的人机界面开发,工作量是很大的。也就是说,以往对图形化的人机交互的开发在整个系统的开发工作中占有很大比例。现在,可以通过窗口系统、GUI和可视化编程环境这样的高级界面支持系统进行人机界面开发。特别是使用可视化编程环境可以按所见即所得的方式,定制所需的人机界面。如此定义的界面对象可由编程环境提供的工具自动地转化为程序代码。这样,人机界面的设计工作就可以大大简化,但

8、仍有一些设计工作要做。其中的很多内容对各种设计方法都是相同的,也有一些是采用本方法所必须要考虑的。例如,可视化编程环境一般都带有内容丰富的界面类库,界面类库中对大部分常用的界面对象都给出了类的源代码,在进行人机界面设计时要充分地复用这些类。,8.3.1设计输入与输出,根据前面从用况中提取出来的对人机交互的描述,设计输入与输出。首先要选择界面支持系统,如窗口系统、图形用户界面(GUl)或可视化编程环境,然后进行输入与输出设计。输入与输出技术正在不断地发展,这里仅就目前常见输入与输出的方式进行阐述。 1.设计输入 在设计输入时,要进行如下的工作。(1)确定输入设备 常见的输入设备有键盘、鼠标、磁卡

9、阅读器、条码阅读器、光电字符识别阅读器、扫描仪、触摸屏、电子笔和书写板等。键盘和鼠标属于标准的计算机设备,不考虑在内。对于一些非标准的计算机外部设备的接口程序,可以把它们放在相应的类中。如果要从外系统进行输入,可以把外系统的接口程序放在相应的类中。如果要隔离外部设备或外系统的变化对本系统的影响,可以针对外部设备或外系统的接口程序单设立类。对于某些复杂的情况,可能还需要考虑同步机制。,(2)设计输入界面 在用户的输入界面中,主要的界面元素有窗口、菜单、对话盒、图符、滚动条和按钮等。下面以菜单和对话盒为例,说明如何设计其内容。 菜单是提供给用户的一系列对应着用户动作的条目列表。大部分系统都具有通常

10、形式的菜单,如文件、视图、工具、窗口和帮助等,但也都具有自己的特有部分。在设计特有部分时,要保证术语的一致性与简洁性,并按逻辑对条目进行分组。菜单要设计成面向不同用户的,最好可以进行重组。 对话盒是用来收集用户的输入信息或向用户提供反馈的区域。用于输入时,其上可有一些选择钮和输入框等元素,可用鼠标在其上选取值,或从输入设备向其中输入值。在设计对话盒时,要注意如下几点: 1)使用有意义且易于理解的简短标题和输入框名。 2)按逻辑对输入框进行分组并排序。 3)允许对文本型输入框进行简单的编辑。 4)清楚地标出哪些输入框是可选的,哪些是必选的。 5)对输入框进行必要的解释(如在Windows的状态条

11、上列出解释)。,设计对话盒时,还要注意对输入内容的检查: 1)尽可能地防止错误的输入,当输入有误时要提供出错信息。 2)输入框组合控制。检查各输入框中的数据项的可能组合,以保证输入的数据是正确的。 例如,参加工作的日期必须晚于出生日期。 3)数据的有效范围控制。检查所输入的数据的合理性。例如,在现今社会,一个人的年龄不应该超过200岁。 4)输入框组合的完备性。确保所有必要的输入框都要被输入。例如,在进行身份检查时, 除了输入名称,还要输入密码。 5)数据的有效位数的控制。例如,身份证上的号码必须是15位或18位的。,(3)输入步骤的细化 向系统输入信息,可以一次输入完毕,也可以分为若干细小的

12、步骤完成。以较少的步骤完成输入,意味着每一步输入的内容较多,不易记忆;或者要从较多的选项中进行选择,不易发现目标。以较多的步骤完成输人,可以使每个步骤的操作比较简单,并且容易对用户形成引导,但总的操作步骤会增加,使操作效率下降。技能熟练的用户倾向于追求效率,初学者和一般水平的人员更重视系统以较多的步骤引导他们进行正确的操作。一项输入被细化后,可能变成输入与输出交替的动作序列,其中的输出是系统的计算结果或系统对用户的提示信息等。,2.设计输出 在设计输出时,要进行如下的工作。(1)确定输出设备 常见的输出设备有打印机、显示器、绘图仪、文件或数据库表等。对于一些非标准的计算机外部设备的接口程序,可

13、以把它们放在相应的类中。如果要向外系统输出,可以把与外系统的接口程序放在相应的类中。如果要隔离外部设备或外系统的变化对本系统的影响,可以为外部设备或外系统的接口程序单设立类。对于某些复杂的情况,可能还需要考虑同步机制。(2)确定输出的形式和内容 输出的形式有文本、表格、图形、图像、声音和视频片段等。 输出的内容包括提示信息、系统的计算或处理结果、对输入处理情况的反馈信息等。 提示信息告诉用户下面要进行何种输入以及如何输入。 对于系统的计算或处理结果的输出,总是伴随着用户输入的命令的执行而出现。若要在窗口或打印机上以报表、报告、图形或窗口上的多媒体演示等形式进行输出,则要先确定每种形式的内容要求

14、,然后把它们各对应于一个或几个类。,对于反馈信息,一般是在系统需要较长的时间进行计算时才需要的,表明系统已经接收到命令,正在进行处理,对于这种情况要表示出处理的进度。(3)输出步骤的细化 如果系统输出的信息量较大,可以分若干步骤进行输出。一种常见的做法是发一条简单的信息,通知用户如何得到更详细的输出信息。另一种做法是为用户设计一些阅读或浏览输出信息的动作,在这些动作的控制下,展示输出信息中用户所关心的部分。这样,一项输出可能被细化为一个输入与输出交织的过程。细化时考虑的主要因素是如何使用户感到方便,以及输出介质(如显示屏、纸张等)的版面限制。,8.3.2命令的组织,在设计输入与输出时,还有一项

15、重要的工作要做,那就是设计用户使用系统的命令以及对命令的组织。系统可能有大量的命令,且一条命令可能含有大量的参数和任选项,如果对命令不加任何组织和引导,会给用户带来不便。可采用两种技术措施对命令进行组织: 1)分解:将一条含有许多参数和选项的复杂命令分解为若干较简单的命令。2)组合:当一个系统的命令很多时,按照它们的功能或者所属于的子系统,组合成若干命令组,使每组只包含几条命令。这样,命令间就形成了层次结构。,按照下面的概念以及用户需求,运用分解与组合技术,实现对命令的定义与组织。 基本命令:使用一项独立的系统功能的命令。一个从用况提取出来的人机交互过程是针对一项系统功能的,基本命令正是开始该

16、交互过程并使用该项系统功能的命令。选中一个基本命令,对应的事件要传送到实现该命令功能的系统成分。也即由人机交互部分的对象接收命令后,向问题域部分中实现该功能的对象发消息,请求进行处理。 命令步:在执行一条基本命令的交互过程中所包含的具体输入步骤。从一个用况提取出来的人机交互过程的各项输入都是这样的命令步。 高层命令:如果一条命令是在另一条命令的引导下选用的,则后者称作前者的高层命令。 高层命令是对基本命令的组织,相当于一个命令索引目录。 高层命令并不涉及某一项具体的系统功能,只是显示下一层可选的系统功能,以供用户选择。对其常见的设计方式为主菜单条和下拉菜单等。,图8-3展示了基本命令及其命令步

17、的结构。,a)线性结构,b) 树形结构,图8-3展示了基本命令以及命令步间的关系,图中的实心圆点表示一个基本命令开始的命令步,空心圆点表示后续的一个命令步。 若基本命令过多,就需要用高层命令进行组织。可按功能的相似性进行组织,如在常见的菜单子系统中,高层命令“文件”下有“创建”、“打开”、“关闭”和“保存”等基本命令。也可以按子系统结构来组织基本命令,如对于正文编辑子系统和编译子系统,要把属于这两个子系统的全部命令分别组织到高层命令“编辑”和“编译”之下。图8-4说明了高层命令及其结构。 图中的实心圆点仍表示开始基本命令的命令步,空心圆点表示高层命令。根节点表示启动整个系统的命令,或启动系统的

18、一个人机界面的命令。根节点的下一层命令是界面启动后在最高层次上的可以被用户选择的命令(如主菜单上的命令)。虚线表示某些上层命令共享某个下层命令,或从下层命令转向高层命令。,图8-4高层命令及其结构,在两个命令步之间通常要输出信息,如图8-5所示。,图8-5命令之间的输出信息结构,图8-5a表示两个命令步之间不存在着输出信息结构。图8-5b表示两个命令步之间可能存在着三种输出信息结构。第一种为反馈信息,在一个命令需要较长的时间执行时,应该向用户显示当前命令执行的情况,如给出一个进度条;第二种为处理结果,当前命令执行的结果可能要向用户显示;第三种为提示信息,即对下一步可输人的命令的提示。图8-5c

19、表示两层命令之间的更为复杂的输出信息结构。 在建立命令树时,应遵循如下策略: 1) 把使用最频繁的命令放在前面,或按照用户的工作步骤进行排列。 2) 在命令中发现整体-部分模式,以帮助对命令进行组织。 3)每层命令的个数应遵循72原则,命令的层次深度尽量要少。,8. 3. 3 用OO概念表达所奇的界面成分,按照上述根据人机交互需求所做的设计,可以用OO概念表达所有的界面成分。如下为一些指导策略: 1)每个窗口分别对应一个类。 2)在窗口中,按照命令的逻辑,部署所需要的元素,如菜单、工作区和对话框等。窗口中的部件元素对应窗口类的部分类,部分类与窗口类形成聚合关系。 3)发现窗口类间的共性以及部件

20、类间的共性,定义较一般的窗口类和部件类,分别形成窗 口类问以及部件类间的泛化关系。 4)用类的属性表示窗口或部件的静态特征,如尺寸、位置和颜色等。如果使用界面生成工具可视化地定义定制界面,这样的属性往往会自动地出现在窗口和部件的属性栏中。重要的是用属性表示逻辑特征,如在菜单类中,每个选项表示一条命令,属性的名称要与它所对应的命令相符。还要注意对表示界面类间的聚合关系的属性的命名,这样的属性要确切地表达每个部件的名称。 5)用操作表示窗口或部件的动态特征,如选中、移动和滚屏等。如果使用界面生成工具, 不需要对这样的操作的特征标记花费精力,重要的是对命令进行响应的部分的设计,如选中一个命令按钮后具

21、体要执行什么后续操作。,6)发现界面类之间的联系,在其间建立关联。必要时,进一步地绘制用户与系统会话的顺序图。 7)建立界面类与问题域类之间的联系。有些界面对象要与问题域中的对象进行通信,故要对二者之间的通信进行设计。在具体设计时,设计人员应该注意以下几点: 人机界面只负责输入与输出和窗口更新这样的工作,并把所有面向问题域部分的请求转发给问题域部分,即在界面对象中不应该对业务逻辑进行处理。 在多数情况下,问题域部分的对象不应该主动发起与界面部分对象之间的通信,而只能对界面部分对象进行响应,也就是说,只有界面部分的对象才能访问问题域部分的对象。通常把界面对象向问题域对象传输信息或发布命令看作是请

22、求,而把问题域对象向界面对象传输信息看作是回应或通知。 尽量减少界面部分与问题域部分的耦合。由于界面是易变的,从易于维护和易于复用的角度出发,问题域部分和界面部分应该是低耦合的。解决问题的一种方法是,二者之间要通过接口来进行通信,图8-6给出的是一个示意图。,也可以通过在人机交互部分和问题域部分之间增加控制器或协调类的方式解决这种问题,如可采用下面将要讲述的发布一订阅模式。 在上面的策略中已经提到,在可视化的编程环境下,能节省很多界面设计工作。例如,利用工具,选择界面元素,如窗口、菜单、对话框、图符、滚动条、控制板、文本框和按钮等,构建人机界面;所创建的各界面元素,都有自动创建的代码与之对应,

23、且界面元素间的嵌套关系也能体现在代码中。这种创建界面的工作是所见即所得的。但上述建立的界面类与问题域类之间的联系仍需要设计人员去设计。,图8-6问题域部分与人机交互部分通过接口进行联系,如下为两个有关人机界面部分设计的例题。 【例题8-1】用发布一订阅模式衔接问题域部分和人机交互部分。使用该模式可解决一些问题域中的对象与界面对象间进行交互的问题。图8-7说明了对一组不断变化的数据,用三种显示方式进行实时地显示。,图8-7用三种方式对一组不断变化的数据进行实时地显示,在系统中,计算数据的工作由问题域部分完成,显示工作由界面部分完成。由于显示方式是易变的,此处要采用发布订阅模式来解决这个问题。图8

24、-8所示是采用该模式所建立的一个模型。,图8-8采用发布一订阅模式衔接问题域部分和人机交互部分,1.*,1,1,1,另一种方式,显示窗口访问统计数据,在该模型中,订阅者向发布者订阅所感兴趣事件,出版者向发布者发布事件,发布者维护出版者和订阅者间的映射。当数据有变化时,发布者把出版者发布的数据情况利用消息通知给订阅者。订阅者是人机界面模型中的一部分,出版者是问题域模型中的一部分,发布者是人机交互部分和问题域部分之间的协调器。 在图8-8中,一个发布者可以管理多个订阅者,这样无论增加或减少显示方式,都不需要改动出版者,而且对订阅者的显示方式的修改,对出版者也没有影响。有关发布一订阅模式的更多内容请

25、见第12章12.5节。,a=50%b=30%c=20%,1.*,1,1,1,另一种方式,显示窗口访问统计数据,目标是通知的发布者,它发出通知时,并不知道谁是它的观察者.可以有任意数目的观察者订阅并接收通知.,12.5 Observer模式,Observer (观察者)模式用于定义对象间的一对多的依赖关系,当一个对象发生变化并对外发布消息时,所有依赖它的对象都将得到通知并可进行更新。后一句话中的那组对象是观察者,它们要在发布消息的对象中进行登记(订阅),以便在发布消息时能找到它们。该模式也称为发布订阅(Publish-Subscribe)模式。,采用观察者模式,要在发布消息的对象中设立增减观察者

26、对象的操作,对于观察者对象要建立一个统一的用于接收消息的接口。 (若有必要,采用适配器模式来适配观察到的子类) 益处:观察者发生变化时,只须在发布消息的对象中增减对象标识即可,而不需进行其他改动。,12.3 Adapter模式(结构型),Adapter(适配器)模式用于将类的一个接口转换为另一个类所需的接口,以使由于接口不兼容的类能够一起协作。,现系统要增加绘制圆形的功能,并且要求复用一个绘制圆型的类Circle。若类Circle中的绘图和填充操作的特征标记与类Polygon的并不一致,则无法使用图中运用的多态机制。解决该问题的一个方法是修改类Circle中的特征标记。若类Circle中的特征

27、标记已经用在其他的类中,则会引起一系列的修改问题。况且修改他人的代码有时还会出现难以预测的副作用。,对象Adapter模式,类Adapter模式,【例题8-2】用00概念表达界面成分。图8-9中给出的类图描述了一个界面的构成。,图8-9用类图描述界面构成的示例,上面已经提到,在可视化的编程环境下设计工作大为简化,往往不需要建立上面那样的模型。若有必要建立这样的模型,可以直接使用可视化编程环境或类库所提供的可复用类。在复用时,一种方式是直接使用,即把所复用的类标上复用,在类图中直接使用。另一种方式是对复用类进行继承,以进行扩充。图8-10为上述两种复用方式的示例。,图8-10两种复用方式示例,8

28、.4人机交互部分的设计准则,有关人机界面的设计原则有很多,都做到是不易的。但必须要保证界面的正确性和用户友好性。如下是一些重要的界面设计原则。(1)易学、易用、操作方便 易学意味着系统拥有大量的表单、对话框、广泛的提示信息和指导信息等。易用和操作方便,意味着系统拥有快捷键、热键、大信息量屏幕显示等功能。但易学与易用和操作方便这两方面有时是冲突的,因为有时易学相对于易用和操作方便来说,操作方式过于冗余。对于这种情况最好要由用户来评价,在这两方面进行折中,原则为供用户使用的信息数量要适当,排列要合理,意义要明确。(2)尽量保持一致性 一致性有助于用户学习,可减少其学习量和记忆量。对窗体的组织方式、

29、菜单项的命名及排列、图标的大小及形状的设置、任务的执行顺序的排列、系统中术语的使用都要尽量保持一致。但有时需要差异性,例如,用户在分离的窗口中与多个任务进行交互时,不同的系统风格可能有助于用户分辨不同的任务。,(3)及时提供有意义的反馈 借助有意义的反馈,用户能知道相应的动作是否已经被接收,是否正确,并能得到所需要的信息。诸如及时地给出当前任务的处理进度以及明确地通知用户所提交的事务是否成功之类的处理,都是一个好的系统所追求的。 (4)使用户的注意力集中在当前的任务上而不是界面上 这就要求在界面上仅显示与当前任务有关的信息,而且界面不要花哨,以免分散用户的注意力。(5)尽量减少用户的记忆 有数

30、据表明,通常人能同时记住7条左右的信息。若必要的信息过多,要按逻辑关系对信息进行分组。另外,命令步骤要有启发性,能启发和引导用户正确、有效地进行界面操作。(6)具有语境敏感的帮助功能 具有语境敏感的帮助功能可帮助用户方便地得到对困惑问题的解答,或能明确地知道其当前要做的工作。,(7)减少重复的输入和操作 任何系统中已有的信息或可由系统生成的信息都不应该再重新输入,如已经输入了身份证号码,就不应该再让用户输人出生日期和年龄。鼠标点击的次数也应尽量地少;若可能,鼠标的移动距离也应该尽可能地短。(8)防止灾难性的错误 系统要采取保证措施,防止由于用户误操作或因为其他原因造成的诸如数据丢失这样的灾难性的错误。例如,对可能引起不良后果的操作(如删除、不存盘退出)要给出警告,对重要的操作要可撤销(Undo),对数据要定时地进行备份。(9)其他 若有可能,还要考虑界面的艺术性、趣味性、风格和观感等用户感兴趣的方面。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号