1、軟體工程第六版第十二章 實行使用者介面設計1感谢你的观看2019年8月19使用者介面設計o 一棟房子的藍圖(它的架構設計)如果沒有呈現出門、窗和跟水、電及電話(還沒提到有線電視)等公共設施的連接時,它即為不完整的。o 電腦軟體的門、窗和公共設施的連接組成一個系統的介面設計。o 介面設計聚焦於三個所關心的區域:n軟體元件之間介面的設計n在軟體和其他的非人類資訊生產者與消費者之間(即其他的外部實體)的介面設計n人類(使用者)和電腦之間的介面設計。o 本章中我們將專門聚焦於第三種介面設計的範疇n使用者介面設計(user interface design)。2感谢你的观看2019年8月19使用者介面設
2、計的重要性o Ben Shneiderman在他經典的使用者介面設計書籍序文中說道:n 挫折與焦慮是許多電腦化資訊系統使用者每日生活的一部份。n 他們努力學習協助他們執行工作的命令語言(command language)或選單點選系統。n 某些人會遭遇嚴重的電腦衝擊、對終端機的驚恐或網路經神官能症,使得他們盡量避免使用電腦化的系統。o Shneiderman所提到的問題都是真實的。3感谢你的观看2019年8月19快速瀏覽o 它是什麼?n使用者介面設計產生人類與電腦之間有效的通訊媒介。n根據一組介面設計原則,設計確認介面物件與動作,然後再創造形成使用者介面雛型的基礎螢幕配置。o 誰完成它?n軟體
3、工程師藉由利用廣泛被接受的設計原則所應用的反覆流程設計使用者介面。o 它為何重要? n假如軟體難以使用、假如它迫使你出現錯誤、或者假如它使你完成目標的努力感到挫折,則不管它所展現的計算能力或功能多麼的好,你都不會喜歡它。n介面必須是正確的,因為它會形成使用者對軟體的感覺。4感谢你的观看2019年8月19快速瀏覽o 步驟為何?n 使用者介面設計由確認使用者、任務和環境的需求開始。n 一旦使用者任務被確認,使用者情境將被產生出來,以分析定義一組介面物件與動作。o 這些形成創造螢幕配置的基礎,它描述圖形化的設計與圖示(icon)的安置、描繪螢幕文字的定義、視窗的規格與標題和主要與次要選單(menu)
4、項目的規格。n 使用工具設計出雛型與設計模型最終地實作,並且其結果以品質做為評估。5感谢你的观看2019年8月19快速瀏覽o 工作產品為何?n 產生使用者情境,並創造出螢幕的配置。n 介面的雛型以反覆的形式進行發展與修改。o 我如何確定我所做的是正確的?n 雛型是測試所主導的,使用者與測試主導所獲得的回饋做為雛型下一個反覆的修正使用。6感谢你的观看2019年8月19使用者介面設計的研究o 圖形使用者介面、視窗、圖示和以滑鼠點選已經消除了大部分可怕的介面問題則是一件事實。n但在視窗世界中,我們全部都會遇到很難學的、很難用的、很困惑的、違反直覺的和不可原諒的使用者介面,它在許多情況下是令人沮喪的。
5、n有些人花費時間與能量在建立這些介面,但建立者並不是故意產生出這些問題的。o 如同處理技術的議題一樣,使用者介面設計要做許多關於人的研究。n誰是使用者?n使用者如何學習與一部以電腦為基礎的新系統互動?n使用者如何解釋系統所產生的訊息?n使用者對系統的期待是什麼?7感谢你的观看2019年8月1912.1 黃金規則o Theo Mandel 在他所寫的介面設計專書中,產生出三項黃金規則:n 讓使用者處於控制中。n 減少使用者的記憶負荷。n 使介面一致化。o 這些黃金規則實際上形成一組使用者介面設計原則的基礎,以指導此一重要的軟體設計動作。8感谢你的观看2019年8月1912.1.1 讓使用者處於控
6、制中o 在一個重要的新資訊系統的需求蒐集會議期間,某位重要的使用者被詢問到關於視窗導向圖形化介面的特性。n 使用者嚴肅地說:我真正想要的是一部可以讀取我心思的系統。在我想要執行它以前,它就知道我想要執行的事,讓它對我變得非常容易地執行。這就是全部,也就僅是這樣而已。9感谢你的观看2019年8月19使用者處於控制中o 第一反應是微笑著搖搖頭,但是暫停一下。n對使用者的請求是絕對沒有任何問題的。n她需要一個對她的需要產生反應的系統,並且協助她的工作得以進行。n她想要控制電腦,而不想要讓電腦控制她。o 由設計者所強加於大多數介面上的侷限與限制意圖想要簡化互動的模式。n它是為了誰呢?o 在許多情況中,
7、設計者可能會引入侷限與限制以簡化介面的實作。n結果可能是一個很容易建立的介面,但使用上卻很蹩腳。10感谢你的观看2019年8月19Mandel的設計原則o Mandel定義一些設計原則以讓使用者維持控制:n 用不勉強使用者陷入不必要或不想要動作的方法定義互動的模式。o 互動模式是介面目前的狀態。例如,n 如果文件處理器選單中拼字檢查(spell check)被選取時,軟體會移往拼字檢查的模式。n 如使用者想要順著這個方式進行少許的文字編輯工作,則沒有理由要勉強使用者駐留在拼字檢查的模式中。n 使用者應該能夠以最簡單的方式進入與退出此模式。11感谢你的观看2019年8月19Mandel的設計原則
8、n提供有彈性的互動。o 因為不同的使用者有不同互動方式的偏好,所以應該提供選擇。例如,n軟體可能讓使用者經由鍵盤命令、滑鼠移動、數位筆(digitizer pen)或語音辨識命令與使用者互動。n但每一項動作並非順應每一個互動的機制。n例如,考慮使用鍵盤命令(或語音輸入)畫出一張複雜圖形的困難性。n允許使用者互動可被中斷與可復原的(undoable)。o 即使涉及一系列的動作,使用者應該能夠中斷此序列而執行其他的動作(而不遺失已執行的作業)。o 使用者也應該能夠復原(undo)任何的動作。12感谢你的观看2019年8月19Mandel的設計原則n流線互動(streamline interacti
9、on)如同技巧層級提升一樣,允許互動可被客製化。o 使用者時常會想找出他們重複地執行互動的相同序列。n於是設計一個巨集機制,使得進階使用者能客製化促進互動的介面是值得的。n對臨時的使用者,將技術隱藏於內部。o 使用者介面應該帶領使用者進入應用程式的虛擬世界內。o 使用者不應該察覺到作業系統、檔案管理功能或其他的晦澀難解的計算技術。o 介面永遠不需要讓使用者與機器的內部層級進行互動。n例如,使用者不應該從應用軟體內鍵入作業系統的指令。13感谢你的观看2019年8月19Mandel的設計原則n 直接與螢幕上所出現的物件進行互動的設計。o 當使用者操縱執行任務所必需要的物件時,若物件所發生的行為如同
10、一個實際的東西一樣,則他就能感受到控制的感覺。n 例如,一個允許使用者伸縮物件(按比例擴展其大小)的應用程式介面則是一個直接操作的實行。我總是希望我的電腦會和我的電話一樣地容易使用。我的希望已經實現。我不再知道該如何使用我的電話。Bjarne Stronstrup(C+的原創者)14感谢你的观看2019年8月1912.1.2 減少使用者的記憶負荷o 使用者必須記憶得越多,系統將會有更多傾向錯誤的互動。n 設計良好的使用者介面不會增加使用者記憶的負荷。n 無論何時系統應該盡可能記得用貼切的資訊,並以互動的情境協助使用者回想。15感谢你的观看2019年8月19減少使用者記憶負荷的介面設計原則o M
11、andel定義讓一個能夠減少使用者記憶負荷的介面設計原則:n 減少對短期記憶的需求。o 當使用者涉及複雜的任務時,短期記憶的需求是很顯著的。o 介面應該設計成減少回想過去的動作與結果的需求。n 可藉由提供視覺上的提示以讓使用者辨識出過去的動作來完成,而不要去回想它們。16感谢你的观看2019年8月19減少使用者記憶負荷的介面設計原則n 建立有意義的內定值(defaults)。o 最初設定值的集合對平均的使用者應該是有意義的,但一位使用者應該能夠指明其個別的偏愛。然而,應該具有一個重置(reset)的選項,以重新定義原始的內定值。n 定義直覺式的捷徑。o 當使用助憶符號(mnemonics)完成
12、某個系統的功能時(例如,以alt-P鍵啟動列印功能),助憶符號應該用容易記憶的方法與動作綁在一起(例如要喚回第一封信的任務)。17感谢你的观看2019年8月19減少使用者記憶負荷的介面設計原則n 介面的視覺化配置應該以真實世界的象徵(metaphor)為基礎。o 例如,一個帳單付款系統應該使用一本支票簿與支票登記簿的象徵方式指導使用者完成帳單付款流程。n 這讓使用者能夠仰賴易於瞭解的視覺提示,而不是記住某個晦澀難解的互動順序。18感谢你的观看2019年8月19減少使用者記憶負荷的介面設計原則n 以漸進的形式揭露訊息。o 介面應該以階層的方式組織。n 有關於任務、物件或某些行為的資訊首先應該以高
13、度的抽象化層級呈現。o 當使用者以滑鼠選取指出其有興趣的地方時,再呈現出更多的細節。n 一個許多文字處理應用程式的共同例子是劃底線的能力。此功能本身是文字型態(text style)選單下許多功能其中的一項。每個劃底線的能力並不表列出來。使用者必須要選取劃底線,接著所有劃底線的選項(例如,單底線、雙底線、虛底線)會出現。19感谢你的观看2019年8月1912.1.3 使介面一致化o 介面該以一致性的形式呈現與取得資訊。這意含著:n 所有視覺化的資訊依據整個螢幕顯示所維護的設計標準來組織。n 輸入機制侷限於一組一致使用於整個應用程式的有限的集合。n 一致性地定義與實作從任務到任務的操縱機制。20
14、感谢你的观看2019年8月19輔助介面一致性的設計原則o Mandel 定義一組設計原則以輔助介面的一致性:n 讓使用者將目前的任務置於有意義的環境中。o 許多介面實作數十個複雜的互動層級畫面。n 提供使用者隨時知道目前工作環境的指示(例如,視窗名稱、圖形化的圖示、一致性的色彩編碼)。o 使用者應該能夠決定他來自何處,且轉移至一個新的任務有什麼可替代方案存在。21感谢你的观看2019年8月19輔助介面一致性的設計原則n 維持橫跨一系列應用程式的一致性。o 一組應用程式(或產品)應該全部以相同的設計規則實行,使所有的互動得以維持一致性。n 如果過去的互動式模型已經引起使用者的期望,除非有一個無法
15、反駁的理由要這樣做,否則可以不做變更。o 一但某個特別的互動順序已經變成事實上的標準(例如,使用alt-S做檔案儲存),使用者會在每個應用程式中期待此一動作。o 一個改變(舉例來說,使用alt-S啟動計數)將會引起紊亂。22感谢你的观看2019年8月19可使用性(Usability)o Larry Constantine 提出一個與此主題有重要關係的問題:使用者到底想要什麼?,他這樣回答:n 使用者真正想要的是好的工具。o 所有的軟體系統,從作業系統和語言到資料登錄和決策支援應用程式,全部都只是工具。n 終端使用者想要從我們為他們所設計的工具中,得到與我們使用工具一樣的期望。o 他們想要容易學
16、習的系統,並可協助他們執行工作。o 他們不要會使他們的工作減緩的軟體、不會陷害或困惑他們,那的確較為容易犯錯,並且比較難以完成工作。23感谢你的观看2019年8月19可使用性的定義o Constantine主張可使用性並不是源自於美學、最新穎的互動機制或建立智慧的介面。n 當介面的架構符合使用它的人的需要時就會發生。o 可使用性的正式定義是有點不實際的。o Donahue與他的同事以下列的方法定義:n 可使用性是衡量電腦系統在促進學習上有多好;協助學習者記得他們已經學得的;減少可能的錯誤;使他們能夠具有效率,並讓他們滿意這個系統。24感谢你的观看2019年8月19可使用性評估o 唯一用來決定可
17、使用性是否存於你所建構系統中的方法是導入可使用性評估或測試。o 觀察使用者與系統的互動並回答下列的問題:n 當沒有持續不斷的說明或指示時,系統是否是可使用嗎?n 互動的規則協助有知識的使用者能有效率地工作嗎?n 當使用者變得更為有知識時,互動的機制會變得更為彈性嗎?n 系統已經調整到它所被使用的實際與社會的環境中嗎?25感谢你的观看2019年8月19可使用性評估n 使用者會憂慮系統的狀態嗎?使用者隨時都知道他在何處嗎?n 介面是以合乎邏輯與一致的方法所建構嗎?n 橫跨整個介面的互動機制、圖示和程序都是一致的嗎?n 互動能預先考慮到錯誤並協助使用者改正它嗎?n 介面對所造成的錯誤是可容忍的嗎?n
18、 互動是否夠簡單?o 如果這些疑問的每一個都被回答為是,則它很可能已經達成可使用性。26感谢你的观看2019年8月1912.2 使用者介面分析與設計o 分析與設計使用者介面的整體流程是由產生系統功能不同的模型所開始(如同從外部感知)。n 必要達成系統功能中以人(human-)及以電腦為導向的任務被劃出輪廓;n 應用所有介面設計的設計議題被考慮;n 使用工具設計雛型與最終地實作設計模型;n 並由終端使用者對結果進行品質的評估。27感谢你的观看2019年8月1912.2.1 介面分析與設計模型o 當要進行一個使用者介面的分析與設計時,由四種不同的模型開始運作。n人因工程師(human engine
19、er)(或軟體工程師)建立一個使用者模型(user model)。n軟體工程師產生一個設計模型(design model)。n終端使用者所發展一個經常被稱為使用者的心智模型(mental model)或系統覺知(system perception)的心智影像。n系統的實作者所產生的一個實作模型(implementation model)。o 這些模型的每一個都有著顯著的差異。n介面設計者的角色是調解這些差異,而獲得一致的介面表示。28感谢你的观看2019年8月19建立使用者模型o 使用者模型建立系統終端使用者的輪廓。n 要建立一個有效的使用者介面,所有的設計應該由瞭解預期的使用者的開始,包括他
20、們的年齡、性別、身體上的才能、教育、文化的或種族上的背景、動機、目標和個性。29感谢你的观看2019年8月19使用者模型的分類o 使用者可被分類成為:n 初學者(novices) o 通常沒有系統語法上的(syntactic)知識和少許應用程式或電腦使用的語意(semantic)知識。n 有知識、間歇的使用者 o 具有合理的應用程式語意知識,但必須要使用介面語法資訊的記憶力相對地很低。n 有知識、頻繁的使用者o 具有良好語意與語法的知識,時常導致power-user症候群(syndrome),即找尋捷徑與簡化互動模式的個人。30感谢你的观看2019年8月19使用者的心智模型o 使用者的心智模型
21、(mental model)(系統感知能力)是終端使用者記在他們頭腦中的系統影像。n 例如,如果某個頁面配置系統的使用者被要求描述它的操作,系統的感知(perception)將指導回應。o 描述的準確度將依賴使用者的基本資料(例如,初學者充其量將提供一個概略的回應),和在應用程式領域中對軟體整體的熟悉度。o 一位完全瞭解頁面配置,但只在特定系統上操作過一次的使用者,實際上已經能夠比花費數星期嘗試學習系統的初學者,對它的功能提供更為完整的描述。31感谢你的观看2019年8月19實作模型o 實作模型結合以電腦為基礎系統(介面的外觀與感覺(look and feel)的外觀表現形式,聯繫所有支援的資
22、訊(書、手冊、錄影帶、說明檔)以描述系統的語法與語意。n當實作模型與使用者的心智模型相符合時,使用者通常對軟體會感到非常舒適,並且可以有效地使用它。o 為完成這個模型的結合,設計模型必須一直發展以調適包含在使用者模型中的資訊,並且實作模型必須要精確地反映有關介面語法與語意的有關資訊。32感谢你的观看2019年8月19使用者介面設計的關鍵元素o 本節所描述的模型是使用者正在做的,或認為他正在做的,或別人認為當他使用互動式系統時他所應該做的事情的抽象化。n 這些模型能使介面設計者滿足使用者介面設計最重要原則的一項關鍵元素:o 認識使用者,瞭解任務。33感谢你的观看2019年8月1912.2.2 流
23、程o 對於使用者介面的分析與設計流程是反覆的,並且可以使用螺旋形模型表示。o 參考圖12.1,使用者介面分析與設計流程含括四種顯著的框架活動:n 使用者、任務和環境分析與塑模。n 介面設計。n 介面建構(實作)。n 介面確認。34感谢你的观看2019年8月19圖12.1 使用者介面設計流程 35感谢你的观看2019年8月19介面分析的聚焦o 介面分析聚焦於與系統互動的使用者基本資料(profile)。n 技巧的層級、商務的理解,和對新系統一般的接受能力(receptiveness)都會被記錄;n 定義不同的使用者種類。n 對於每個使用者類型,需求被誘引出來。o 軟體工程師嘗試瞭解每一種使用者類
24、型對系統的覺知(第12.2.1節)36感谢你的观看2019年8月19使用者環境分析o一旦一般的需求被定義後,一個更為詳細的任務分析被導入。n使用者執行以完成系統目標的那些任務則被確認、描述與細化(超過數回合反覆螺旋的次數)。o使用者環境的分析聚焦在實際的工作環境。在此間的問題則是:n介面將實際地設置在那裡?n使用者將是坐著、站著,或執行其他與介面無關的任務?n介面的硬體可以考慮到空間、光線或噪音的侷限?n有受環境因數所主導的特別人為因素(human factors)的考慮嗎?o蒐集做為分析活動一部分的資訊以利用來為介面產生出分析模型。n使用此一模型做為基礎,設計活動於是出現。37感谢你的观看2
25、019年8月19介面設計的建構活動o 介面設計的目的是定義一組介面物件與動作(和它們在螢幕上的呈現),讓使用者用一種符合每個為系統所定義的可使用性目標的方法實行所有定義的任務。o 建構活動通常由產生可評估使用情境的雛型開始。n 當反覆設計的流程繼續時,使用者介面發展工具(請參閱在第12.4節的邊框)或許可利用來完成介面的建構。38感谢你的观看2019年8月19確認的聚焦o 確認聚焦於:n 正確地實作每位使用者任務的介面能力,調適所有任務的差異,並達成所有一般使用者的需求;n 介面容易使用與容易學習的程度;n 做為使用者工作上有用的工具時,他們對介面的接受度。o 沒有需要在第一回合就嘗試指明每個
26、細節(對於分析或設計模型)。n 接下來的回合透過流程細化任務細節、設計資訊和介面的操作性能。39感谢你的观看2019年8月1912.3 介面分析o 所有軟體工程流程模型的重要的信條是:n 在你嘗試設計解決方案之前,最好能先瞭解問題。o 在使用者介面設計的情況,瞭解問題意味著瞭解:n 將經由介面與系統互動的人(終端使用者)。n 終端使用者必須要執行以完成他們工作的任務。n 被呈現做為介面一部分的內容。n 這些任務將被導入的環境。40感谢你的观看2019年8月1912.3.1 使用者分析o 每位使用者有一個心智影像或軟體的系統覺知,它或許與其他使用者所發展出來的心智影像不同。n 使用者的心智影像或
27、許與軟體工程師的設計模型有著極大的不同。o 設計者能讓心智影像與設計模型趨於會合(converge)的唯一方法就是著手瞭解使用者他們自己和這些人將如何使用此一系統。41感谢你的观看2019年8月19使用者分析的資訊來源o 可以使用來自廣泛來源的資訊以完成此目標:n使用者面談(User interviews)o最為直接的方式,面談來自軟體團隊中符合終端使用者的代表,以便更為瞭解他們的需求、動機、工作文化和無數的其他議題。o可由一對一的會議或經由聚焦群組(focus group)所完成。n銷售輸入(Sales input)o銷售人員定期與消費者及使用者見面,並且可以蒐集協助軟體團隊分類使用者,並更
28、為瞭解他們的需求。n行銷輸入(Marketing input)o當提供瞭解每個部門如何以巧妙不同的方式使用軟體時,市場分析在市場部門的定義中可是無價的。n支援輸入(Support input)o支援人員每天都與使用者交談,讓他們成為什麼可行與什麼不可行、使用者喜歡什麼和他們討厭什麼、什麼性能會產生問題和什麼性能容易使用等資訊最可能的來源。42感谢你的观看2019年8月19協助介面設計者瞭解系統使用者的問題o 下列的一組問題將協助介面設計者更為瞭解系統使用者:n 使用者是受過訓的專業人士、技術人員、職員或製造工人?n 使用者平均受正式教育的程度為何?n 使用者有從書面教材學習的能力,或者他們已經
29、表達了渴望在教室中訓練?n 使用者是打字專家或鍵盤恐懼者(phobic)?n 使用者社群的年齡範圍是什麼?n 同一個性別中使用者是具有優勢的代表性?43感谢你的观看2019年8月19協助介面設計者瞭解系統使用者的問題n 使用者對他們所執行的工作如何被補償?n 使用者在正常的辦公時間內工作,或他們工作到工作做完為止?n 軟體是一位使用者執行工作所不可或缺的一部分,或者只是有時候使用而已?n 使用者之間主要的口語(spoken language)是什麼?n 如果一位使用者使用系統而犯錯的結果是什麼?n 使用者是系統所針對主題內容的專家嗎?n 使用者想要知道隱藏在介面之後的技術嗎?44感谢你的观看2
30、019年8月1912.3.2 任務分析與塑模o 任務分析的目的是回答下列的問題:n 使用者將在特定的環境中執行什麼工作?n 當使用者工作時,將執行什麼任務與子任務?n 當工作執行時,使用者將操縱什麼特定問題領域的物件?n 工作任務的順序是什麼 - 工作流向?n 任務的階層是什麼?45感谢你的观看2019年8月19分析使用者介面的技術o 軟體工程師必須利用第7章與第8章所討論的分析技術到使用者介面。n 使用案例(Use-cases)n 任務細化(Task elaboration)n 物件細化n 階層的表示法46感谢你的观看2019年8月19使用案例(Use-cases)n 使用案例描述參與者(a
31、ctor)(在使用者介面設計的環境中,參與者經常是一個人)與一個系統互動的方法。n 當使用做為任務分析的一部分時,使用案例被發展以顯示一位終端使用者如何執行某些特定工作的相關任務。n 在大多數的實例中,使用案例是以第一人稱非正式的型態(簡單的段落)所撰寫。47感谢你的观看2019年8月19使用案例的範例o 例如,如果一家小型的軟體公司想要為室內設計師明確地建立一個電腦輔助設計系統。n 為了更為瞭解他們是如何執行他們的工作,要求真正的室內設計師描述特定的設計功能。48感谢你的观看2019年8月19使用案例的範例o 當被問到你如何決定該把家具放在房間內的那一個地方?時,室內設計師寫出以下的非正式使
32、用案例:n我從描繪房間、大小和窗戶與門的位置平面圖開始。o 當進入房間時,我非常重視關於光線的事、關於從窗戶看出去的景色(如果它很美,我會盡量引起對它的注意)、關於無阻檔(unobstructed)牆壁連續的長度、關於通過房間的動線(flow of movement)。o 然後我會看看我的客戶與我已經挑選的家具列表n桌子、椅子、沙發、櫥櫃,特色(accents)列表、燈、地毯、畫、雕刻、植物、小件物品和我所提到我的客戶所想安置的任何欲望。n然後我依平面圖的比例使用樣版畫出我表列的每一個項目。o 我使用鉛筆標示每個項目,因為我常會搬移東西。o 我會考慮一些可供選擇的位置,並決定一個我最喜歡的。o
33、 然後,我畫出房間的演繹(rendering)(一張3D的圖片)給我的客戶以瞭解它的樣子。49感谢你的观看2019年8月19使用案例的範例o 這個使用案例提供給電腦輔助設計系統一個重要工作任務的基本描述。n 經由它,軟體工程師能摘錄出任務、物件和互動的整體流向。n 讓室內設計師滿意的系統附加功能也可以被構想出。n 例如,房間中的每一扇窗戶都可以拍一張向外看的數位相片。o 當房間被演繹時,真實的外部景象可以經由每一扇窗戶呈現。50感谢你的观看2019年8月19任務細化(Task elaboration)n 第9章中討論過逐步的細化(也稱為功能分解或逐步的細化)做為對軟體要完成某些它想要功能所必要
34、處理任務的改進機制。n 介面設計的任務分析使用一種細化的方式,以協助瞭解使用者介面必須調適的人類活動。51感谢你的观看2019年8月19任務分析的應用o 任務分析可以兩種方式應用。n 一種互動式的、以電腦為基礎的系統時常用來取代手動或半自動的活動。o 為瞭解所必須實行以完成活動目標的任務,一位人因工程師(human engineer)必須要瞭解現代人目前所實行的任務(當使用手動的方式時),然後在使用者介面的環境中,將這些映對到相似(但不必然是相同的)的任務組中實作。n 人因工程師可以研究現有以電腦為基礎解決方案的規格,並獲得一組可以顧慮到使用者模型、設計模型和系統覺知(perception)的
35、使用者任務。52感谢你的观看2019年8月19任務的定義與分類o 不論對任務分析的整個方式,人因工程師首先必須定義與分類任務。o 逐步(stepwise)細化的方式。n 例如,假設一家小型的軟體公司想要為室內設計師明確地建構一個電腦輔助設計系統。o 藉由觀察工作中的室內設計師,工程師注意到室內設計所組成的一些主要活動:家具陳設(注意先前所討論的使用案例)、織品與材質的挑選、牆壁與窗戶頂蓋的挑選、呈現(對客戶)、成本和採購。53感谢你的观看2019年8月19主要任務的細化o 主要任務的每一項都可細化成子任務。n例如,使用包含於使用案例的資訊,家具陳設可以改進成為以下的任務:(1)基於房間的大小畫
36、出平面圖;(2)在適當的位置放置窗與門;(3a)使用家具樣版在平面圖上畫出依比例的家具外形;(3b)使用特色物(accent)樣版在平面圖上畫出依比例的特色物。(4)挪動家具的外形與特色物的外形以得到最好的位置;(5)標示所有的家具與特色物的外形;(6)畫出容積範圍以顯示位置;(7)為客戶畫出透視的演繹景象。54感谢你的观看2019年8月19主要任務細化的說明o 子任務1-7的每一項都能進一步的細化。o 子任務1-6將可藉由操縱資訊和實行使用者介面中的動作執行。o 子任務7可在軟體中自動地執行,並且造成少許的使用者互動。n 此介面設計的模型應該用與使用者模型(典型的室內設計師的樣子)與系統覺知
37、(室內設計師對自動化系統期待)相一致的方法調適這些任務的每一個。55感谢你的观看2019年8月19物件細化o 並非聚焦在一位使用者所必須實行的任務上,軟體工程師檢查使用案例,和其他獲自使用者和摘錄自室內設計師所使用實體物件的資訊。o 這些物件可分類而成為類別。n每個類別的屬性被定義,並且應用到每個物件以提供設計者操作列表的動作會被評估。n例如,家具樣版可轉化成為一個可能具有包括size、shape、location和其他屬性而稱為Furniture的類別。o 室內設計師將從Furniture類別中挑選(select)物件、將它移動(move)到平面圖上的一個位置(此環境中的另一個物件),畫(d
38、raw)出家具外形等。o 挑選、移動和畫的任務都是操作。o 使用者介面分析模型可能不提供每個操作逐字的實作。然而,當設計被細化時,每個操作的細節則被定義。56感谢你的观看2019年8月19工作流向分析o 當每個人都扮演著不同的使用者角色,並利用一個使用者介面時,有時候需要超越任務分析與物件細化,而應用工作流向分析。o 這個技術可讓軟體工程師瞭解當許多人(與角色)參與時,工作流程是如何完成的。57感谢你的观看2019年8月19工作流向分析範例o 考慮一家想要完全自動化開藥方(prescribing)和遞送處方(prescription)藥品流程的公司。n 整個的流程將圍繞在Web-based應用
39、程式上思考,它可由醫師(physicians)(或他們的助理)、藥劑師和病人存取的。n 工作流向可以有效地以UML泳道圖(活動圖的一種變化)表示。58感谢你的观看2019年8月19工作流向分析範例o 考慮工作流程的一小部分:n 當病人要求再裝填(refill)時,此情形於是發生。n 圖12.2泳道圖指出上述所提及三個角色中每一個的任務與決定。n 此資訊可能經由面談或每位參與者所撰寫的使用案例而誘引出。59感谢你的观看2019年8月19圖12.2 處方重裝填功能的泳道圖 60感谢你的观看2019年8月19關鍵介面特性的辨認o 事件的流向(如圖顯示)讓介面設計者辨認出三種關鍵的介面特性:n 每位使
40、用者經由介面實作不同的任務;o 為病人所設計介面的外觀與感覺(look and feel)將不同於藥劑師或醫師所定義的。n 為藥劑師與醫師設計的介面必須要能適應從次要資訊來源(例如,為藥劑師存取存貨,並為醫師存取有關於可替代藥物的資訊)的資訊存取與顯示。n 在泳道圖中所提到的許多活動可以使用任務分析及/或物件細化o 例如,裝填處方(fills prescription)可能意味著以郵購(mail-order)遞送、拜訪藥房或拜訪一間特別的藥品配銷中心而再進一步的細化。61感谢你的观看2019年8月19階層的表示法o 當介面分析後細化的流程於是發生。o 一旦工作流向建立後,任務階層可為每個使用者
41、型態而定義。o 此階層獲自於為使用者確認每一項任務的逐步式細化。62感谢你的观看2019年8月19任務階層的表示範例o 例如,考慮使用者任務要求一個處方重裝填。以下的任務階層被發展出來:n要求一個處方重裝填o 提供識別資訊n指明姓名n指明useridn指明PIN與密碼o 指明處方數目o 指明裝填所需要的日期o 完成請求一個裝填處方的任務,三項子任務都被定義。n這些子任務中提供識別資訊的那一個,被進一步細化成為三個附加的子-子任務(sub-subtasks)。63感谢你的观看2019年8月1912.3.3 顯示內容的分析o 現代的應用程式,內容顯示的範圍可以從以字元為基礎的報表(例如試算表)、圖
42、形化的顯示(例如,長條統計圖、3-D模型、一張人的照片)或特定的資訊(例如,聲音或影像檔案)。o 分析模型技術確認由一支應用程式所產生的輸出資料物件。這些資料物件可能是:n由應用程式其他部分的元件(與介面無關的)所產生。n獲取自儲存於資料庫中應用程式可存取的資料。n從系統外部傳送給詢問中的應用程式。64感谢你的观看2019年8月19應回答的內容格式與美學問題o介面分析步驟期間,內容的格式與美學(當由介面顯示時)應加以考慮。這些問題中必須要提出與回答的是:n不同的資料型態被指派在螢幕上一致的地理位置上(例如,相片總是出現在右上的角落)嗎?n使用者可以為內容客製化螢幕的位置嗎?n指派給螢幕上所有的
43、內容適當的識別符號嗎?n如何分割一份很大的報表以便更容易地瞭解?n將蒐集的大量資料直接地移往摘要資訊的機制是有效的嗎?n圖形化的輸出將可依比例適用於所使用顯示裝置的界限中嗎?n如何使用色彩以增強理解?n錯誤訊息與警告將如何呈現給使用者?o當這些(和其他的)問題的每一個都被回答時,內容呈現的需求就被建立完成。65感谢你的观看2019年8月1912.3.4工作環境的分析o Hackos與Redish在討論工作環境分析的重要時,他們說道:n人們不再孤立地執行他們的工作。他們被圍繞著他們的活動所影響,工作場所的實際特性、他們所使用的設備型態和他們與其他人的工作關係。如果你所設計的產品不能適用於環境中,
44、他們使用時將會覺得很困難或感到很沮喪。n在某些應用程式中,以電腦為基礎系統中的使用者介面被置於使用者親和的位置(例如,合宜的亮度、良好的顯示高度、容易取得鍵盤),但是其他的(例如,工廠樓層或飛機駕駛員座艙(cockpit)照明可能會是次佳化的(sub-optimal)、噪音可能是一項要素、鍵盤或滑鼠可能不會是選項、顯示器的安置可能不是太理想。介面設計者可能由於減輕違反使用容易的因素而受到侷限。66感谢你的观看2019年8月19o 除了實際的環境因素外,工作場所的文化也會起作用。系統互動可用一些方法量測嗎(例如,每個交易的時間或交易的準確性)?在輸入提供之前,二人或更多人必須共享資訊嗎?支援將如
45、何提供給系統的使用者?這些與許多相關的問題應該在介面設計著手前先被回答。67感谢你的观看2019年8月1912.4 介面設計步驟o 一旦介面分析完成,終端使用者需要的所有任務(或物件與動作)已經被詳細地確認,並且介面設計的活動著手進行。o 就像所有的軟體工程設計,介面設計是一種反覆的流程。每個使用者介面設計步驟發生相當多次,每次細化與改進的資訊在前述的步驟中被發展。68感谢你的观看2019年8月19組合使用者介面設計模型步驟o 雖然有許多不同的使用者介面設計模型都已被提出,但全部都建議由以下的一些步驟所組合:n使用在介面分析(第12.3節)期間所發展的資訊,定義介面物件與動作(操作)。n定義將
46、造成使用者介面狀態改變的事件(使用者動作)。模型化這些行為。n如同它將真實地呈現給終端使用者看一樣,描述每個介面的狀態。n指出使用者如何從介面所提供的資訊解譯系統的狀態。69感谢你的观看2019年8月19設計者的設計任務o 在某些情況中,介面設計者可以從描繪每個介面狀態(即在不同的環境中使用者介面看起來像什麼)開始,然後往回進行定義物件、動作和其他重要的設計訊息。o 不管設計任務的順序,設計者必須:n 總是遵循著黃金規律。n 塑模將被實作的介面。n 考慮所使用的環境(例如,顯示技術、作業系統、發展工具)的使用方式。70感谢你的观看2019年8月1912.4.1應用介面設計步驟o 介面設計的一個
47、重要步驟是定義介面物件和應用到它們的動作。o 採用剖析使用案例的方法。n 撰寫使用案例的描述。n 名詞(物件)與動詞(動作)被區隔以產生一個物件與動作的列表。o 一旦物件與動作已被定義並反覆地細化後,它們藉由型態而被分類。n 目標、來源和應用程式物件都已確認。71感谢你的观看2019年8月19來源物件與目標物件o 一個來源物件(source object)(例如報表圖示)被拖曳與放置在目標物件(target object)上(例如印表機圖示)。n 此一動作的意涵是產生一份實體報表。72感谢你的观看2019年8月19應用程式物件(application object)o 應用程式物件(appli
48、cation object)表示應用程式特定的資料,此資料做為螢幕互動的一部分,但並不被直接操縱。n 例如,郵件列表是用來儲存郵件的名字。此列表本身可以被分類、合併或清除(以選單為基礎的動作),但它不經由使用者互動的拖曳與置放。73感谢你的观看2019年8月19螢幕配置o 當設計者滿意於所有已經被定義的重要物件與動作(一次設計反覆),螢幕配置(screen layout)則實行。n 螢幕配置是一個互動的流程,它導入圖形設計與圖示安置、描寫螢幕主題的定義、規格與視窗命名和主要與次要選單項目的定義。n 如果一個真實世界的譬喻對於此應用程式是相稱的,此時它是明確具體的,且配置可以採取與此譬喻相配的方
49、式來組織。74感谢你的观看2019年8月19安全家系統的使用情境o 為了提供先前所提及設計步驟的簡短說明,我們為安全家系統考慮一個使用情境(在先前的章節中討論過)。o 介面的初步使用案例(由屋主所寫的)如下:n初步的使用案例:o 我想從任何遠端的位置經由網際網路存取我的安全家系統。o 在我的筆記型電腦(當我在工作或旅行時)上使用瀏覽器軟體,我可決定:n警報系統的狀態;n設定(arm)或解除設定(disarm)系統;n重新組態安全區域;n經由預先設定的攝影機觀看房子裡的不同房間。75感谢你的观看2019年8月19安全家系統的使用情境o 為從遠端的位置存取安全家,我提供一個識別號碼與密碼。n這些定
50、義存取的層級(例如並不是所有的使用者都可以重新組態系統)並提供安全性。n一旦確認,我可以檢查系統的狀態並藉由設定或解除安全家來改變狀態。我可以藉由顯示房子的平面圖、檢視每個安全的感測器、顯示每個目前組態的區域和必要時修改區域來重新組態系統。我可以經由策略上所放置的攝影機觀看房子的內部。我可搖攝(pan)與縮放(zoom)每台攝影機以提供不同的室內景象。76感谢你的观看2019年8月19確認屋主的任務、物件和資料項目o 基於此一使用案例,以下屋主的任務、物件和資料項目被確認出:n 存取安全家系統n 鍵入身分識別(ID)和密碼(password)就可遠端存取n 檢查系統的狀態n 設定或解除安全家系