第36章
作者:林锐 更新:2021-12-03 17:33
我觉得还不过瘾,就写了一篇“用户界面设计美学”的短文[林锐 1997]。凡是路过我实验室的同学都被我逮住,被迫听完我得意之极的朗读,茫然者与痛苦者居多。不久我的朗读便所向披糜,闻声者逃之夭夭。现在我又把那篇短文摘录至此,请您忍着点吧。
5.4.1 界面设计中美的需求与导向作用
人们对美的向往和追求是与生俱有的。显然没有人愿意丑化自己的程序,也没有用户嗜好丑陋的界面。软件开发者要设计美,用户要享受美,所以界面的美是开发者与用户的共同需求。
界面美的概念很抽象,以致让人无法说清楚什么是界面的美。但它同时又很现实,以致人人都可以去欣赏和感受界面美,并且挑剔美中之不足。美学不是一种量化的学问,如果因此而轻视美学指导,必将导致在设计过程中光依赖程序员个人的经验与感觉。由于程序员接受的教育主要是如何使计算机完成工作,而不是人如何工作,因此仅靠程序员主观想象设计而成的界面往往得不到大众用户的认可。
美的界面能消除用户由感觉引起的乏味、紧张和疲劳(情绪低落),大大提高用户的工作效率,从而进一步为发挥用户技能和为用户完成任务作出贡献。从人机界面发展历史与趋势上可以看出人们对界面美的需求,以及美在界面设计中的导向作用。
界面设计已经经历了两个界限分明的时代。第一代是以文本为基础的简单交互,如常见的命令行,字符菜单等。由于第一代界面考虑人的因素太少,用户兴趣不高。随着技术的发展,出现了第二代直接操纵的界面。它大量使用图形、语音和其它交互媒介,充分地考虑了人对美的需求。直接操纵的界面使用视听、触摸等技术,让人可以凭借生活常识、经历和推理来操纵软件,愉快地完成任务。更高层次的界面甚至模拟了人的生活空间,例如虚拟现实环境。
界面的美充分体现了人机交互作用中人的特性与意图,越来越多的用户将通过具有吸引力而令人愉快的人机界面与计算机打交道。
5.4.2 界面美的内涵
本节从合适性、风格和广义美三个方面论述界面美的内涵。
一、界面的合适性
界面的合适性是指界面是否与软件功能相融洽。如果界面不适合于软件的功能,那么界面将毫无用处,界面美的内涵就无从谈起。所以界面的合适性是界面美的首要因素,它提醒设计者不要片面追求外观漂亮而导致失真或华而不实。界面的合适性既提倡外美内秀,又强调恰如其分。
合适性差的界面无疑会混淆软件意图,致使用户产生误解。即使它不损害软件功能与性能,也会使用户产生不该有的情绪波动。例如一些软件开发者喜欢为其作品加一段动画演示,以便吸引更多用户的关注。这本是无可非议的,问题在于这演示是否合情合理。如果运行一个程序,它首先表演一套复杂的动画,在后台演奏雄壮的进行曲,电闪雷鸣之后出来的却是一个普通的文本编辑器。整个过程让用户置身于云里雾里,而结果却让用户感到惊谔而不是惊喜。合适性差的界面只会给软件带来厄运。
二、界面的风格
界面的风格有两类,一是“一致性”,二是“个性化”。
商业应用软件的界面设计注重一致性。设计者必须密切注意在相同应用领域中最流行的软件的界面,必须尊重用户使用这些软件的习惯。例如商业软件习惯于设置F1键为帮助热键,如果某个设计者别出心裁地让F1键成为程序终止的热键,那么在用户渴望得到帮助而伸手击F1键的一刹那,他的工作就此完蛋。相信这个用户“一朝被蛇咬,十年怕井绳”。
目前流行的软件开发工具如Visual C++、Visual Basic、Delphi、C++ Builder、Power Builder等,都能够快速地开发出非常相似的图形用户界面。在Internet/Intranet领域,浏览器几乎成了唯一的客户机程序,因为用户希望用完全一致的软件来完成千变万化的应用任务。
在娱乐领域的软件中,有个性化的界面自然比泯然于众的界面更具有吸引力。一般说来,计算机专业人员玩过的软件不计其数。界面看多了,真有种“曾经沧海难为水”的感觉。不过当我看到一个叫Sonique的放音乐的软件时,不禁对其界面的创意啧啧称赞,忍不住象贴美女像那样把它贴到书中,如图5.7所示。
图5.7 Sonique软件的几种界面
人们经常搞不清楚什么情况下应该追求“一致性”或“个性化”。在大白天,当人们都穿戴整齐时,有些人喜欢只挂几片遮羞布。而当大家都赤条条地在共公浴室洗澡时,却也有人喜欢穿着衣服。
三、界面的广义美
尽管界面的美并没有增加软件的功能与性能,却又是必为可少的。用户使用界面时,除了直接的感官美感外,还有很大一部分美感是间接的,它们存在于人们的使用体验中,例如方便,实用等。与图形用户界面相比,命令行是最原始的界面,它难记又难看。但对于熟练的用户而言,他们乐于使用命令行以获得高效率。命令行因具有高效率而赢得了专业人士的喜爱,早期的Unix系统就是彻头彻尾的命令系统。可以说,一切有利于人机交互的界面设计因素都具有广义美。
界面设计的一些特殊考虑也体现了广义美,如设法使残障人也可以使用软件。IBM公司在1985年已经创建了残障人国家支持中心。Apple公司的专门教育办公室则提供了一些有利于残障人使用的计算机信息产品。
5.5 系统设计示例
——支持协同工作的交互式三维图形软件开发系统
本节论述“支持协同工作的交互式三维图形软件开发系统”的系统设计,作为本章的示例( 取材于作者的博士论文工作[林锐 2000])。
5.5.1 设计背景
图形标准在图形领域有着重要的地位,它不仅加速了3D应用程序的开发,而且使3D应用程序的可移植性更好。历史上曾出现的图形标准(或API)有Core、GKS、PHIGS、PEX、GL、Dore、RenderMan、Hoops、OpenGL等等。经过竞争与淘汰,目前OpenGL成为国际上公认的3D图形工业标准,在Unix与PC平台得到广泛应用。OpenGL提供了数百个库函数,可以方便地绘制具有真实感的3D图形。但是在开发交互式的3D图形应用程序时,图形的绘制只是一部分工作,更多的工作集中在场景数据结构、图形对象、三维交互和图形用户界面的设计上。
由于OpenGL与窗口系统无关,不提供任何交互手段,必须由程序员自己编写所有的交互功能。并且OpenGL 的编程接口是低级的C函数,不提供可复用的对象库或者应用程序框架,开发效率不高。为了克服这些困难,人们往往在图形标准之上再建立更高级的开发工具(3D Toolkit或3D Engine)。基于OpenGL的著名的开发工具有Open Inventor、IRIS Performer、Optimeizer/Cosmo3D以及GLUT等等。Open Inventor被誉为是交互式3D开发工具的“事实标准”,但显然没有一个3D开发工具能满足所有的应用需求,3D的广泛应用需要更多的开发工具支持。
随着计算机图形技术与网络技术的迅猛发展,两者的结合势在必行。在商业、科研、教育、娱乐等领域,用于分布式虚拟环境(Distributed Virtual Environments, DVEs)和计算机支持协同工作(Computer Supported Cooperative Work, CSCW)的图形系统已成为研究与应用的热点。著名的DVEs系统有DIVE、dVS、MR、Repo-3D等。但是这些DVEs系统缺乏3D开发工具的交互式图形功能以及通用性,而通用的3D开发工具如Open Inventor则又不支持分布式计算和协同工作。由于在窗口系统、图形支撑库、编程语言等方面存在差异,上述DVEs系统和3D开发工具难以方便地结合使用。
我们多方面分析了3D需求及软硬件条件,研制完成运行于PC平台,支持协同工作的交互式三维图形软件开发系统,如图5.8所示。其中:
(1)Intra3D 2.0是基于OpenGL的通用交互式三维图形软件开发工具,可用于快速开发Window 9x/NT下的交互式三维图形应用软件。
(2)CNC 1.0是支持协同工作的网络通讯开发系统(Cooperative Network Communicator),其核心是支持“发布—订阅模式”与“组播模式”的服务器与API。
结合Intra3D 2.0和CNC 1.0,可以快速开发支持协同工作的交互式三维图形应用软件。
图5.8 支持协同工作的交互式三维图形软件开发系统
5.5.2 通用交互式三维图形软件开发工具 Intra3D 2.0
Intra3D 2.0的核心是集成了场景数据结构、图形对象、三维交互算法和图形用户界面的C++类库与COM(Component Object Model)对象库,支持Visual C++、Visual Basic、Delphi等语言的应用编程。
5.4.1 界面设计中美的需求与导向作用
人们对美的向往和追求是与生俱有的。显然没有人愿意丑化自己的程序,也没有用户嗜好丑陋的界面。软件开发者要设计美,用户要享受美,所以界面的美是开发者与用户的共同需求。
界面美的概念很抽象,以致让人无法说清楚什么是界面的美。但它同时又很现实,以致人人都可以去欣赏和感受界面美,并且挑剔美中之不足。美学不是一种量化的学问,如果因此而轻视美学指导,必将导致在设计过程中光依赖程序员个人的经验与感觉。由于程序员接受的教育主要是如何使计算机完成工作,而不是人如何工作,因此仅靠程序员主观想象设计而成的界面往往得不到大众用户的认可。
美的界面能消除用户由感觉引起的乏味、紧张和疲劳(情绪低落),大大提高用户的工作效率,从而进一步为发挥用户技能和为用户完成任务作出贡献。从人机界面发展历史与趋势上可以看出人们对界面美的需求,以及美在界面设计中的导向作用。
界面设计已经经历了两个界限分明的时代。第一代是以文本为基础的简单交互,如常见的命令行,字符菜单等。由于第一代界面考虑人的因素太少,用户兴趣不高。随着技术的发展,出现了第二代直接操纵的界面。它大量使用图形、语音和其它交互媒介,充分地考虑了人对美的需求。直接操纵的界面使用视听、触摸等技术,让人可以凭借生活常识、经历和推理来操纵软件,愉快地完成任务。更高层次的界面甚至模拟了人的生活空间,例如虚拟现实环境。
界面的美充分体现了人机交互作用中人的特性与意图,越来越多的用户将通过具有吸引力而令人愉快的人机界面与计算机打交道。
5.4.2 界面美的内涵
本节从合适性、风格和广义美三个方面论述界面美的内涵。
一、界面的合适性
界面的合适性是指界面是否与软件功能相融洽。如果界面不适合于软件的功能,那么界面将毫无用处,界面美的内涵就无从谈起。所以界面的合适性是界面美的首要因素,它提醒设计者不要片面追求外观漂亮而导致失真或华而不实。界面的合适性既提倡外美内秀,又强调恰如其分。
合适性差的界面无疑会混淆软件意图,致使用户产生误解。即使它不损害软件功能与性能,也会使用户产生不该有的情绪波动。例如一些软件开发者喜欢为其作品加一段动画演示,以便吸引更多用户的关注。这本是无可非议的,问题在于这演示是否合情合理。如果运行一个程序,它首先表演一套复杂的动画,在后台演奏雄壮的进行曲,电闪雷鸣之后出来的却是一个普通的文本编辑器。整个过程让用户置身于云里雾里,而结果却让用户感到惊谔而不是惊喜。合适性差的界面只会给软件带来厄运。
二、界面的风格
界面的风格有两类,一是“一致性”,二是“个性化”。
商业应用软件的界面设计注重一致性。设计者必须密切注意在相同应用领域中最流行的软件的界面,必须尊重用户使用这些软件的习惯。例如商业软件习惯于设置F1键为帮助热键,如果某个设计者别出心裁地让F1键成为程序终止的热键,那么在用户渴望得到帮助而伸手击F1键的一刹那,他的工作就此完蛋。相信这个用户“一朝被蛇咬,十年怕井绳”。
目前流行的软件开发工具如Visual C++、Visual Basic、Delphi、C++ Builder、Power Builder等,都能够快速地开发出非常相似的图形用户界面。在Internet/Intranet领域,浏览器几乎成了唯一的客户机程序,因为用户希望用完全一致的软件来完成千变万化的应用任务。
在娱乐领域的软件中,有个性化的界面自然比泯然于众的界面更具有吸引力。一般说来,计算机专业人员玩过的软件不计其数。界面看多了,真有种“曾经沧海难为水”的感觉。不过当我看到一个叫Sonique的放音乐的软件时,不禁对其界面的创意啧啧称赞,忍不住象贴美女像那样把它贴到书中,如图5.7所示。
图5.7 Sonique软件的几种界面
人们经常搞不清楚什么情况下应该追求“一致性”或“个性化”。在大白天,当人们都穿戴整齐时,有些人喜欢只挂几片遮羞布。而当大家都赤条条地在共公浴室洗澡时,却也有人喜欢穿着衣服。
三、界面的广义美
尽管界面的美并没有增加软件的功能与性能,却又是必为可少的。用户使用界面时,除了直接的感官美感外,还有很大一部分美感是间接的,它们存在于人们的使用体验中,例如方便,实用等。与图形用户界面相比,命令行是最原始的界面,它难记又难看。但对于熟练的用户而言,他们乐于使用命令行以获得高效率。命令行因具有高效率而赢得了专业人士的喜爱,早期的Unix系统就是彻头彻尾的命令系统。可以说,一切有利于人机交互的界面设计因素都具有广义美。
界面设计的一些特殊考虑也体现了广义美,如设法使残障人也可以使用软件。IBM公司在1985年已经创建了残障人国家支持中心。Apple公司的专门教育办公室则提供了一些有利于残障人使用的计算机信息产品。
5.5 系统设计示例
——支持协同工作的交互式三维图形软件开发系统
本节论述“支持协同工作的交互式三维图形软件开发系统”的系统设计,作为本章的示例( 取材于作者的博士论文工作[林锐 2000])。
5.5.1 设计背景
图形标准在图形领域有着重要的地位,它不仅加速了3D应用程序的开发,而且使3D应用程序的可移植性更好。历史上曾出现的图形标准(或API)有Core、GKS、PHIGS、PEX、GL、Dore、RenderMan、Hoops、OpenGL等等。经过竞争与淘汰,目前OpenGL成为国际上公认的3D图形工业标准,在Unix与PC平台得到广泛应用。OpenGL提供了数百个库函数,可以方便地绘制具有真实感的3D图形。但是在开发交互式的3D图形应用程序时,图形的绘制只是一部分工作,更多的工作集中在场景数据结构、图形对象、三维交互和图形用户界面的设计上。
由于OpenGL与窗口系统无关,不提供任何交互手段,必须由程序员自己编写所有的交互功能。并且OpenGL 的编程接口是低级的C函数,不提供可复用的对象库或者应用程序框架,开发效率不高。为了克服这些困难,人们往往在图形标准之上再建立更高级的开发工具(3D Toolkit或3D Engine)。基于OpenGL的著名的开发工具有Open Inventor、IRIS Performer、Optimeizer/Cosmo3D以及GLUT等等。Open Inventor被誉为是交互式3D开发工具的“事实标准”,但显然没有一个3D开发工具能满足所有的应用需求,3D的广泛应用需要更多的开发工具支持。
随着计算机图形技术与网络技术的迅猛发展,两者的结合势在必行。在商业、科研、教育、娱乐等领域,用于分布式虚拟环境(Distributed Virtual Environments, DVEs)和计算机支持协同工作(Computer Supported Cooperative Work, CSCW)的图形系统已成为研究与应用的热点。著名的DVEs系统有DIVE、dVS、MR、Repo-3D等。但是这些DVEs系统缺乏3D开发工具的交互式图形功能以及通用性,而通用的3D开发工具如Open Inventor则又不支持分布式计算和协同工作。由于在窗口系统、图形支撑库、编程语言等方面存在差异,上述DVEs系统和3D开发工具难以方便地结合使用。
我们多方面分析了3D需求及软硬件条件,研制完成运行于PC平台,支持协同工作的交互式三维图形软件开发系统,如图5.8所示。其中:
(1)Intra3D 2.0是基于OpenGL的通用交互式三维图形软件开发工具,可用于快速开发Window 9x/NT下的交互式三维图形应用软件。
(2)CNC 1.0是支持协同工作的网络通讯开发系统(Cooperative Network Communicator),其核心是支持“发布—订阅模式”与“组播模式”的服务器与API。
结合Intra3D 2.0和CNC 1.0,可以快速开发支持协同工作的交互式三维图形应用软件。
图5.8 支持协同工作的交互式三维图形软件开发系统
5.5.2 通用交互式三维图形软件开发工具 Intra3D 2.0
Intra3D 2.0的核心是集成了场景数据结构、图形对象、三维交互算法和图形用户界面的C++类库与COM(Component Object Model)对象库,支持Visual C++、Visual Basic、Delphi等语言的应用编程。
作品本身仅代表作者本人的观点,与本站立场无关。如因而由此导致任何法律问题或后果,本站均不负任何责任。