界面设计 —— 黄金规则

                Theo Mandel在其关于界面设计的著作[Man97]中提出了三条黄金规则:
        1.把控制权交给用户。
        2.减轻用户的记忆负担。
        3.保持界面一致。
        这些黄金规则实际上构成了一系列用户界面设计原则的基础,这些原则可以指导软件设
计的重要方面。

1 把控制权交给用户
        在重要的、新的信息系统的需求收集阶段,曾经征求一位关键用户对于窗口图形界面相关属性的意见。
        该用户严肃地说:“我真正喜欢的是一个能够理解我想法的系统,它在我需要去做以前就知道我想做什么,并使我可以非常容易地完成。这就是我想要的,我也仅此一点要求。”

        你的第一反应可能是摇头和微笑,但是,沉默了一会儿后,你会觉得该用户的想法绝对没有什么错。她想要一个对其要求能够做出反应并帮助她完成工作的系统。她希望去控制计算机,而不是计算机控制她。
        设计者施加的大多数界面约束和限制都是为了简化交互模式。但是,这是为了谁呢?在很多情况下,设计者为了简化界面的实现可能会引入约束和限制,其结果可能是界面易于构建,但会妨碍使用。Mandel[Man97]定义了一组设计原则,允许用户掌握控制权。

引述
        依照用户的习惯来设计,比矫正用户的习惯要好。

                                                                        ——  Jon Meads

        以不强迫用户进入不必要的或不希望的动作的方式来定义交互模式。交互模式就是界面的当前状态。例如,如果在字处理器菜单中选择拼写检查,则软件将转移到拼写检查模式。如果用户希望在这种情形下进行一些文本编辑,则没有理由强迫用户停留在拼写检查模式,用户应该能够几乎不需做任何动作就可以进入和退出该模式。
        提供灵活的交互。由于不同的用户有不同的交互偏好,因此应该提供选择机会。例如,软件可能允许用户通过键盘命令、鼠标移动、数字笔、触摸屏或语音识别命令等方式进行交互。但是,每个动作并非要受控于每一种交互机制。例如,考虑使用键盘命令(或语音输入)来画一幅复杂形状的图形是有一定难度的。

        允许用户交互被中断和撤销。即使陷入一系列动作之中,用户也应该能够中断动作序列去做某些其他事情(而不会失去已经做过的工作)。用户也应该能够“撤销”任何动作。
        当技能水平高时可以使交互流线化并允许定制交互。用户经常发现他们重复地完成相同的交互序列,因此,值得设计一种“宏”机制,使得高级用户能够定制界面以方便交互。

引述
        我一直希望计算机能像电话一样易于使用。我的希望已经实现了,我不再想知道如何使用电话了。
                                                                                                        —— Bjarne Stronstrup

        使用户与内部技术细节隔离开来。用户界面应该能够将用户移入应用的虚拟世界中,用
户不应该知道操作系统、文件管理功能或其他隐秘的计算技术。
        设计应允许用户与出现在屏幕上的对象直接交互。当用户能够操纵完成某任务所必需的对象,并且以一种该对象好像是真实存在的方式来操纵它时,用户就会有一种控制感。例如,允许用户将文件拖到“回收站”的应用界面,即是直接操纵的一种实现。
 

2 减轻用户的记忆负担
        一个经过精心设计的用户界面不会加重用户的记忆负担,因为用户必须记住的东西越多,和系统交互时出错的可能性也就越大。只要可能,系统应该“记住”有关的信息,并通过有助于回忆的交互场景来帮助用户。Mandel[Man97]定义了一组设计原则,使得界面能够减轻用户的记忆负担。
        减少对短期记忆的要求。当用户陷于复杂的任务时,短期记忆的要求会很强烈。界面的设计应该尽量不要求记住过去的动作、输入和结果。可行的解决办法是通过提供可视的提示,使得用户能够识别过去的动作,而不是必须记住它们。
        建立有意义的默认设置。初始的默认集合应该对一般的用户有意义,但是,用户应该能够说明个人的偏好。然而,“重置”(reset)选项应该是可用的,使得可以重新定义初始默认值。
        定义直观的快捷方式。当使用助记符来完成系统功能时(如用Alt+P激活打印功能),助记符应该以容易记忆的方式联系到相关动作(例如,使用要激活任务的第一个字母)。
        界面的视觉布局应该基于真实世界的象征。例如,一个账单支付系统应该使用支票簿和
支票登记簿来指导用户的账单支付过程。这使得用户能够依赖于很好理解的可视化提示,而
不是记住复杂难懂的交互序列。

        以一种渐进的方式揭示信息。界面应该以层次化方式进行组织,即关于某任务、对象或
行为的信息应该首先在高抽象层次上呈现。更多的细节应该在用户表明兴趣后再展示。

SafeHome    违反用户界面的黄金规则

[场景] Vinod的工作间,用户界面设计启动在即。
[人物] Vinod和Jamie,SafeHome软件工程团队成员。
[对话]

Jamie: 我已经在考虑监控功能的界面了。
Vinod(微笑): 思考是好事。
Jamie: 我认为我们可以将其简化。
Vinod: 什么意思?
Jamie: 如果我们完全忽略住宅平面图会怎么样?它倒是很华丽,但是会带来很多开发工作量。我们只要询问用户要查看的指定摄像机,然后在视频窗口显示视频就可以了。
Vinod: 房主如何记住有多少个摄像机以及它们都安装在什么地方呢?
Jamie(有点不高兴): 他是房主,应该知道。
Vinod: 但是如果不知道呢?
Jamie: 应该知道。
Vinod : 这不是问题的关键……如果忘记了呢?
Jamie: 哦,我应该提供一张可操作的摄像机及其位置的清单。
Vinod : 那也有可能,但是为什么要有一份清单呢?
Jamie: 好的,无论用户是否有这方面的要求,我们都提供一份清单。
Vinod: 这样更好。至少用户不必特意记住我们给他的东西了。
Jamie(想了一会儿): 但是你喜欢住宅平面图,不是吗?
Vinod: 哈哈。
Jamie: 你认为市场营销人员会喜欢哪一个?

Vinod: 你在开玩笑,是吗?
Jamie: 不。
Vinod:  哦……华丽的那个……他们喜欢迷人的……他们对简单的不感兴趣。
Jamie: (叹口气)好吧,也许我应该为两者都设计一个原型。
Vinod: 好主意……我们就让客户来决定。

3 保持界面一致
        用户应该以一致的方式展示和获取信息,这意味着:(1)按照贯穿所有屏幕显示的设计规则来组织可视信息;(2)将输入机制约束到有限的集合,在整个应用中得到一致的使用;(3)从任务到任务的导航机制要一致地定义和实现。Mandel[Man97]定义了一组帮助保持界面一致性的设计原则。
        允许用户将当前任务放入有意义的环境中。很多界面使用数十个屏幕图像来实现复杂的交互层次。提供指示器(例如,窗口标题、图标、一致

引述
        看起来不同的事物产生的效果应该不同,而看起来相同的事物产生的效果应该相同。
                                                                                                                ——  Larry Marine

的颜色编码)帮助用户知晓当前工作环境是十分重要的。另外,用户应该能够确定他来自何处以及存在哪些转换到新任务的途径。
        在完整的产品线内保持一致性。一个应用系列(即一个产品线)都应采用相同的设计规则,以保持所有交互的一致性。
        如果过去的交互模型已经建立起了用户期望,除非有不得已的理由,否则不要改变它。一个特殊的交互序列一旦变成事实上的标准(如使用Alt+S来存储文件),则用户在遇到每个应用时均会如此期望。如果改变这些标准(如使用Alt+S来激活缩放比例),将导致混淆。
 
信息栏         可用性

        在一篇关于可用性的见解深刻的论文中,Larry Constantine[Con95]提出了一个与可用性主题非常相关的问题:“用户究竟想要什么?”他给出了下面的回答。“用户真正想要的是好的工具。所有
的软件系统,从操作系统和语言到数据录入和决策支撑应用软件,都是工具。最终用户希望从为其设计的工具中得到的东西,与我们希望从所使用工具中得到的是一样的。他们想要易于学习并能够为自己的工作提供帮助。同时,他们想要的系统应该能提高工作效率,不会欺骗或困扰他们,不会使他们易于犯错误或难于完成工作。”
        Constantine指出,系统的可用性并非取决于设计美学、交互技术的发展水平或者内置的界面智能等方面,而是当界面的架构适合于将要使用这些界面的用户的需求时,才能获得可用性。
        正式的可用性定义往往令人有些迷惑。Donahue和他的同事[Don99]给出了如下的定义:“可用性是一种衡量计算机系统好坏的度量……便于学习;帮助初学者记住他们已经学到的东西;降低犯错的可能;使得用户更加有效率,并且使得他们对系统感到满意。”
        确定你所建系统是否可用的唯一办法就是进行可用性评估和测试。观察用户与系统的交互,同时回答下列问题[Con95]:

  • 在没有连续的帮助或用法说明的情况下,系统是否便于使用?
  • 交互规则是否能够帮助一个知识渊博的用户工作得更加有效率?
  • 随着用户的知识不断增多,交互机制是否能变得更灵活?
  • 系统是否已经过调试,使之适应其运行的物理环境和社会环境?
  • 用户是否意识到系统的状态?
  • 在工作期间,用户是否能够知道其所处的位置?
  • 界面是否是按照一种合理并且一致的方式来构建的?
  • 交互机制、图标和过程是否在整个界面中一致?
  • 交互是否能够提前发现错误并帮助用户修正它们?
  • 界面是否能够容错?
  • 交互是否简单?

        如果上述每个问题的回答都是肯定的,那么可以认为这个系统是可用的。
        可用性好的系统带来的诸多好处在于[Don99]:提高销售量和用户满意度、具有竞争优势、在媒体中获得良好的评价、获得良好的口碑、降低支持成本、提升最终用户生产力、降低培训费用、减少文档开销、减少来自不满意用户的投诉。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值