User Inter~face Design  A Software Engineering Perspective 个人翻译
咯,这是我第一次翻译东西,给科创了嗯。欢迎转载和拍砖,但是请声明来自科创。
————————————————————我是可爱的分割线^_^——————————————————————————
     科学之所以令人着迷,除了它自身的结构严谨和逻辑严密给学习者带来的无与伦比的美感以外,更多的还在于科学技术应用于实际从而使得生活变得更加的美好吧。至少,我是这么认为的。
     一个良好的程序之所以令人着迷,除了它的效率和处理数据的带给人的愉悦感以外(当然偶尔还有优秀代码本身带来的美感,不过这部分只有编程者自己能够体会到了),还在于它的良好的界面,良好的用户交互性,简易的使用性上面。而往往的,对于普通用户来说,第二点更加的重点。
     来科创两天了,感觉科创的讨论科学的气氛非常的好,只是在于科学在艺术上的呈现上的文章略少。。这里我就来抛砖引玉了。
     来说个俗套的。苹果之所以成功,除了其商业运作以外,很大程度上都在于它的优秀的用户体验。
     在中国,关于计算机的交互设计和用户体验还是近十年提出的比较新的概念。明显的,相关的书籍几乎没有。。。好的国外的书籍也很少有见翻译过来的。
     因为lz我本人英语水平烂得一塌糊涂,所以为了鼓励自己学英文,以及逼着自己完整的拜读一本口碑非常好的六百多面的用户体验的书籍,我特地开了这个一个系列帖子。。(脱水很麻烦,我就每天一贴好了)以后每天过来翻译两千字(中文)
     这本书大概是在讲用户界面设计如何在软件工程中进行。。(我根据标题猜的诶。。)
     这里算是译者案吗??
     以后每天,呃、、不固定时间啦,过来发一部分英文原文和译文。欢迎kcer就翻译中出现的问题拍砖~嗯 这就不废话了 开始贴文了。
—————————————————我是萌系的分割线>______________________=~——————————————————————————————————
原文:


143752


143753


143754


143755





前言:
     当你为一个计算机系统(上的软件)设计用户界面时,你会考虑这个系统的窗口看起来怎样,什么将精确的出现在每一个窗口中,以及它们开起来怎样。你也在考虑用户能点击什么,以及点击以后会发生什么,并结合所有这些用户界面上的细节。这是一个设计师的职责,使程序有着足够的易用性——它可以完成所有它需要完成的任务,并且易于使用。而程序员的职责是——使得程序在实际上能完全按照设计师的预期那样运转。
     如果你(的工作)与用户界面有密切关系,那么这本书就是为你而写。(在这本书里)你将不仅仅学到怎样设计以及它们为什么重要——你还学到在实际上(软件工程的实践中)如何去实践设计这一过程。
制作一个用户界面
     如何设计一个用户界面,如果把这个问题问一个程序员,他也许会告诉你:
     “用户界面?噢,那太无聊了,我们添加它仅仅因为他是制作一个软件的重要组成部分。”
     如果把这个问题问一个人机交互(HCI)专家,他可能会说:
     “用户界面?哦,你必须研究用户和他们的任务。要做到这一点,你必须
知道了很多有关心理学,人体工程学和社会学(的知识)。设计它?好吧,你需要想出了一个用户界面的原型,并审查用户如何使用他。
编程?哦,那个是当用户界面设计好之后程序要做的。”
制作一个用户界面
这里是不是有一个很大代沟?对,当然。事实上,设计一个用户界面很简单——如果完全按照程序员说的那样的话——但是设计一个好的用户界面却很难——这是一个人机交互专家努力去做的事情。
市面上有上千本书来讲变成。就我认为,这些书的共同点在于认为用户界面不甚重要——它仅仅是关系到数据的输入和输出。编程确实是一件很难的事情,有上千本书来讲它也是理所当然的。不过这里有一个问题在于程序员不去学习如何设计用户界面,尽管一半以上的程序都有着用户界面。
市面上关于人机交互的书却没有几本。这些书里面有很多关于人类心理学,如何研究用户和他们的任务,如何测试原型或成品系统的可用性等等内容。但令人惊讶的是,对于实际设计和现实生活中的用户界面,它们提及的却非常少——窗口需要多大,应该包含什么内容,我们该如何呈现数据,我们该如何确保我们的第一个原型产品能够尽可能的接近一个很好的解决方案。说句实话,我已经看了好几本有关设计的书了:Redmond-Pyle and Moore (1995),还有Cox and Walker(1993) Constantine and Lockwood (1999)的一部分了。然而,即使是在这几本书里,大部分关于窗口的设计都像忽然弹出的空气那样(了无依据)。
很多程序员都看过关于人机交互的书籍,他们反复的阅读,但是几乎找不到他们能够马上使用的部分。他们却没有获得任何关于如何设计一个用户界面的答案。这些书里某种程度上假设了一种试错法(追求目标的通过不断试验和消除误差,探索具有黑箱性质的系统的方法。这种方法在动物的行为中是不自觉地应用的,在人的行为中则是自觉的。试错法是纯粹经验的学习方法。应用试错法的主体通过间断地或连续地改变黑箱系统的参量,试验黑箱所作出的应答,以寻求达到目标的途径。主体行为的成败是用它趋近目标的程度或达到中间目标的过程评价的。趋近目标的信息给主体,主体就会继续采取成功的行为方式;偏离目标的信息反馈给主体,主体就会避免采取失败的行为方式。通过这种不断的尝试和不断的评价,主体就能逐渐达到所要追求并不能的目标。)的方式。但是程序员们却不相信这些,他们觉得试错法在编程中的作用并不大。为什么它在用户界面设计中有用呢?
为这两个世界搭建一座桥梁
这本书试图去跨越(程序员和用户体验师之间的)鸿沟,这本书一个非常重要的部分是如何使用一个系统的方法去设计用户界面,使得用户界面更容易被理解以及更好的支持用户(对)效率(上的要求),我们把这个方法称为虚拟窗口方法。虚拟窗口方法对于数据展示上有着更好的图形化的呈现。而对任务的分析应该在虚拟窗口和对话的设计之前进行。
我曾经与同事和学生从事开发虚拟窗口方法多年,并且已经称为了一种来进行用户界面开发的常规方式。我们并不能说这个结果在初期是毫无使用性问题的,就像一个好的程序在一开始的时候也不可避免的有bug存在。但是设计一个成功的有着大型结构的界面,同时使存在的问题得到纠正,(要做的)比试错法做得多得多。
封面图片说明了这一点。它是丹麦艺术家Otto Frello1995年创作的。是想,这是一个良好的用户界面的道路,一条坚定的道路,但是它并不是一路平直的。然而,却能够很好的支持到每一个角落(注意到那个在沿路反复出现的老太太)
143751


为了将设计用一种系统的方法进行,我们要同时借鉴程序员和人机交互专家的世界,但是我们仅仅借鉴必要和适应于我们的具体用途(的部分)。这里是我们所借鉴的一些重要的方面:
n  如何来衡量可用性
n  可用性测试和启发式评估
n  不同种类的原型
n  数据演示
n  我们感知屏幕(所显示的内容)的心理规律
n  任务分析和使用情况
n  数据建模(程序员的世界)
n  状态图(程序员的世界)
n  检查设计使之顺着问题的发展进行(程序员的世界)
从这些系统化的设计的传统议题中出发,我们加了一些新的东西:
n  用户去理解他们没有看到的东西的心理模型
n  虚拟的窗口:在几个屏幕中同时呈现很多任务运转时产生的数据
n  界面的功能化设计:以屏幕的结构化和统一化方式添加按钮,菜单等
+30  科创币    delete   2012-07-31   
+70  科创币    epi.clyce   2012-07-31   优秀翻译
+10  科创币    nqmtlove   2012-07-31   辛苦了!
+200  科创币    novakon   2012-07-31   论坛上很多人苦于鸟语,就是缺乏楼主这种学为所用的精神,向楼主致敬。
+100  科创币    十九   2012-08-01   卖萌要节制啊姐姐!
+200  科创币    彼岸江山   2012-08-01   高质量发帖
+100  科创币    trample   2012-08-02   辛苦了
+20  科创币    paclab   2012-08-16   translation with eloquent
来自 中国语言文学
 
2012-7-31 01:55:23
1楼
我也有本讲界面的书.O'Reilly的,全彩.
当初收废书的时候顺带拿的.一直没看.
折叠评论
加载评论中,请稍候...
折叠评论
2012-8-1 01:21:04
小依(作者)
2楼
咯 其实我想发到茶话区的。结果嘛。。手一抖。。。哎 看了得食言一天。今天白天或者明天再来翻译接下来的两千字咯
+1  科创币    十九   2012-08-01   没问题,不着急。再次要求:卖萌要节制!
折叠评论
加载评论中,请稍候...
折叠评论
3楼
so, 楼主是软件攻城师?承叙猿?还是?看到go ruby go我就回帖了
UI设计糟糕的软件我用了不少(每个人都用过不少),比如Win7的mspaint(pbrush)就让我很头疼甚至一度想把XP的拷过去用。
本人除了写一些乱七八糟的程序之外还做一些乱七八糟的设计、研究一些乱七八糟的技术(比如3DCG)……也翻译过一些乱七八糟的英文文章,看到楼主也在做这个感觉很亲切
折叠评论
加载评论中,请稍候...
折叠评论
4楼
瞄了一眼作者信息
学姐还没毕业我错了
折叠评论
加载评论中,请稍候...
折叠评论
2012-8-3 09:58:22
2012-8-3 09:58:22
小依(作者)
5楼
抱歉。。因为前几天比较忙。。停更了两天。。呃。。这就补上。。。图片传不上去。。。
还是那句老话,欢迎拍砖,转载请注明来自科创。。咳咳。来自小依。。。
------------------------------------------------------------------ 我是分割线`______________________________~-------------------------------------------------------------------

用户界面编程
这本书是关于界面设计的深入浅出的书籍。而用户界面编程与界面设计是密切相关的,所以我们也需要关于如何进行用户界面编程的教材。这是一个教学上——甚至是政治问题:该使用哪个平台去编程?这里有很多选项:微软的windows,Unix,html,swing(java的一个包)等等。在理想情况下,我们应该有所有这些平台的教材。
(因此,)我已经选择开放这本书的配套的教材下载——一本关于使用Microsoft access进行用户界面设计的小册子。我选择Microsoft access的原因是,微软access是现成的,作为Microsoft Office的一部分,很多学生都会使用到它;(用它)来实现一个真正的数据库是很容易的。你可以快速的创造一个真正的小系统,你也可以逐渐增加的功能使之完善。Access也展现出和其他的平台类似的地方,比如GUI对象,嵌入式SQL和事件处理。同时我也希望能有包括其他平台的小册子。
小册子可以从www.booksites.net/lauesen免费下载得到。它使用了这本书的例子,来说明如何把它们变成一个功能系统。

本书的设计案例
这本书演示了设计一个酒店接待处所需的绝大多数的设计的技术。去展示一个发生在很大的项目里发生了什么是十分复杂的,所以这让很多人相信,只有通过虚拟窗口这样一种方法才能设计这样一种系统。不过幸运的是,这种想法是不对的。
本书也通过同样的方法展示了如何设计不同的系统。第十章展示了如何设计一个网站系统去进行课程评价和管理。第十一章展示了如何去设计一个先进的电子邮件系统。在3.7节中我们展示了使用这种方法去设计一个复杂的系统规划的一部分。第十七章使用了其他系统来进行设计练习,例如,一个基于网络的知识管理系统,一个复制照片的系统,一个辅助小型建筑承包商的系统和IT项目管理系统

没有包括的方面
在这本书里,我们不注重美化——如何让屏幕看起来更有吸引力——或系统的娱乐价值。这些问题对于一些系统来说非常的重要,但是在这本书中,我们更看重是人如何使用这个系统去开展一些任务,对于这个方面来说,美化并不是那么的重要。其实说句是哈,我还没有想到如何通过一种系统的方法去处理美化的问题。
本书更关注那种大量的数据是在一个可视化界面的系统上使用某种方式来进行演示的系统。因此,我们不讨论语音化的接口(例如手机的响应系统)或者为盲人设计的用户界面。
这本书里我们同样不太讨论一些用户界面在十分具体的层面上的一些东西,比如如何一个按钮的点击和选中如何演示,滚动条如何工作,是否使用鼠标或触摸板。我们通过一些平台给出或确定这些东西在我们的系统上是如何运行的。这些问题对于一些项目来说是非常重要的,它们在一些项目上被完美的解决了,比如Preece et al. (1994,2002), Cooper (1995) and Dix et al. (1998).
为什么作者不在这本书里提到面向对象呢?难道他不知道面向对象吗?不,他是真的知道的。但是传统的面向对象的方法在实际上是不能够帮我们系统的设计出一个用户界面的。不过,我们可以通过对象来描述设计的结果,这里在设计产品如何和传统的面向对象方法建立联系以及建立起怎样的联系给出了一个有趣的观点(见9.2.3节)。

这本书的组织方式
这本书可以分为三个部分。它们分别把不同的方式和不同的课程结合起来了。
A部分,经典(第1-4章)
一些经典的可用性主题:定义和测量的可用性;使用原型,可用性测试和迭代设计;;数据演示,以及用户如何理解他们在屏幕上看到的东西。
B部分:系统的进行界面设计(第5-9章)
如何使用种系统的方法设计原型,使得它在早期就能接近正确。这包括任务分析,设计虚拟窗口,定义系统的功能和图像化的演示。第9章讲述了虚拟窗口的方法,并且将它和别的设计方法进行比较。
C部分:补充的设计问题(第10-16章)
可以根据用户的不同需求设计可选主题。比如说,对不同的系统进行一般性的系统开发,数据建模,用户支持与文档,设计用例。

对于整本书的A和B部分,我们列出了一个从学习到实现的目录:在每章结束之后你可以学习到去如何做一些对项目发展有着实际意义的事情。之后,你可以尝试一些设计方面练习。这里是一个总结:
第一章:可用性
在这一章里,你可以学会如何通过可用性测试来确定现有系统的可用性问题,你也应该学会如何确定和测量系统的可用性。在练习中,你可以指定和衡量现有系统的可用性。比如一个现有的网站。
第二章:原型和迭代设计
在这一章里,你会学习到经典设计的可用性方法:设计原型,可用性测试,修改设计,再次测试等。在练习中,你将为一个小型的系统进行几个窗口的原型设计,并测试它的可用性。
第三章:数据的展示
你将学到用多种方式使数据展示到屏幕上,以及这些展示方式背后的心理。你将实践一些现有的设计上的规则,并且尝试设计出不寻常的数据展示。
第四章:心理模型和界面设计
你可以学到,对于一些长期使用的对象用一些心理学上的规律去解释为什么用户常常会误解系统做什么,以及通过一种系统的方式来进行用户界面的设计上如何去避免(这种误解),同时你还可以了解两个极端的界面架构:面向数据库和面向循序渐进。
第五章:分析,远见,和域描述
你可以学到,如何使用用户任务和数据用一种合适的方式对用户界面设计建模。在接下来的章节里,你还可以(学习如何)把这种方式在一个更大的设计项目中实施。(一些额外的部分可以用部分任务的分析和数据模型来解释,当他们仅仅需要一些用户所熟知的主题。)
第六章:虚拟窗口设计
你将学到如何设计虚拟窗口:对于一个大型结构的用户界面——需要多少窗口,展示什么数据,怎样去展示数据,如何确保它们可以搞笑的支持用户任务,如何去检查结果。你会在一个更大的设计中尝试它们。
第七章:功能设计
你将学到如何将虚拟窗口转移到电脑屏幕上,以及如何在基于任务描述和状态图的虚拟窗口上添加系统功能到电脑屏幕上,你也应该学会如何去决定一个函数是否要显示在一个按钮,菜单,拖放式等等上面。同样,你也可以将它实践到大型的设计项目上。
折叠评论
加载评论中,请稍候...
折叠评论
2012-8-19 21:17:25
2012-8-19 21:17:25
6楼
“这里是不是有一个很大代沟?对,当然。事实上,设计一个用户界面很简单——如果完全按照程序员说的那样的话——但是设计一个好的用户界面却很难——这是一个人机交互专家努力去做的事情。
市面上有上千本书来讲变成。就我认为,这些书的共同点在于认为用户界面不甚重要——它仅仅是关系到数据的输入和输出。编程确实是一件很难的事情,有上千本书来讲它也是理所当然的。不过这里有一个问题在于程序员不去学习如何设计用户界面,尽管一半以上的程序都有着用户界面。"

这段感觉好生硬
折叠评论
加载评论中,请稍候...
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

ID:{{user.uid}}
{{user.username}}
{{user.info.certsName}}
{{user.description}}
{{format("YYYY/MM/DD", user.toc)}}注册,{{fromNow(user.tlv)}}活动
{{submitted?"":"投诉"}}
请选择违规类型:
{{reason.description}}
支持的图片格式:jpg, jpeg, png