第七章用户界面设计6.5用户界面设计用户界面(UI)也称人机界面(Human Computer Interface,简称HCI),它是交互式应用软件系统的门面。
随着计算机应用的不断拓广,软件的用户界面作为人机接口起着越来越重要的作用,界面设计日益受到重视。
设计用户界面要充分考虑到人的因素,如用户的特点、用户怎样学会与系统交互工作、用户怎样理解系统产生的输出信息以及用户对系统有什么期望等。
还要考虑界面的风格,可用的软、硬件技术及应用本身产生的影响。
所以现在在做软件产品时,越来越重视心理学在软件设计中的作用,要充分考虑用户的心理,尽量使得用户界面的设计符合用户的需要。
用户界面应具备的特性1、可使用性用户界面的可使用性是用户界面设计最重要的也是最基本的目标,它包括:1)使用的简单性:用户界面应能方便地处理各种经常进行的交互对话。
问题的输入格式应当易于理解,附加的信息量少;能直接处理制定媒体上的信息和数据,且自动化程度高;操作简便;能按用户要求的表格或图形输出,或反馈计算结果到用户指定的媒体上。
2)用户界面中所用术语的标准化和一致性:所有专业术语都应该标准化;软件技术用语应符合软件工程规范;应用领域的术语应符合软件面向专业的专业标准;在输入、输出说明里,同一术语的含义应完全一致。
3)拥有HELP帮助功能:用户应能从HELP功能中获知软件系统的所有规格说明和各种操作命令的用法,HELP功能应能联机调用,为用户随时提供帮助信息。
4)快速的系统响应和低的系统成本:在使用较多硬件设备并与许多其它软件系统联结时,会引入较大的系统开销。
用户界面应在此情况下有较快的响应速度和较小的系统开销。
5)用户界面应具有容错能力:即应当具有错误诊断、修正错误以及出错保护的功能。
2、灵活性1)考虑到用户的特点、能力、知识水平,应当使用户界面能够满足不同用户的要求。
因此,对不同的用户,应有不同的界面形式。
其运行抉择和涉及到的复杂算法对初学者可以是隐蔽的,他们可以不考虑抉择和算法问题而正常使用这个软件;但对于高级用户,可保留实施运行抉择和选择算法的权利。
2)用户可以根据需要制定和修改界面方式。
在需要修改和扩充系统功能的情形下,能够提供动态的对话方式,如修改命令、设置动态的菜单等。
3)系统能够按照用户的希望和需要,提供不同详细程度的系统响应信息,包括反馈信息、提示信息、帮助信息、出错信息等等。
4)与其他软件系统应有标准的界面。
为了使得用户界面具有一定的灵活性,需要付出一定代价。
这要求系统的设计更加复杂,而且有可能降低软件的运行效率。
3、复杂性和可靠性1)用户界面的复杂性:用户界面的规模和组织的复杂程度就是界面的复杂性。
在完成预定功能的前提下,应当使得用户界面越简单越好。
但也不是把所有功能和界面安排成线性序列就一定简单。
假如系统有64个功能,安排成线性序列,有64种界面,用户不得不记忆大量的单一的命令,比较难用。
但是,可以把系统的功能和界面按其相关性和重要性,进行逻辑划分,组织成树型结构,把相关的命令放在同一分支上。
例如,64个功能和界面组织成8*8的树型层次结构,每一层次包含的命令具有短期记忆的最佳数目7-2到7+2。
2)用户界面的可靠性:用户界面的可靠性是指无故障使用的间隔时间。
用户界面应能保证用户正确、可靠地使用系统,保证有关程序和数据的安全性。
用户界面的风格用户界面的风格大致经过了四代的演变。
1、最早,在图形显示、鼠标、高速工作站等技术出现之前,现实可行的界面方式只能是命令和询问方式,通信完全以正文形式并通过用户命令和用户对系统询问的响应来完成。
尽管每个命令的询问都不复杂,但对用户来说容易出错、不友善并难于学习。
2、第二代界面是简单的菜单式。
这种方式与命令行方式相比不易出错,但使用起来仍然乏味。
比如由某个选择进入另一层选择时,只能逐级进行,不能一步到位。
3、第三代界面是面向窗口的点选界面。
随着硬件的发展,软件工程师逐渐认识到人的因素对界面设计的影响。
这类界面也称为WIMP界面,即窗口(windows)、图标(icons)、菜单(menus)、指示器(pointing device)四位一体,形成桌面(desktop)的概念。
第三代界面给用户带来种种便利:能同时显示不同种类的信息,使用户可在几个工作环境中切换而不丢失几个工作之间的联系(如,在一个窗口写源代码,在另一窗口中检查输出结果,在第三个窗口中修改处理描述等);用户通过下拉式菜单(pull-down menu)可方便执行控制型和对话型任务;引入图标、下拉式菜单、按纽和滚动杆技术,可大大减少键盘输入,这对那些不精于键盘打字的用户来说无疑提高了交互效率。
4、最新一代HCI把第三代HCI技术与超文本、多任务概念结合起来,使用户可同时执行多个任务(以用户的观点)。
例如,某位作家可一方面用桌面印刷系统对已完成的一章做拼写检查,另一方面又在数据库中检查资料,为新题目搜集素材,同时又用键盘录入一个新章节。
在所有这些任务的执行过程中,工作站本身还完成一些诸如监督电子邮件、维护日历等后台任务。
第四代界面已出现在许多工作站和高性能PC机上。
界面设计的基本类型如果从用户与计算机交互的角度来看,用户界面设计的类型主要有问题描述语言、数据表格、图形与图标、菜单、对话以及窗口等。
每一种类型都有不同的特点和性能。
菜单,又称选单,是由系统预先设置好的,显示于屏幕上的一组或几组可供用户选用的命令。
对话,也称对话框,是系统在必要时显示于屏幕上的一个矩形区域内的图形和正文信息。
通过对话,实现用户和系统之间的通信。
分为:必须回答式、无需回答式、警告式(又根据警告的内容,可以必须回答,也可以无需回答)窗口,指屏幕上的一个矩形区域,在图形学中叫做视图区(viewport)。
用户可以通过窗口显示,观察其工作领域内的全部或一部分内容,并可以对所显示的内容进行各种系统预先规定好的正文和图形操作。
在选用界面形式的时候,应当考虑每种类型的优点和限制。
从几方面来考察、抉择:1)使用的难易程度:对于没有经验的用户,该界面使用的难度有多大2)学习的难易程度:学习该界面的命令和功能的难度有多大3)操作速度:在完成一个指定操作时,该界面在操作步骤、击键和反应时间等方面效率有多高4)复杂程度:该界面提供了什么功能、能否用新的方式组合这些功能以增强界面功能5)控制:人机交互时,是由计算机还是由人发起和控制对话6)开发的难易程度:该界面设计是否有很大难度,开发工作量有多大界面设计的一般问题设计任何一个人机界面,一般必须考虑系统响应时间、用户求助机制、错误信息处理和命令方式四个方面。
1、系统响应时间系统响应时间指当用户执行了某个控制动作后(例如,按回车键、点击鼠标等),系统做出反应的时间(指输出所期望的信息或执行对应的动作)。
系统响应时间过长是交互式系统中用户抱怨最多的问题,当几个应用系统分时运行时尤甚。
除了响应时间的绝对长短外,用户对不同命令在响应时间上的差别亦很在意,若过于悬殊,用户将难以接受。
2、用户求助机制几乎每一位交互式系统的用户都希望得到联机帮助,即在不切换环境的情况下解决疑惑的问题。
目前流行的联机求助系统有两类:集成式和叠加式。
集成式求助一般都与软件设计同时考虑,上下文敏感,即可供用户选择的求助词与正在执行的动作密切相关,整个求助过程快捷而友好;叠加式求助一般是软件完成后附上一个受限的联机用户手册,用户为查找某项指南时不得不浏览大量无关信息。
显然集成式求助机制优于叠加式求助机制。
除此之外,设计求助子系统时,还要考虑诸如帮助范围(仅考虑部分还是全部功能)、用户求助的途径、帮助信息的显示、用户如何返回正常交互工作及帮助信息本身如何组织等一系列问题。
3、错误信息处理任何错误和警告信息对用户不啻是“坏消息”,若此类信息不是很清楚地表明含义,用户接到后只能徒增烦恼。
试想,当用户看到这样一行显示:severe system failure – 14A一定会牢骚满腹。
原因是尽管能从某个地方查出14A的含义,可设计者为什么不就在此处指明呢?一般来说,出错信息应选用用户明了、含义准确的术语描述,同时还应尽可能提供一些有关错误恢复的建议。
此外,显示出错信息时,若辅以听觉(如铃声)、视觉(专用颜色)刺激,则效果更佳。
4、命令方式键盘命令曾经一度是用户与软件系统之间最通用的交互方式,随着面向窗口的点选界面的出现,键盘命令虽不再是唯一交互形式,但许多有经验的熟练的软件人员仍喜欢这一方式,更多的情形是菜单与键盘命令并存,供用户选用。
除此之外,许多系统提供批命令机制,用户可设计并存储一个命令序列,供日后多次使用。
数据输入界面设计数据输入是指所有供计算机处理的数据的输入。
数据输入界面是系统的一个重要组成部分,它常占用户的极大部分使用时间。
一个好的数据输入界面设计应尽可能方便有效地进行数据输入。
数据输入的一般规则数据输入界面的目标是尽量简化用户的工作,并尽可能减少输入的出错率。
为此,在设计时要考虑尽可能减少用户的记忆负担,使界面具有预见性和一致性,防止用户输入错误,以及尽可能增加数据自动输入。
在软件设计的范围,可以通过以下方式来减少用户输入的工作量,对共同的输入内容设置默认值(缺省值);使用代码或缩写;自动填入已输入过的内容或需要重复输入的内容;如果输入内容是来自一个有限的备选集,可以采用列表选择(下拉列表框)或指点方式。
数据输入屏幕应当设计成尽量与输入格式相匹配。
数据内容应当根据它们的使用频率,或它们的重要性,或它们的输入次序进行组织。
如果分组应与用户商量。
下面是数据输入对话设计的一般规则,在具体应用时还应当考虑设计的环境。
1)确认输入:只有当用户按下输入的确认键时,才确认输入。
这有助于在输入过程中一旦出现错误能及时纠错。
2)交互动作:在表项之间自动地跳跃/转换并不总是可取的,尤其是对于不熟练的用户,往往会被搞得无所适从,要使用TAB键或回车键控制在表项间的移动。
3)明确取消:如果用户中断了一个输入序列,已经输入的数据不要立即丢弃。
这样才能对一个也许是错误的取消动作进行重新思考。
4)确认删除:为避免错误的删除动作可能造成的损失,在键入了删除命令后,必须进行特别的确认,然后才执行删除操作。
例如,可以用Delete you sure?[Y/N]来确认。
5)提供反馈:若一个屏幕上可容纳若干输入内容,可将用户先前输入的内容仍保留在屏幕上,以便用户能够随时查看,明确下一步应进行的操作。
6)允许编辑:在一个文件输入过程中或输入完成后,允许用户对其编辑,以修改他们正在输入的数据或回去修改他们以前输入的数据。
应采纳一种前后一致的编辑方式。
7)提供复原(undo):应允许用户恢复输入以前的状态。
这在编辑和修改错误的操作中经常用到。