关键字:心理模型,实现模型,系统模型,界面设计,人机交互
一 引子:难用的垃圾桶
不知你是否留意过大街上或公共场所的垃圾桶,下面这幅照片显示的是北京某街道旁边的垃圾桶。

图1: 标有使用方法但仍令人费解的垃圾桶
从该照片可以清楚地看到垃圾桶包括蓝色和黄色两部分,蓝色部分标明用来收集可回收物品,黄色部分用于不可回收物品。现在的问题是,作为普通市民,人们如何知道哪些物品属于可回收的。尝试问问你身边的人,恐怕连博士也未必能正确回答。
二 心理模型、实现模型和系统模型
以上关于垃圾桶产品难以使用的现象反应了一个很普遍的产品界面设计中的问题,即系统模型和心理模型的匹配问题。我们先来解释三个概念:心理模型,实现模型和系统模型,以及它们之间的关系。
Donald A. Norman在他的《The Design of Everyday Things》一书中首次提出了这三个概念及其关系。心理模型是存在于用户头脑中的关于一个产品应该具有的概念和行为的知识。这种知识可能来源于用户以前使用类似产品的经验,或者是用户根据使用该产品要达到的目标而对产品的概念和行为的一种期望。实现模型是产品的内部结构和工作原理,它存在于产品设计人员的头脑中。系统模型是指产品的最终外观以及产品呈现给用户后,用户通过观看或使用后而形成的关于产品如何使用和工作的知识。
从以上的定义不难看出,心理模型中的概念和行为是完全属于用户的问题领域或任务领域的,而实现模型则位于技术解决方案领域。一般来说,这两者有很大区别,并且越是复杂的产品,差别越大。因为是位于问题或任务领域,心理模型是产品设计人员无法轻易改变的,而实现模型则依赖于当时的技术水平,在一定时期内也很难有大的变化,唯有系统模型具有极大的可塑性,是产品设计人员可以通过努力来改变的。可以认为系统模型总是分布于心理模型和实现模型这两者之间的某一点。系统模型越是接近心理模型,用户需要学习和记忆产品如何使用的地方就越少,这是因为实际的产品和用户期望的很接近,这样的产品就很容易使用。反之,如果系统模型接近实现模型,则用户需要把期望中的一些概念和行为映射到系统模型中表现出来的一些界面元素和执行操作上。这种映射在认知心理学上就表现为一种记忆负担,而正是记忆负担使人们觉得产品难以使用。
现在回到文章开头提到的垃圾桶难用的例子。在这个问题的心理模型中,有关的概念是将要扔掉的物品的名称,或最多包括一些朴素的关于物品的分类方法,例如食物类,包装类等等。而在实现模型中,因为要根据垃圾是否具有可收回性来做不同的处理,所以就有了“可回收”和“不可回收”两个概念。系统模型,也就是标有“可回收,不可回收”字样的垃圾桶的外观,几乎完全等同于实现模型而严重偏离了用户的心理模型。如果想要正确地使用这个垃圾桶,用户需要把日常生活中的各种物品是否可回收这一点完全背诵下来。对于那些记性不好的,则需要把这种对应关系记到一个小本子上,每次扔垃圾之前查阅一下。这就导致了一个易用性很差的产品。
三 软件产品中的系统模型和心理模型的匹配问题
由于系统模型和心理模型不匹配导致的产品易用性问题广泛存在于各种产品中。在这当中,软件产品的问题尤为突出。这一方面是由于软件产品固有的复杂性, 另一方面,西方在文艺复兴以后,机械论逐渐成为一种世界观和设计思想体系,体现到计算机产品中,界面设计都是试图去让人适应计算机,而完全忽略了人的心理特点和需求。不过随着计算机越来越普及,计算机产品被越来越多的普通用户使用,“以人为本”的思想已经开始被越来越多的公司和产品设计人员所重视:即如何设计计算机的界面以使得其更好地适应人。
下面我们将重点分析一些软件产品中的这方面的问题。
3.1 个人电脑中的文件系统
每当用户写完一篇文档(比如Word文档, Excel文档等)并要保存时,大多数软件总会弹出一个保存文件对话框来要求用户指定文件将要存到哪个目录下以及文件名。如果你对电脑的文件系统不了解,你就无从知道应该放到哪里。就算你放到了某个位置,一个月后你还能记得这个位置和文件名吗?对于大多数计算机操作系统来说,基于树状结构的文件系统完全是个实现模型中的概念,因为软件必须知道一个确定的位置才能进行保存文件的操作。而大多数普通用户的心理模型倾向于把计算机的存储设备看成一个简单的存储空间,只要能保存并且下一次运行软件时还能找到就可以了。按照这个思路,软件呈现给用户的界面中只应要求用户给文件起个名字就可以了,至于说到底把这个文件放到文件系统中的哪个目录,是由软件自身在实现时应该考虑的问题。例如,它可以把文件保存到其安装目录的某个子目录下,如果发现安装目录所在的磁盘没有足够空间时,它应该能够找到还有剩余空间的某个磁盘,在其上创建一个目录,然后把文件保存到那个新建的目录下。

图2: Windows系统中的保存文件对话框
作为对比,同样是保存文件功能,诺基亚的所有基于S60操作系统的手机中的“记事本”软件就很好地把系统模型做得很接近心理模型。当你使用该软件编辑完一个文件时,按保存菜单,一切就完成了,没有了要求用户选择存储位置的对话框。更妙的是,用户连文件名都不用设定。当下次打开“记事本”软件时,所有你以前保存的文件都列了出来,每个文件占一行,显示的是文件开头的几个字,用户能够很清楚地知道该打开哪个文件。
3.2 Windows 操作系统中的注册表
在Windows中,操作系统的很多界面外观和行为是由注册表中的内容来控制的。如果对于计算机比较了解,知道如何修改注册表,并且知道具体是注册表中的哪个数值决定哪个外观或行为,你就可以对系统有更多的控制,从而把它定制成完全符合自身需求的环境。
例如,如果想要设置光标在屏幕上的闪烁速度,可以启动注册表编辑器 (对应的命令是regedit),打开HKEY_CURRENT_USER\Control Panel\Desktop子项,在该子项中有一个名为 CursorBlinkRate 的字符串值项,该值项的数值就是光标在屏幕上的闪烁速度。
在这里,注册表就是实现模型,用户想要修改的外观或行为是心理模型,而系统模型就是Windows操作系统。普通用户根本不知道去执行编辑注册表的命令 regedit。这里的系统模型几乎等同于实现模型,导致产品难以使用。
而某些软件恰恰是做了一个很好的界面,来把用户能理解的一些设置操作转化成对注册表的操作,从而使得系统模型很接近用户的心理模型。软件“超级兔子魔法设置”等软件就是这样的例子。
3.3 系统模型和心理模型的匹配原则在软件界面的输出信息中的应用
大多数软件界面都由输入和输出两部分构成,在输出部分,系统模型和心理模型需要匹配的原则同样适用。软件设计中的“尽量使用用户或问题领域的语言”的原则就可以看作是该匹配原则的一个推论。具体来说,界面用语要使用用户能理解的词汇,包括所有反馈信息,例如提示和出错信息。这里举一个不恰当的出错信息的例子。某些网站的后台是用基于J2EE的技术实现的,在执行某些操作时,可能会出现程序异常,而此时如果没有捕获异常并进行相应处理,系统最终会将Java运行时的异常堆栈信息显示在浏览器中。这样的信息对于调试该应用的程序员来说也许是件好事,但估计大部分用户看了之后都会一头雾水,不知道到底发生了什么事情,不知道下一步该怎么办。