軟件體系架構(gòu)第11章翻譯

11 易用性

任何該死的傻瓜都會(huì)使事情復(fù)雜化般妙,需要一個(gè)天才才能使事情簡(jiǎn)單化阻逮。
——艾爾伯特愛(ài)因斯坦

易用性關(guān)注的是用戶(hù)完成所需任務(wù)的簡(jiǎn)易程度以及系統(tǒng)提供的用戶(hù)支持類(lèi)型。多年來(lái)娩梨,易用性被證明是提高系統(tǒng)質(zhì)量(或者更準(zhǔn)確地說(shuō)我碟,用戶(hù)對(duì)系統(tǒng)質(zhì)量的感受)的最便宜且最簡(jiǎn)單的方法。
易用性由以下幾方面組成:
學(xué)習(xí)系統(tǒng)的特點(diǎn)姚建。如果用戶(hù)并不熟悉特定的系統(tǒng)或者是系統(tǒng)中特定的某部分,系統(tǒng)將如何簡(jiǎn)化系統(tǒng)的學(xué)習(xí)吱殉?這就需要包括提供幫助的功能掸冤。
高效地使用系統(tǒng)。系統(tǒng)將如何使用戶(hù)更高效地操作系統(tǒng)友雳?這可能包括用戶(hù)發(fā)出命令后稿湿,重定向系統(tǒng)的能力。例如押赊,用戶(hù)可能希望暫停一個(gè)任務(wù)饺藤,執(zhí)行其他多項(xiàng)操作,然后再恢復(fù)該任務(wù)流礁。
最小化錯(cuò)誤的影響涕俗。系統(tǒng)如何使產(chǎn)生的用戶(hù)錯(cuò)誤影響最小神帅?例如再姑,用戶(hù)可能希望取消發(fā)出的不正確指令。
調(diào)整系統(tǒng)以適應(yīng)用戶(hù)需求找御。用戶(hù)(或者系統(tǒng)本身)如何使用戶(hù)的任務(wù)更容易元镀?例如,系統(tǒng)可以根據(jù)用戶(hù)的過(guò)去的訪問(wèn)紀(jì)錄自動(dòng)填寫(xiě)URL霎桅。
增加信心和滿意度栖疑。系統(tǒng)如何使用戶(hù)確信正在執(zhí)行正確的操作?例如滔驶,提供表明系統(tǒng)正在執(zhí)行一個(gè)長(zhǎng)時(shí)間運(yùn)行的任務(wù)以及任務(wù)的完成程度的反饋可以增加用戶(hù)對(duì)系統(tǒng)的信心遇革。

11.1易用性一般情況

易用性一般情況構(gòu)成概括如下:
刺激源。最終用戶(hù)(可能是一個(gè)特定的角色瓜浸,比如一個(gè)系統(tǒng)或者網(wǎng)絡(luò)管理員)通常是易用性的刺激源澳淑。
刺激。刺激是由于最終用戶(hù)希望高效地使用系統(tǒng)插佛,學(xué)會(huì)使用系統(tǒng)杠巡,最大限度地減少錯(cuò)誤的影響,適應(yīng)系統(tǒng)雇寇,或者配置系統(tǒng)產(chǎn)生的氢拥。
環(huán)境蚌铜。使易用性關(guān)注于系統(tǒng)運(yùn)行時(shí)間或者配置時(shí)間的用戶(hù)操作平臺(tái)拘荡。
產(chǎn)品漾根。產(chǎn)品是與用戶(hù)進(jìn)行交互的系統(tǒng)或者系統(tǒng)的一特定部分。
響應(yīng)募寨。系統(tǒng)應(yīng)提供用戶(hù)所需的功能叁怪,或預(yù)執(zhí)行用戶(hù)的需求审葬。
*響應(yīng)估量。響應(yīng)通過(guò)任務(wù)時(shí)間奕谭、錯(cuò)誤數(shù)量涣觉、完成任務(wù)數(shù)量、用戶(hù)滿意度血柳、用戶(hù)掌握度官册、成功操作的比率、錯(cuò)誤產(chǎn)生后浪費(fèi)的時(shí)間長(zhǎng)短和丟失的數(shù)據(jù)多少难捌。

表11.1列出了描述易用性的一般情況的相關(guān)術(shù)語(yǔ)膝宁。
圖11.1給出了一個(gè)使用表11.1生成的具體的易用性情況的例子:用戶(hù)下載了一個(gè)新的應(yīng)用并在兩分鐘后的實(shí)驗(yàn)后對(duì)其進(jìn)行有效的使用。

11.2易用性的策略

回憶一下根吁,易用性關(guān)注的是用戶(hù)完成所需任務(wù)的容易程度和系統(tǒng)提供的支持類(lèi)型员淫。人際交互的研究人員們已經(jīng)用過(guò)術(shù)語(yǔ)用戶(hù)主動(dòng),系統(tǒng)主動(dòng)和混合主動(dòng)來(lái)描述人機(jī)交互中哪一方在執(zhí)行特定的動(dòng)作時(shí)占主動(dòng)地位击敌,以及交互如何進(jìn)行满粗。易用性場(chǎng)景可以將雙發(fā)的主動(dòng)性結(jié)合起來(lái)。比如愚争,當(dāng)取消一個(gè)命令時(shí)映皆,用戶(hù)發(fā)出一個(gè)取消指令——用戶(hù)主動(dòng)——然后系統(tǒng)應(yīng)答。在取消的過(guò)程中轰枝,無(wú)論如何捅彻,系統(tǒng)可能提出一個(gè)進(jìn)行指令——系統(tǒng)主動(dòng)。因此鞍陨,取消操作可以作為混合主動(dòng)的示例步淹。我們運(yùn)用用戶(hù)和系統(tǒng)主動(dòng)之間的差別來(lái)討論架構(gòu)師用來(lái)實(shí)現(xiàn)不同易用性場(chǎng)景的策略。

圖11.2展示了一系列運(yùn)行時(shí)易用性策略的目標(biāo)诚撵。


分離用戶(hù)界面缭裆!

通過(guò)快速構(gòu)建產(chǎn)品原型以使用戶(hù)界面的實(shí)驗(yàn)更快捷,是一個(gè)架構(gòu)師能做的使系統(tǒng)更加易用的最有幫助的事情之一寿烟。構(gòu)建一個(gè)產(chǎn)品原型澈驼,或者一些原型,讓真實(shí)的用戶(hù)體驗(yàn)用戶(hù)界面并給出反饋筛武,會(huì)得到巨大的意外收獲缝其。做到這一點(diǎn)最好的方法就是設(shè)計(jì)能夠快速改變用戶(hù)界面的軟件挎塌。
我們?cè)诘?章看到的可修改性策略完美地支持這一目標(biāo),特別是以下這些:

  • 增強(qiáng)語(yǔ)意連貫内边,封裝和共同分配相關(guān)責(zé)任榴都,將用戶(hù)界面的責(zé)任集中于一處。
  • 限制依賴(lài)漠其,以最小化改變用戶(hù)界面時(shí)的連鎖反應(yīng)嘴高。
  • 推遲綁定,讓你在做出關(guān)于用戶(hù)界面的關(guān)鍵決定時(shí)不用重新編程和屎。

推遲綁定在這里非常有幫助阳惹,因?yàn)槟憧梢灶A(yù)料到你的產(chǎn)品的用戶(hù)界面將會(huì)在測(cè)試甚至在其進(jìn)入市場(chǎng)之后面臨修改的壓力。

用戶(hù)界面生成工具與以下策略是一致的眶俩;大部分產(chǎn)生一個(gè)單一的模塊,該模塊有一個(gè)抽象的接口以連接軟件的其余部分快鱼。大部分提供在編譯后仍能改變用戶(hù)界面的能力颠印。你可以根據(jù)生成模塊的依賴(lài)約束來(lái)完成你的工作部分,然后你需要決定采用不同的工具抹竹。

不同的用戶(hù)界面分離模式的工作發(fā)生在1980年和1990年线罕。隨著網(wǎng)絡(luò)和模型—視圖-控制器這種現(xiàn)代化反映網(wǎng)絡(luò)接口的模式的出現(xiàn),MVC已經(jīng)成為了占主導(dǎo)地位的分離模式∏耘校現(xiàn)在 MVC 模式被內(nèi)置于多種不同的框架中钞楼。(詳見(jiàn)第 14 章中對(duì) MVC 的討論。)MVC 讓提供多種數(shù)據(jù)視圖袄琳,支持用戶(hù)主動(dòng)更加簡(jiǎn)單询件,像我們下面要討論的那樣。

許多時(shí)候唆樊,質(zhì)量屬性是相互矛盾的宛琅。易用性和可修改性,恰恰相反逗旁,總是相得益彰嘿辟,因?yàn)樽屢粋€(gè)系統(tǒng)更加易用的方法是讓它容易修改。無(wú)論如何片效,也并不總是這樣红伦。在許多系統(tǒng)中,業(yè)務(wù)規(guī)則驅(qū)動(dòng)用戶(hù)界面——比如淀衣,指定如何驗(yàn)證輸入昙读。為了實(shí)現(xiàn)這一驗(yàn)證,用戶(hù)界面可能需要調(diào)用服務(wù)器(對(duì)性能可能造成負(fù)面影響)膨桥。為了消除這一負(fù)面影響箕戳,架構(gòu)師可能選擇在客戶(hù)端和服務(wù)端復(fù)制這些規(guī)則某残,這就會(huì)給升級(jí)帶來(lái)困難。哎呀陵吸,架構(gòu)師的生活從來(lái)都不容易玻墅!


易用性和可修改性的實(shí)現(xiàn)之間是有聯(lián)系的。用戶(hù)界面設(shè)計(jì)過(guò)程由生成用戶(hù)界面和之后的測(cè)試用戶(hù)界面設(shè)計(jì)組成壮虫。修正設(shè)計(jì)中的不足澳厢,并反復(fù)重復(fù)上述過(guò)程。如果用戶(hù)界面已經(jīng)被構(gòu)建成了系統(tǒng)的一部分囚似,系統(tǒng)必須被修改以反映最新的設(shè)計(jì)剩拢。這就是易用性與可修改性之間的連接。這種連接導(dǎo)致了支持用戶(hù)界面設(shè)計(jì)的標(biāo)準(zhǔn)模式(比如側(cè)邊欄)饶唤。

支持用戶(hù)主動(dòng)

當(dāng)系統(tǒng)正在被執(zhí)行時(shí)徐伐,通過(guò)給用戶(hù)系統(tǒng)正在做什么的反饋和通過(guò)允許用戶(hù)做出合適響應(yīng)能增強(qiáng)易用性。比如募狂,下面要描述的策略:取消办素,撤銷(xiāo),暫停/繼續(xù)祸穷,以及聚合——支持用戶(hù)改正錯(cuò)誤或者變得更高效性穿。

架構(gòu)師通過(guò)列舉和分配系統(tǒng)責(zé)任來(lái)響應(yīng)用戶(hù)命令來(lái)設(shè)計(jì)針對(duì)用戶(hù)主動(dòng)的響應(yīng)。以下是一些用戶(hù)主動(dòng)的常見(jiàn)示例:

  • 取消雷滚。當(dāng)用戶(hù)發(fā)出取消命令時(shí)需曾,系統(tǒng)必須服從(因此,無(wú)論是什么活動(dòng)被取消祈远,都需要一個(gè)恒定的不被屏蔽的監(jiān)聽(tīng)器)呆万;被取消的指令必須終止;任何被取消的指令正在使用的資源在執(zhí)行取消后必須被釋放车份;與被取消指令合作的組建必須被通知桑嘶,以便它們采取合適的操作。
  • 撤銷(xiāo)躬充。要支持撤銷(xiāo)的功能逃顶,系統(tǒng)必須擁有足夠數(shù)量的關(guān)于系統(tǒng)狀態(tài)的信息,使一個(gè)早期的狀態(tài)能夠按照用戶(hù)的要求被存儲(chǔ)充甚。這樣的一條紀(jì)錄大概以“快照”的形式存放——舉個(gè)例子以政,檢查點(diǎn)——或者說(shuō)一系列可逆操作。不是所有的操作都很容易逆轉(zhuǎn):比如說(shuō)伴找,將一個(gè)文件中所有出現(xiàn)的字母“a”全部換成字母“b”不能被將所有的“b”替換成“a”逆轉(zhuǎn)盈蛮,因?yàn)橐恍癰”可能是在原始改變之前就存在的。在這種情況下系統(tǒng)必須保存更加詳細(xì)的修改紀(jì)錄技矮。當(dāng)然抖誉,一些操作殊轴,比如響鈴,是不能被撤銷(xiāo)的袒炉。
  • 暫停/繼續(xù)旁理。當(dāng)用戶(hù)已經(jīng)開(kāi)始了一個(gè)長(zhǎng)時(shí)間運(yùn)行的操作——比如說(shuō),從某臺(tái)服務(wù)器上下載一個(gè)很大的文件或者一系列文件——提供暫停和繼續(xù)操作通常是有用的我磁。高效地暫停一個(gè)長(zhǎng)時(shí)間運(yùn)行的操作要求暫時(shí)性釋放資源的能力孽文,以便這些資源能夠重新分配給其他的任務(wù)。
  • 聚合夺艰。當(dāng)一個(gè)用戶(hù)在進(jìn)行有代表性的操作時(shí)芋哭,或者以同種方式影響很大數(shù)量的對(duì)象的操作,提供將低級(jí)對(duì)象聚合成單個(gè)群組的能力是非常有用的郁副,這樣减牺,操作就能被應(yīng)用到群組,將用戶(hù)從重復(fù)操作的苦活兒(以及潛在的錯(cuò)誤)中解救出來(lái)存谎。比如拔疚,將一張幻燈片的所有對(duì)象聚合起來(lái),將文本字體改成14號(hào)愕贡。

支持系統(tǒng)主動(dòng)

當(dāng)系統(tǒng)占主動(dòng)時(shí),它一定依賴(lài)于用戶(hù)的一個(gè)模型巷屿,用戶(hù)正在進(jìn)行的任務(wù)或者系統(tǒng)狀態(tài)本身固以。每個(gè)模型要求不同種類(lèi)的輸入以完成其主動(dòng)性。支持系統(tǒng)主動(dòng)的策略是識(shí)別系統(tǒng)使用的模型以預(yù)測(cè)其自身行為或者用戶(hù)意圖嘱巾。封裝這些信息可以讓系統(tǒng)更加容易裁減或修改憨琳。在開(kāi)發(fā)過(guò)程中的裁減和修改可以基于過(guò)去用戶(hù)的行為動(dòng)態(tài)地進(jìn)行或者離線進(jìn)行。以下是一些策略:

  • 維持任務(wù)模型旬昭。任務(wù)模型被用于決定背景篙螟,于是系統(tǒng)能夠知道用戶(hù)正在嘗試什么,進(jìn)而提供幫助问拘。比如遍略,知道句子以大寫(xiě)字母開(kāi)頭將允許一個(gè)應(yīng)用在該位置將小寫(xiě)的字母糾正。
  • 維持用戶(hù)模型骤坐。這個(gè)模型明確地代表了用戶(hù)對(duì)系統(tǒng)的了解绪杏,在預(yù)期時(shí)間內(nèi)的用戶(hù)行為,和其他特別方面的用戶(hù)或某一類(lèi)用戶(hù)纽绍。比如蕾久,維持一個(gè)用戶(hù)模型,以允許系統(tǒng)控制鼠標(biāo)選擇的策略拌夏,這樣當(dāng)需要滾動(dòng)的時(shí)候僧著,不是所有的文件都會(huì)被選中履因。或者一個(gè)模型能夠控制自動(dòng)提供給用戶(hù)幫助和建議的數(shù)量盹愚。這個(gè)策略的一個(gè)特例是總能在用戶(hù)界面中找到用戶(hù)自定義栅迄,在該處用戶(hù)可以明確地修改系統(tǒng)的用戶(hù)模型。
  • 維持系統(tǒng)模型杯拐。在這里霞篡,系統(tǒng)維持著自己明確的模型。這被用于確定期待的系統(tǒng)動(dòng)作端逼,從而能給用戶(hù)合適的反饋朗兵。系統(tǒng)模式的通常表現(xiàn)形式是預(yù)測(cè)完成當(dāng)前任務(wù)所需時(shí)間的進(jìn)度條。

圖11.3展示了實(shí)現(xiàn)易用性策略的摘要

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末顶滩,一起剝皮案震驚了整個(gè)濱河市余掖,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌礁鲁,老刑警劉巖盐欺,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異仅醇,居然都是意外死亡冗美,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)析二,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)粉洼,“玉大人,你說(shuō)我怎么就攤上這事叶摄∈羧停” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蛤吓,是天一觀的道長(zhǎng)宵喂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)会傲,這世上最難降的妖魔是什么锅棕? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮淌山,結(jié)果婚禮上哲戚,老公的妹妹穿的比我還像新娘。我一直安慰自己艾岂,他們只是感情好顺少,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般脆炎。 火紅的嫁衣襯著肌膚如雪梅猿。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,816評(píng)論 1 290
  • 那天秒裕,我揣著相機(jī)與錄音袱蚓,去河邊找鬼。 笑死几蜻,一個(gè)胖子當(dāng)著我的面吹牛喇潘,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播梭稚,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼颖低,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了弧烤?” 一聲冷哼從身側(cè)響起忱屑,我...
    開(kāi)封第一講書(shū)人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎暇昂,沒(méi)想到半個(gè)月后莺戒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡急波,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年从铲,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澄暮。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡名段,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赏寇,到底是詐尸還是另有隱情吉嫩,我是刑警寧澤价认,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布嗅定,位于F島的核電站,受9級(jí)特大地震影響用踩,放射性物質(zhì)發(fā)生泄漏渠退。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一脐彩、第九天 我趴在偏房一處隱蔽的房頂上張望碎乃。 院中可真熱鬧,春花似錦惠奸、人聲如沸梅誓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)梗掰。三九已至嵌言,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間及穗,已是汗流浹背摧茴。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留埂陆,地道東北人苛白。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像焚虱,于是被迫代替她去往敵國(guó)和親购裙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,773評(píng)論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)著摔、插件缓窜、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,064評(píng)論 4 62
  • 記于11-18 很久沒(méi)有提筆了禾锤,畢業(yè)之后總感覺(jué)時(shí)間過(guò)得特別快,站在11月的尾巴上摹察,仿佛已經(jīng)看到了2017年的尾巴恩掷,...
    白羊0820閱讀 415評(píng)論 0 0
  • 第四節(jié):番茄鐘 學(xué)會(huì)番茄鐘工作法,吃100個(gè)以上的番茄鐘供嚎。 準(zhǔn)備一個(gè)番茄鐘黄娘, 紙筆,打叉代表完成克滴。 一次一個(gè)任務(wù)逼争,...
    華春秋閱讀 896評(píng)論 1 1