UML软件工程组织

软件操作界面设计须遵循的一些原则
www.uml.org.cn  2006.04.19

 我们做界面设计的目的是去给用户的工作积极的支持而不是相反把无意义的东西强加于人。界面在用户和他们要完成的任务之间应该是透明的,而且是高效、舒适、让人心情愉悦的。下面介绍的是几个保证软件界面设计成功的基本原则。

 简单:不要在功能的可用性上妥协保持界面简洁直观。用户需要易于理解和操作的功能。在一个组织糟糕的界面上,用户被大量高级功能所困扰,而无法直接的去使用最常用的功能。而一个组织有序的界面会把用户要完成的任务结合到背景中去,让用户能更有效的操作。最基本的功能应该让人可以立刻看到,而那些高级功能对于新用户来说可以不那么明显。只有经过任务分析而确定的必要的功能才应该被放到界面上。要让用户尽可能的使用最少的功能,经过最少的步骤完成他们的任务。

 支持:把控制权交给用户并且提供提示性帮助,把系统的控制权交给用户,允许他们使用在日常生活中习惯的各种步骤完成他们的任务,不要用你主张的所谓“正确”的操作步骤去人为的限制用户的操作。系统应该允许用户建立并且维护自己的工作环境。系统的当前状态和能够被使用的操作应该有明确的标示。系统应该允许用户离开,并为他们保留离开时的工作状态。提供有关联的工作环境会使用户对系统有稳定的感觉。大部分用户都需要完成很多任务,在某些方面他们可能是专家,但在另外的方面,他们则可能是个新手。要做到在用户需要的时候能及时提供帮助,系统就应该理解并预计到用户的目的,然后再协助他们更轻松的完成任务。理想的帮助系统应该教给用户能够快速完成任务的知识。帮助系统应该在用户选择要独立完成一些任务的时候教会他们。

 相似:建立在用户已有的经验上允许用户根据以往的经验操作系统,特别是他们从现实世界中获得的经验。这些经验的一小部分,被引用到交互界面中来,也将对用户完成大量的任务有很大帮助。通过一次学习获得的概念和技术应该能被应用在各种环境下。用户不应该为完成相似的任务而去学习新的东西。在交互界面中采用用户已经在现实世界里学到的概念和技术,可以让他们立刻在计算机上开始工作并确保进展顺利。

 隐喻的技巧曾经被用来让计算机世界里的事物与现实世界相对应,而在今天的界面设计中,隐喻已经逐渐不能满足需要了。由于在视觉和交互技术上的进步,交互界面日趋接近人们的真实世界,对隐喻的依赖也越来越小了。过去,当设计师不知道哪个方案最佳的时候总是遵循前后一致的原则。选择用户已经理解的事物,保持概念的前后一致,也能够让界面更容易学习,更有效率,甚至更让用户心情舒畅。 要避免盲目的遵循一致性原则而忽略了去了解你的用户以及他们的任务和经验。决定新的系统在哪些方面同以前保持一致性的之前,先去了解一下用户的需要,看看他们期望保留些什么东西。确保用户在新的系统里有似曾相识的感觉才是设计一个真正直观的交互界面根本的目的。

 显而易见:让对象和操作都直观可见,只要有可能,就要使交互界面表现的和真实世界一样。模仿真实世界和自然直接的交互方式能让交互界面更加直观,更易学易用。利用用户在计算机领域外的经验的最早尝试是使用图标和窗口系统。在我们逐渐趋向用真实世界的表示方法的时候,那些古老的表现方法将消失。在一个面向对象的交互界面上,展现给用户的对象和概念都是与真实世界相同的。例如我们的操作系统所提供的“回收站”,我们可以把没用的东西“扔”到里面。对我们来说,它更象一个真实的垃圾筐而不仅仅是一个抽象的容器。在需要的时候,我们甚至可以查看“回收站”里面都扔了些什么。对系统的控制应该明晰可见,而且各种功能也应该是明确的。对控制的可视化表现能够帮助用户理解操作规则,记住任务的步骤并且知道计算机正在做什么。例如,我们使用计算机提供的电话功能的时候,电话键盘的图象明白的告诉我们可以象用真实的电话键盘一样使用它们。允许用户直接去操作对象,尽量减少间接的操作步骤。识别并使用一个物体,在真实世界中不是被分开的步骤。同样的在计算机的操作中也没有必要把选择对象的步骤独立出来,因为选择的动作已经包含在拿起的动作中了。三维图象的界面更容易实现直接的操作。

 激励:让操作是可以预期的同时也是可逆的,用户对每一个操作都期望得到预期的结果。为了符合这些期望,设计师必须理解用户的任务、目的和思维模式。使用用户熟悉的术语和图形,从而帮助用户弄明白计算机中的对象以及其间的相互关系和规则。 用户在进行一些尝试性操作的时候应该充满信心,他们知道自己可以去试着做些什么,然后就能看到结果,如果结果不满意还可以取消这个操作。使用一个允许把错误操作撤消的界面,会让用户感觉很好。即使是看上去最琐碎的操作,例如撤消选择或者移动对象,也应该是可逆的。想象一下,当你花了几分钟的时间精心选择了一些文件,正准备把它们打包的时候丢掉了选择,而这个操作又无法撤消,你会有什么样的沮丧心情。

 避免一次完成不同的操作,因为用户也许并不清楚那些副作用。例如,如果一个用户选择了取消发送短信的*作,那么仅是发送的操作应该被取消,而不会附带着类似删除短信等其他操作。把各个操作分开,而允许用户自己去定义操作的批处理。

 满足:创造一个有进展和成就的良好感觉 让用户能不断的取得进展并有成就感。对用户的操作要立刻作出反应,任何延迟都会干扰用户的工作,降低用户对系统的信心。及时的反馈可以让用户知道结果是否正确,并能够随时改变操作。例如,用户选择了一种新字体,使用这种字体的地方或者文字的样例应该马上改变。然后用户就可以知道他的选择是否恰当,如果不恰当,则可以马上更换。在用户使用一个不方便撤消的操作之前,要提供对操作结果的预览。例如,用户想在文档的一些地方使用加粗、有下划线的黑体字。预先在文档的某个部分示范这种变化,可以让用户决定是否执行操作。这样一来,可以为用户节约很多时间,而且增强了用户对系统的信心。避免让用户工作环境的信息得不到更新。信息应该不断刷新,以便用户能及时得作出正确的判断。如果结果不能立刻被显示出来,那么系统的工作状态也要通知用户。这一点在网络环境中特别重要,因为受带宽的限制在不同的网络系统中保持动态同步是比较困难的。例如,大部分浏览器都会在载入页面的过程中显示一个完成进度条。

 有效:让每一个对象在任何时刻都能用,用户应该能够在任何时刻都可以使用他们的每一个对象。要避免模式化的操作,那种曾经通用的操作方式已经不应该再发挥作用了。模式化限制了用户和系统的交互。例如,在大多数菜单驱动的系统中,都有一种模式对话框(类似“打印”或者“另存为”)需要输入一些参数。这种对话框把用户锁在了系统的外面,如果用户想继续操作,那他必须先选择“确定”或“取消”。如果用户想先查看下面窗口里的内容再完成这个对话框,他就不得不先取消这个对话框,否则他无法激活其他窗口。

 安全:让用户远离麻烦,应该让用户尽量避免发生错误。使用户远离麻烦的重担压在了设计师的肩上。交互界面应该提供视觉指引、提示、选择列表和其他的辅助,无论是自动的还是被人要求的。上下文的关联和浮动的帮助都可以象一个助手一样协助用户完成任务。即使最简单的提示也可以减少用户出麻烦的机会。 系统已经知道的事情就不要让用户依赖自己的记忆,比如,上一次的配置,文件名或者其他的一些细节。如果这些信息被保存在系统里面,无论是什么样的形式,系统都应该把它们提供出来。当用户需要确认请求或者修正错误的时候,双向的沟通是很必要的。在过去,很多交互界面仅用单向的沟通,计算机对用户,来处理这类问题。但沟通应该是交互式的,就象交互界面在其他方面做到的那样,要有丰富的表现和交流方式。系统应该显示相应的信息,并且提供查阅其他相关信息或者帮助的途径。例如,被设计在很多系统中的拼写检查功能,用户工作的同时,可能拼写错误的单词被标示出来,系统允许用户立刻换一个单词,或者当他们的工作告一段落的时候,再回过头来处理这些可能的错误。

 记住下面的设计观点:用户知道自己想做什么,但有时他们发现使用现有的操作很难让系统明白他们的意图。这时,双向的沟通方式就能帮助用户来实现他们的目的。

 多样:支持不同的交互技术,允许用户选择最适合自身情况的交互方式。这就要求交互界面能灵活的适应不同用户的操作技能,身体条件,交流习惯和使用环境。 每一种交互设备都是为了特别的用途或者用户所设计,并且在一定的条件下最方便操作。比如,麦克风和语音识别软件系统一起使用就可以快速的输入文章,也可以被用在一个要把手腾出来做其他事情的环境里。压感笔对于需要手绘的用户是很有帮助的。鼠标则更适用于精确的选择。不同的输出设备也同样,比如能够输出外语指令的计算机语音合成设备在一些地方就很有用处。但没有一种方式对所有环境都是最好的。用户应该允许在一次交互过程中使用不同的方式。比如,用户可以用鼠标批量的选择,然后用键盘来调整选项。同时,也应该允许用户用不同的设备完成同样的事情。如果在编辑文章的时候,用户不得不总是把手从键盘上移开去操作鼠标,是很让人头疼的。

 提供不同的交互技术也是对有不同能力和处境的用户的一种尊重。这些不同包括残疾,偏好和工作环境的差异。

 个性:允许用户自定义,交互界面应该可以根据每个用户的需要进行调整。没有两个用户是完全一样的。用户有各异的背景,爱好,动机,经验和能力。自定义的界面可以让人感觉舒适和亲切。个性化的计算机交互界面可以提高工作效率和用户满意度。比如,在用户经常使用的功能里,允许他们调整一些默认的参数,可以让用户节约时间减少麻烦。在某些工作场合,很多用户使用一台公用的计算机。就要允许用户建立他们自己的界面并很容易重新设定。而在有的环境里,一个用户又可能要使用不同的计算机,这时就要让用户能把个性化信息从一个系统移到另一个系统。

 亲切:通过完美的视觉设计把操作带入生活中,在界面设计中,视觉设计的目的把所有设计原则在用户眼前体现出来。视觉设计应该顺应用户的思维模式,并且能够与用户清晰明确的沟通。视觉设计是设计过程中非常重要的部分。最终的结果应该是直观而且贴近用户习惯的。

 下面的视觉设计原则可以帮助完成一个清楚简洁的交互界面:

   · 减法设计-通过排除那些对视觉传达没有直接作用的视觉元素而减少混乱。
   · 视觉层次-通过理解不同任务对用户的重要程度而为这些任务建立一个视觉层级。一个重要的任务应该使用特别的视觉标记。可以用相对位置,颜色对比和图形大小来区分。
   · 识别-如果用户很容易判断应该使用哪个对象来操作,那么这个对象就是容易识别的。易被识别的对象往往模仿真实世界中的事物。
   · 视觉方案-设计一个符合用户思维模式的视觉方案,让用户自己去定义界面。不要为了节省空间而过分的减少空白,空白提供着视觉上的“呼吸空间”。

  当然,为了能够有效的运用这些设计原则,你首先还是要了解用户的目的和需求。如果不能让用户对最终放在他们面前的产品满意,死板的遵循设计原则也没有任何价值。

 

版权所有:UML软件工程组织