对 Xwindow 的思考
作者:白文涛
X Window System 是一套 Client-Server 体系结构的窗口系统,它是现代 Unix 系统 ( 包括 Linux 、 FreeBSD etc.) 所必备的图形界面。
目前,绝大部分个人电脑用户基本上都在使用图形用户界面( GUI )。如果是 Windows 及 Macintosh 的用户自不待言、在 Linux 等的 UNIX 环境下用户也经常使用 KDE 及 GNOME 等桌面环境。这是个非常了不起的事情。象笔者这样,根据所做的项目一会儿使用 Linux ,一会儿使用 Windows ,如此便利的转换,说成是 GUI 的功劳也毫不为过。
但是,笔者也经常会被杂志等媒体上的“正因为是 GUI ,所以使用方便”这样话所迷惑。 GUI 真得使用方便吗?
其实 GUI 并不方便
这是笔者个人的亲身体验。笔者首次接触到 GUI 是在 1997 年。
当时在大学实验室里 Macintosh 上玩了一会儿。这时候才感觉到程序设计及编辑文章等操作过程中有没有 GUI 截然不同。例如,在没有这种界面的情况下,每天为了启动相同的程序而不得不查找一个又一个文件夹,确实相当麻烦。
模糊功能扩大了 GUI 的用户层
在某种意义上,可以说因为支持模糊操作才使 GUI 变得简单易用。例如, GUI 不擅长批处理,但指令方面,由于指令名称和处理有着 1 对 1 的对应,因此不存在模糊性。而 GUI 通过使用模拟动作的鼠标等定位外设,只需将光标移到应用程序图标附近的位置点击或双击即可。
此时,没有必要精确地将光标移动到某个特定的像素上。而且,图标的位置位置可以在画面上任意移动。比如 Windows ,就可以随意改变图标的布局。这种自由度给 GUI 带来了方便的模糊功能。或许正因为有了这种模糊性,所以那些 UNIX 高手才会觉得“ GUI 用起来不方便”吧。
但是,这一模糊功能扩大了用户层也是不争的事实。计算机用户数量正在稳步增加,连一向没有接触过电脑的人们也开始使用了。
当然,这里有需要注意的问题。让不习惯的人方便地使用并不见得就可以提高效率。命令语句如果习惯的话,效率会很高。但是如果不习惯的话则无从下手。
总之,很难说哪一个好。所谓的使用方便指的是操作方法随手即来、显示结果随心如意。也说是说,只要习惯了,任何用户接口都是方便的。
新一代 GUI 到了问世的时候了
GUI 概念的提出已经是 33 年前的事情了。如果有机会可以看一下 1968 年 12 月 8 日在 Joint Computer Conference 上 Douglas Engelbart 的讲演录像。从录像中我们就可以知道鼠标、多视窗、菜单、超级链接( Hyper Link )、组件等目前计算机中的基本要素大都是从这时开始提出的。
也就是说想法本身从那时起并没有发生多大的进步。可以说现在已经到了应该推出新的计算机使用方法的时候了。虽然有通过语音操作等的提案,但至今还没有什么大的进展。
想想看,在计算机人机接口的历史中,使用键盘的历史要更长一些。虽然目前也有笔输入,但还没有达到完美的地步。这也许在提醒人们必须改变一下一成不变的“计算机”本身了。
当今的计算机开发已经从单一的实现功能转向以用户为中心的设计方法。只要细心的用户观察一下就不难发现:微软, IBM, ORACLE这些大企业的产品用户界面做得是那样的让人无以挑剔。其实这正是他们为适应时代发展不惜代价建造可用性实验室,利用统计学的方法跟踪,调查,实验,分析用户的操作习惯和审美取向,简单的说就是他们肯花大价钱搞清楚用户到底喜欢什么样的操作界面。这些做法当然都是最有效的。有符合科学规律的。也最能解决我们在界面设计中碰到的各种问题。因为他们深信软件是要满足用户的需求迎合用户口味的,要让用户掏腰包的同时心满意足――说到底,只有广大用户才是评价用户界面实用与否的最终权威。那么用户对所谓的GUI(Xwindow)是否满意呢?是否下像 杂志上所说的那样“正因为是 GUI ,所以使用方便”呢?
为此笔者对 XWINDOW系统做了一个可用性的调查。得到的统计数据如下。。
笔者选取了具有该产品用户群体特征的 8位测试对象,让测试对象独立完成笔者设计的覆盖该产品常用功能的一些测试任务,在此过程中,对测试对象完成任务的情况进行观察和记录,在最后请测试对象填写AIR满意度问卷并征询他们的反馈意见。
按照 CIF2.0标准,笔者采用 有效性、效率和满意度这三个指标对可用性进行定量衡量。从对测试数据的处理和分析中,得出有关该产 品可用性质量的以下评估结果:
按照所有测试对象的平均情况来看, 在全部测试任务中,测试对象 可以独立 完成 25.4% 的工作 ,其余 74.6% 的工作是在借助测试管理人员帮助或查阅联机帮助和手册的情况下完成的,测试对象的平均求助次数为 12 次。测试对象完成所有测试任务平均用时 38.92分钟。在 AIR满意度问卷9个项目中,测试对象的平均评分在 4.3到5.6之间(参见下表),对产品的评价倾向于满意。
AIR 满意度问卷平均值表( 1 )
|
产品的整体设计
|
产品的容易使用程度
|
用户界面的容易掌握程度
|
用户界面与外观设计
|
用户界面间转换的容易程度
|
菜单、标签、联机帮助所使用的措辞
|
平均值
|
2.5
|
2.9
|
3.9
|
1.6
|
2.3
|
2.8
|
*1表示非常不满意,7表示非常满意
二、方法
2.1 测试对象
根据对该产品用户群体的理解,它应该具有以下基本特征:
<!--[if !supportLists]--> Ø <!--[endif]--> 经常使用计算机,熟悉计算机使用和基本的 windows 操作
<!--[if !supportLists]--> Ø <!--[endif]--> 喜欢学习新技术,听说过 linux.
<!--[if !supportLists]--> Ø <!--[endif]--> 对 windows 下的办公软件比较熟悉。
根据以上分析,我们在计算机和非计算机专业人群中选择了 8位人员作为测试对象,他们的具体情况如下表所示:
No.
|
职业
|
年龄
|
性别
|
每周使用计算机时间(小时)
|
计算机专业
|
1 |
秘书 |
25 |
女 |
15 |
否 |
2 |
秘书 |
19 |
女 |
25 |
否 |
3 |
部门经理 |
34 |
男 |
32 |
是 |
4 |
软件开发师 |
27 |
男 |
70 |
是 |
5 |
软件开发师 |
27 |
男 |
74 |
否 |
6 |
学生 |
23 |
女 |
32 |
是 |
7 |
教师 |
30 |
女 |
34 |
是 |
8 |
学生 |
21 |
女 |
53 |
否 |
2.2 测试环境
测试任务:
基于以往的对 windows操作系统的使用经验完成最典型的常用功能,笔者为本测试设计了4项测试任务:
1 、 寻找到一个类似 word的软件并制作一份个人简历。
2、 利用 linux系统提供的浏览器浏览给定网址的网站。
3 、 改变 linux 系统的刷新率。
测试物理环境:
实际的测试是在无干扰的办公室环境中进行的。
测试计算环境:
实际的测试计算环境为:
<!--[if !supportLists]--> l <!--[endif]--> redhat9.0 中文 操作系统上的 Xwindow环境。
<!--[if !supportLists]--> l <!--[endif]--> 奔腾 IV1.7G处理器/256MB内存.
<!--[if !supportLists]--> l <!--[endif]--> sunflower鼠标/标准键盘
<!--[if !supportLists]--> l <!--[endif]--> 17寸SAMSUNG显示器
测试工具:
笔者使用了手动秒表计时器、计分表格和计算器等工具来测量和记录有关测试数据,并使用 AIR满意度问卷进行满意度评测。
2.3 测试程序
测试过程:
对 8个测试对象逐个进行以下测试过程。
首先,笔者向他 /她介绍测试的目的、内容和大致过程。然后,让其填写一份关于自身基本情况的表格,包括职业、年龄、性别、使用计算机的经验等内容。在向测试对象介绍测试目的时,着重强调测试的目的是对产品可用性质量进行评价,而不是对测试对象的能力和素质进行评价,测试结果将以无记名方式记录和使用。
在随后的正式测试中,让测试对象进行以下测试过程:告知他 /她在完成任务过程中将不提供任何帮助,要求他/她在完成每一项任务后示意笔者。并自行按照其要求逐个完成测试任务。笔者为每个测试对象设置计算机的测试初始状态,并在测试过程中记录任务完成情况的有关数据。在测试对象完成了最后一项测试任务后,让他/她填写一份AIR满意度问卷,然后询问他/她对该产品的感受和建议。
2.4 可用性指标体系
我们按照 CIF2.0标准,采用有效性、效率和满意度这三个指标对该产品的可用性质量进行测试和评估。
在本测试中,有效性通过以下指标来衡量:
<!--[if !supportLists]--> Ø <!--[endif]--> 任务完成率:测试对象完整、正确地完成某项任务的程度。
<!--[if !supportLists]--> Ø <!--[endif]--> 帮助:测试对象完成某项任务过程中寻求帮助的次数。
效率通过以下指标来衡量:
<!--[if !supportLists]--> Ø <!--[endif]--> 任务完成率 / 测试对象完成任务的时间。
满意度指标通过使用 AIR满意度问卷来获得
三、测试结果
测试数据记录的打分标准
在本次测试中,测试任务分为可分任务和不可分任务。任务是否可分主要是看该任务是否是由多个相对独立的子任务组成的,如果是,即为可分任务,否则为不可分任务。对于不可分任务来说,其完成程度只有完成和未完成两种情况,完成则其任务完成率为 100%,否则为0。对可分任务则要根据其子任务的完成情况来计算相应的任务完成率。任务完成率又区分为独立完成率和协助完成率两种情况,如果测试对象在没有借助任何帮助(包括联机帮助、和测试管理人员提供的帮助)的情况下独立完成了测试任务,其任务完成率为独立完成率,否则即视为协助完成率。
下面列出每项任务的打分标准以及按其常用和重要程度在所有测试任务中所占的比重:
1 、寻找到一个类似 word的软件并制作一份个人简历:该任务由找到类似word的软件,找到中文输入法和制作一份个人简历。(比重:50%)
<!--[if !supportLists]--> 2、 <!--[endif]--> 利用 linux系统提供的浏览器浏览给定网址的网站。:若成功设置,其完成率为100%,否则为0。(比重:20%)
<!--[if !supportLists]--> 3、 <!--[endif]--> 改变 linux 系统的刷新率 :若成功设置,其完成率为 100%,否则为0。(比重:35%)
数据处理
将每个测试对象完成 4项任务的数据进行处理,获得平均值和标准偏差,其中用A[ i ]表示测试数据, Â 表示测试数据的平均值, n 为测试数据的个数:
<!--[if !supportLists]--> l <!--[endif]--> Â =A[1]+A[2]+ ∙∙∙ + A[n]/n
<!--[if !supportLists]-->
l
<!--[endif]-->
标准偏差
=
<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:110.25pt; height:38.25pt' o:ole="" fillcolor="window"> <v:imagedata src="file:///C:/DOCUME~1/白文涛/LOCALS~1/Temp/msohtml1/01/clip_image001.wmz" o:title=""/> </v:shape><![endif]--><!--[if !vml]-->
<!--[endif]-->
<!--[if gte mso 9]><xml> <o:OLEObject Type="Embed" ProgID="Equation.3" ShapeID="_x0000_i1025" DrawAspect="Content" ObjectID="_1290964711"> </o:OLEObject> </xml><![endif]-->
结果
任务一数据分析结果
测试对象
|
独立完成率 %
|
协助完成率
|
完成时间(分钟)
|
完成率 /完成时间
|
帮助次数
|
1
|
|
100%
|
6.85
|
26.0%
|
2
|
2
|
|
100%
|
3.95
|
105.3%
|
0
|
3
|
|
100%
|
1.60
|
62.5%
|
1
|
4
|
|
100%
|
1.85
|
54.1%
|
1
|
5
|
|
100%
|
1.72
|
58.1%
|
1
|
6
|
|
100%
|
2.37
|
42.2%
|
1
|
7
|
100%
|
|
1.20
|
83.3%
|
0
|
8
|
100%
|
|
2.45
|
40.8%
|
0
|
平均值
|
100%
|
100%
|
2.00
|
59.0%
|
0.75
|
最小值
|
100%
|
100
|
0.95
|
26.0%
|
0
|
最大值
|
100%
|
100%
|
3.85
|
105.3%
|
2
|
标准偏差
|
0
|
0
|
0.91
|
0.25
|
0.71
|
任务二数据分析结果
测试对象
|
独立完成率 %
|
协助完成率 %
|
完成时间(分钟)
|
完成率 /完成时间
|
帮助次数
|
1
|
|
86%
|
26.63
|
3.23%
|
14
|
2
|
|
100%
|
39.72
|
2.52%
|
11
|
3
|
|
100%
|
32.98
|
3.03%
|
13
|
4
|
|
100%
|
27.92
|
3.58%
|
6
|
5
|
|
100%
|
26.13
|
3.83%
|
13
|
6
|
|
100%
|
35.37
|
2.83%
|
6
|
7
|
100%
|
|
23.80
|
4.20%
|
0
|
8
|
|
100%
|
37.58
|
2.66%
|
3
|
平均值
|
100%
|
98%
|
31.27
|
3.23%
|
8.25
|
最小值
|
100%
|
86%
|
23.80
|
2.52%
|
0
|
最大值
|
100%
|
100%
|
39.72
|
4.20%
|
14
|
标准偏差
|
0
|
0.05
|
5.93
|
0.59%
|
5.23
|
任务三数据分析结果
测试对象
|
独立完成率 %
|
协助完成率 %
|
完成时间(分钟)
|
完成率 /完成时间
|
帮助次数
|
1
|
|
100%
|
1.22
|
82.0%
|
1
|
2
|
|
100%
|
0.55
|
181.8%
|
1
|
3
|
100%
|
|
0.32
|
312.5%
|
0
|
4
|
|
100%
|
0.33
|
303.0%
|
2
|
5
|
100%
|
|
0.37
|
270.3%
|
0
|
6
|
|
100%
|
1.00
|
100.0%
|
1
|
7
|
100%
|
|
0.35
|
285.7%
|
0
|
8
|
100%
|
|
0.57
|
175.4%
|
0
|
平均值
|
100%
|
100%
|
0.59
|
213.8%
|
0.63
|
最小值
|
100%
|
100%
|
0.32
|
82.0%
|
0
|
最大值
|
100%
|
100%
|
1.22
|
312.5%
|
2
|
标准偏差
|
0
|
0
|
0.34
|
91.7%
|
0.74
|
所有任务数据分析结果的平均情况
参加者 #
|
独立完成率 %
|
协助完成率 %
|
完成时间(分钟)
|
完成率 /完成时间
|
帮助次数
|
1 |
|
90.9% |
36.13 |
2.52% |
20 |
2 |
10% |
90% |
43.82 |
2.28% |
17 |
3 |
8% |
92% |
38.05 |
2.63% |
16 |
4 |
|
100% |
35.42 |
2.82% |
13 |
5 |
8% |
92% |
30.28 |
3.30% |
16 |
6 |
17% |
83% |
47.13 |
2.12% |
8 |
7 |
83% |
17% |
35.22 |
2.84% |
1 |
8 |
35% |
65% |
45.28 |
2.21% |
3 |
平均值 |
26.83% |
78.74% |
38.92 |
2.59% |
11.75 |
标准偏差 |
0.29 |
0.27 |
5.87 |
0.39% |
6.96 |
最小值 |
8% |
17% |
30.28 |
2.12% |
1 |
最大值 |
83% |
100% |
47.13 |
3.30% |
20 |
AIR满意度问卷调查结果
测试对象
|
产品的整体设计
|
产品的容易使用程度
|
用户界面的容易掌握程度
|
用户界面与外观设计
|
用户界面间转换的容易程度
|
菜单、标签、联机帮助所使用的措辞
|
1 |
2 |
1 |
2 |
3 |
2 |
3 |
2 |
2 |
2 |
3 |
2 |
3 |
3 |
3 |
5 |
5 |
5 |
3 |
3 |
3 |
4 |
3 |
5 |
5 |
3 |
3 |
2 |
5 |
4 |
4 |
3 |
2 |
1 |
3 |
6 |
3 |
5 |
3 |
3 |
2 |
3 |
7 |
4 |
3 |
4 |
2 |
3 |
3 |
8 |
5 |
4 |
3 |
4 |
2 |
2 |
平均值 |
4.5 |
4.9 |
4.9 |
4.6 |
4.3 |
4.8 |
标准偏差 |
1.41 |
1.25 |
1.46 |
1.41 |
1.75 |
1.58 |
最小值 |
3 |
3 |
3 |
2 |
3 |
3 |
最大值 |
7 |
6 |
7 |
6 |
7 |
7 |
*1 表示非常不满意 7 表示非常满意
结论:
这些用户都是操纵 WINDOWS系统的熟练用户,他们也代表了大部分使用计算机的群体。既然WINDOWS已经盛行多年,微软又在系统界面设计上投入了大量的人力物力,XWINDOW为什么不来个东施效颦呢?XWINDOW中的许多名词也经常让人费解,比如控制中心,我看就是没有控制面版好。其实用户界面的好看实用与否并没有一个统一的规则,但是做为一个比较成功的操作系统WINDOWS已为人们所熟悉。就不要难为我们可怜的计算机用户了。
参考文献 :
[1].Nigel Bevan, Tutorial 11---Industry Standard Usability Tests,Interact ’ 99 Conference, Edinburgh, 1999.
[2].Jakob Nilsen, Usability Engineering, Academic Press, 1993.
[3].Harry E. Blanchard, Standards for Usability Testing, ACM SIGCHI Bulletin, Vol.30, No.3, 1998.
[4].Nigel Bevan, Common Industry Format Usability Tests, Proc. Usability Professionals Association Conference, <place><city><span lang="EN-US">Scottsdate</span></city><span lang="EN-US">, </span><state><span lang="EN-US">Arizona</span></state></place> , 1999.6.