对于应用软件来说,一个基本现实就是:用户界面是面向用户的。用户需要的是开发者开发的应用软件满足其需求,并且易于使用。用户界面设计的主要原则有:
(1) 一致,最重要的事情就是保证用户界面运作的一致性。对于列表框来说,如果双击其中的项,使得某些事件发生,那么双击任何其它列表框中的项,都应该有同样的事件发生。所有窗口按钮的位置要一致,标签和讯息的措辞要一致,颜色方案要一致。用户界面的—致性使得在用户对于界面运作建立起精确的心理模型,从而降低培训和支持成本。
(2) 建立标准并遵循之。在应用软件中保持一致的唯一途径就是建立设计标准并加以遵循。最好的办法是采取一套行业标准,对自身特殊的需要加以补充。已有的行业标准,如IBM标准与Microsoft标准,通常可满足95%到99%的需要。采用行业标准,只需利用已有的成果,也使你的应用软件看起来或感觉上更象用户已购买或建立的其它应用软件。
(3) 阐明规则。用户要知道怎么使用为他们开发的软件。软件运作的一致性表明,规则你只需解释一遍。这比一步步详细讲解如何使用应用软件每个特性要容易得多。
(4) 同时支持生手和熟手。图书馆目录符号对图书馆系统的一般用户来说,也许就够用了,但对熟手用户,如图书管理员,很可能就没有那么有效了。图书管理员是受过专门训练,能够使用复杂的查询系统找到信息,因此,应当考虑建立一套查询界面以满足他们的独特需要。
(5) 界面间切换很重要。如果从一个屏幕转换到另一屏幕很困难,用户会很快灰心并放弃。当屏幕流程与用户想完成的工作流程相符,此软件对用户才有意义。由于不同用户工作方式不同,应用软件需要有足够的灵活以支持他们不同的方式。在建模阶段,界面流程图可用来模拟屏幕之间的流程。
(6) 界面上的布局很重要。在西方,人们是自左而右,从上而下阅读,基于人们的习惯,屏幕的组织也应当是自左而右,从上而下。屏幕小部件的布局也应以用户熟悉的方式进行。
(7) 讯息和标签措辞要适当。屏幕上显示的文本是用户主要的信息源。如果文本措辞很糟,用户的理解就会很糟。要使用完整的措辞和句子,而不要用缩写和代码,使文本易于理解。讯息措辞要积极,显示用户处于控制之中,并提示如何正确使用软件。
(8) 对其它软件不盲从。除非你知道一个应用软件是遵循了你们的用户界面标准和和准则,否则你绝不能认定它做的都是对的。尽管看看人家怎么做,从中获得些主意是不错的想法,但在懂得怎样区分用户界面设计的好坏之前得留神。太多的开发者错误地模仿其它应用软件的用户界面,而那些界面却设计得很糟。
(9) 有效组合。逻辑上关联的项目在屏幕上应当加以组合,以显示其关联性。反之,任何相互之间毫不相关的项目应当分隔开。在项目集合间用间隔对其进行分组或用方框也同样可做到这一点。
(10) 了解小部件。为恰当的任务使用恰当的小部件,首先可以帮助增强应用软件的一致性,可能使得应用软件很容易构造。学会如何正确使用小部件的唯一途径是阅读和理解所采用的用户界面标准及准则。
(11) 遵循对比原则。打算在应用软件中使用颜色,要确保屏幕的可读性。最好的方法是遵循对比原则:在浅色背景上使用深色文字,在深色背景上使用浅色文字。蓝色文字以白色为背景很容易读,但以红色为背景很难辨认。问题出在蓝色与红色之间没有足够反差,而蓝色与白色之间则反差很大。
(12) 区域排列。当屏幕有多个编辑区域,要以视觉效果和效率来组织这些区域。例如,要使编辑区域左边界在一条直线上且上下排列。与之相应的标签则应右对齐,置于编辑区域旁。这是屏幕上组织区域的一个整洁有效的方式。
(13) 屏幕不能拥挤。拥挤的屏幕让人难以理解,因而难以使用。实验结果(Mayhew,1992年)显示屏幕总体盖度不应超过40%,而分组中屏幕盖度不应超过62%。
(14) 数据对齐要适当。对一列列的数据,通常的作法是整浮点数右对齐,字符串左对齐。
用户界面设计的步骤
界面设计者的目标是设计并实现高质量的用户界面,但是什么是“高质量的用户界面”并不是那么容易定义的。实际上,对于“高质量的用户界面”的定义可以理解为:对任何用户来说,都是直观的,易用的,并且用户在使用时能够达到最大限度的效率和效果。要想设计出高质量的用户界面必须严格按照已定义的设计步骤进行开发,脱离了这些设计步骤,是设计不出高质量的应用程序的,就更不用说高质量的用户界面了。
用户界面设计可以分为以下几步:
(1) 创建系统功能的外部模型设计主要是考虑软件的数据结构、总体结构和过程性描述,而界面设计只有对用户的情况(包括年龄、性别、心理情况、文化程度、个性、种族背景等)有所了解,才能设计出有效的用户界面;根据终端用户对未来系统的假想设计用户模型,最终使之与系统实现后得到的系统映象(系统的外部特征)相吻合,用户才能对系统感到满意并能有效的使用它;建立用户模型时要充分考虑系统假想给出的信息,系统映象必须准确地反映系统的语法和语义信息。总之,只有了解用户、了解任务才能设计出好的人机界面。
(2) 确定为完成此系统功能人和计算机应分别完成的任务。任务分析有两种途径。一种是从实际出发,通过对原有处于手工或半手工状态下的应用系统的剖析,将其映射为在人机界面上执行的一组类似的任务;另一种是通过研究系统的需求规格说明,导出一组与用户模型和系统假想相协调的用户任务。
逐步求精和面向对象分析等技术同样适用于任务分析。逐步求精技术可把任务不断划分为子任务,直至对每个任务的要求都十分清楚;而采用面向对象分析技术可识别出与应用有关的所有客观的对象以及与对象关联的动作。
(3) 考虑界面设计中的典型问题。设计任何一个人机界面,一般必须考虑系统响应时间、用户求助机制、错误信息处理和命令方式四个方面。系统响应时间过长是交互式系统中用户抱怨最多的问题,除了响应时间的绝对长短外,用户对不同命令在响应时间上的差别亦很在意,若过于悬殊用户将难以接受;用户求助机制宜采用集成式,避免叠加式系统导致用户求助某项指南而不得不浏览大量无关信息;错误和警告信息必须选用用户明了、含义准确的术语描述,同时还应尽可能提供一些有关错误恢复的建议。此外,显示出错信息时,若再辅以听觉(铃声)、视觉(专用颜色)刺激,则效果更佳;命令方式最好是菜单与键盘命令并存,供用户选用。
(4) 借助CASE工具构造界面原型,并真正实现设计模型,软件模型一旦确定,即可构造一个软件原形,此时仅有用户界面部分,此原形交用户评审,根据反馈意见修改后再交给用户评审,直至与用户模型和系统假想一致为止。一般可借助于用户界面工具箱或用户界面开发系统提供的现成的模块或对象创建各种界面基本成分的工作。