讀軟體設計的要素01概念

躺柒發表於2024-09-05

1. 概念

1.1. 一個軟體,從執行於手機上的最小程式到大型的企業系統,都是由概念組成的,每個概念都是獨立的功能單元

1.2. 軟體中的可用性問題,經常可以追溯到其底層概念

  • 1.2.1. 概念幫助識別軟體的不可用性

1.3. 概念都是以同樣形式在各種軟體中重複使用的

  • 1.3.1. 將設計分解為最基本的概念帶來了概念重用的機會

1.4. 概念就像是分子

  • 1.4.1. 雖然相互結合在一起,但無論在哪裡出現,它們的屬性和行為都是相似的

1.5. 概念沒有視覺化的形式,它們非常抽象

1.6. 任何關於設計的討論都必須圍繞基本概念,並評估概念採用的行為模式是否符合它的目的

  • 1.6.1. 使用者介面也很重要,但在一定程度上使用者介面只是服務於概念,並將概念呈現給使用者

  • 1.6.2. 如果我們想讓軟體更好用,就必須從概念著手

1.7. 在傳統的設計學科中,設計是從概念這個核心出發的

  • 1.7.1. 當選擇好核心概念後,後續的設計決策也是不可避免的

  • 1.7.2. 設計作為一個整體,需要使作品呈現出一致性,使它看起來像是一個人的作品,哪怕它是由一個大型團隊共同完成的

  • 1.7.3. 使用者能夠感知到作品的完整性和統一性,而設計中潛在的複雜性要讓位於簡單的作品形象

1.8. 概念的複雜性是合理的

  • 1.8.1. Photoshop軟體的圖層和蒙版就屬於複雜的概念

2. 設計的層次

2.1. 物理層次

  • 2.1.1. 設計按鍵、佈局和手勢

  • 2.1.2. 對應使用者的物理和認知能力

  • 2.1.3. 這個層次是關於元件的物理特性的

  • 2.1.3.1. 即使軟體的介面僅僅在一塊觸控式螢幕上執行,也會有物理特性,只不過可能比較有限

  • 2.1.3.2. 我們有限的視覺取樣率導致了感知融合,這使我們很難區分發生在30毫秒以內的事件,所以30幀/秒的畫面就足以讓電影看起來很流暢

  • 2.1.4. 菲茨定律(Fitt's Law)預測了使用者將游標移動到目標點需要的時間,並解釋了為什麼選單欄應該位於螢幕頂部,就像macOS的桌面那樣,而不是像Windows系統桌面那樣位於軟體的視窗內部

  • 2.1.5. 在物理層次進行設計時,必須尊重使用者身體特點的多樣性

2.2. 語言層次

  • 2.2.1. 設計與使用者交流的圖示、提示資訊和術語

  • 2.2.2. 這個層次關注的是為了表達軟體的執行方式而使用的語言,以幫助使用者瀏覽軟體、瞭解可用的操作以及操作將產生的影響、軟體已經發生的行為等

  • 2.2.3. 在語言層次進行設計時,必須尊重使用者在文化和語言上的差異

  • 2.2.3.1. 在歐洲,紅色圓圈的路標表示任何車輛都不允許通行

  • 2.2.3.2. 大多數美國司機卻可能覺得禁行標識應該是紅色的斜槓

  • 2.2.4. 當使用者介面的設計師談論對一致性的需求時,他們通常指的就是語言層次上的語言使用

  • 2.2.4.1. 一致性包括確保在整個使用者介面中,對相同的詞語採用了相同的使用方式

2.3. 主要關注使用者介面中的概念表達

2.4. 概念層次

  • 2.4.1. 將底層行為設計為一系列概念

  • 2.4.2. 它關注設計背後的行為,即關注由使用者和軟體本身執行的操作,以及這些操作對底層結構的影響

  • 2.4.3. 與語言層次相比,概念層次與交流或文化無關

  • 2.4.4. 在程式設計中,抽象(abstraction)和表達(representation)有著重要的區別

  • 2.4.4.1. 抽象是抓住程式設計思想的本質,也可能用於對觀測到的行為進行說明

  • 2.4.4.2. 表達是透過程式碼實現這個本質

3. 心智模型

3.1. 概念設計之源

3.2. 使用者知道軟體中有這些功能,卻仍然無法正確地使用它們

  • 3.2.1. 最常見的原因是,使用者的心智模型不正確,或者說與軟體設計師和程式設計師的心智模型不一致

  • 3.2.2. 使用者對他們使用的裝置往往有著模糊、不完整甚至是不一致的心智模型,這並不令人意外

3.3. 解決這個問題的一個糟糕辦法是培訓使用者

  • 3.3.1. 大多數使用者都會拒絕花時間學習如何使用軟體,他們認為熟能生巧

3.4. 一個更好的解決辦法是設計軟體的概念,使軟體簡單、靈活並能很好地適應使用者的需要

  • 3.4.1. 同時透過使用者介面向使用者傳達這些概念

3.5. 概念本身既是使用者想要的心智模型,也是軟體的規格

3.6. 使用者介面設計師的任務就是設計出類似設計大師唐納德·諾曼所說的“系統形象”

  • 3.6.1. 使用者介面能夠準確地對應概念模型,這樣使用者就能夠獲得與軟體概念一致的心智模型

4. 概念可以表示單個軟體

4.1. 概念是單個軟體、一類軟體以及各類軟體的特徵

4.2. 概念可以讓你比較軟體,注意其必要的功能以及知道如何有效地使用這些功能

4.3. 簡訊和電子郵件的主要區別

  • 4.3.1. 簡訊是用會話概念組織起來的,所有傳送給同一個人的訊息都會顯示在同一個介面中

  • 4.3.1.1. 在一定程度上是由於簡訊的傳送者和接收者僅由電話號碼標識身份

  • 4.3.1.2. 簡訊依賴會話的場景

  • 4.3.2. 電子郵件通常使用“郵箱”​、​“資料夾”或“標籤”等概念來組織

  • 4.3.2.1. 電子郵件使用者往往擁有多個通訊地址,這使得根據地址對電子郵件進行分組並不可靠

  • 4.3.2.2. 電子郵件資訊往往是孤立的

5. 概念可以表示一類軟體

5.1. 概念通常是軟體差異化的因素,關注概念會讓你更關注市場的需求,並揭示軟體成功或失敗的原因

5.2. 概念不僅可以表示單個軟體,而且能表示一類軟體

  • 5.2.1. 文字編輯器

  • 5.2.1.1. Atom、Sublime、BBEdit和Emacs來編輯程式程式碼

  • 5.2.1.2. 文字編輯器的關鍵概念是“行”和“字元”

  • 5.2.1.3. 行概念包含了強大的功能,例如比較和合並,這些對程式設計師管理程式碼來說是必不可少的

  • 5.2.2. 文書處理軟體

  • 5.2.2.1. Word、OpenOffice和WordPerfect來建立各種文件

  • 5.2.2.2. 包括“段落”​,還包括“格式”​,格式概念允許使用者為文字指定排版屬性

  • 5.2.3. 桌面出版軟體

  • 5.2.3.1. Adobe InDesign、QuarkXPress、Scribus和Microsoft Publisher將文件組織成書籍和雜誌的最終版式

  • 5.2.3.2. 包括文書處理軟體的基本概念,但增加了最重要的文字流概念,這一概念允許使用者在文件的不同位置插入連結在一起的文字框

5.3. 概念可以區分軟體

6. 概念可以作為業務定義的核心

6.1. 概念可以幫助從事數字化轉型的公司規劃前進的道路

6.2. 雖然投資核心概念這件事聽起來沒有那麼花哨,但可能更有效

6.3. 只需確定業務的核心概念,就可以幫助公司專注於正在提供的服務,以及將來可能會提供的服務

6.4. 析這些核心概念可以幫助公司發現其中的衝突和機會,從而簡化業務

6.5. 對概念清單進行排序,可以反映每個概念對於客戶和公司的價值,以及實施和維護這些概念的成本,從而為公司的服務戰略提供依據

6.6. 透過整合一系列核心概念,公司可以確保客戶在技術平臺和公司各部門之間擁有一致的體驗,並可以降低因擁有多個概念變體導致的成本

6.7. 為了使利潤最大化,大多數航空公司隱藏了座位的定價策略

  • 6.7.1. 只有專家才知道當前的座位價格與這架飛機上其他座位相比,或者與過去的座位價格相比,是貴了還是便宜了

7. 概念可以確定成本和收益

7.1. 概念能將功能更清晰地劃分為獨立的單元,每個功能單元都有自己的價值和成本

7.2. 概念的複雜性,即開發這個概念的成本,以及使用者混淆的成本

7.3. 概念的新穎性,以及由此帶來的風險

7.4. 根據二八法則,我們知道20%的概念將帶來80%的收益

8. 用概念分離關注點

8.1. 概念提供一種新的粒度,讓軟體設計師可以更有效地分離軟體的功能點、探索概念的重用方式,並更合理地規劃軟體工程工作

8.2. 解決問題最重要的策略是分離關注點,即分開處理關注點的不同方面,即使有些關注點並不是完全獨立的

8.3. 分離關注點是有效的,因為這樣能使設計師一次只專注於一個方面

  • 8.3.1. 無須在設計稽核功能的同時考慮是否可以撤銷邀請

  • 8.3.2. 每個概念都可以設計得很豐富,甚至可以單獨成為一個小系統

  • 8.3.3. 如果設計師認為某個概念的成本與收益不匹配,也可以完全忽略這個概念

9. 概念可以確保設計的安全

9.1. 概念是安全設計的本質,選擇正確的概念並理解其含義至關重要

9.2. 安全是所有軟體都關注的問題

9.3. "安全設計”的流行,反映了人們逐步對軟體安全達成了一種共識,即確保安全最好的方式不是沒有安全漏洞(這幾乎是不可能的)​,而是透過設計保證即使存在安全漏洞,系統仍然是安全的

9.4. 系統範圍的安全設計依賴幾個關鍵的概念

  • 9.4.1. 身份驗證概念,確保正確識別出請求的發出者,也就是安全領域中的“委託人”​

  • 9.4.2. 授權概念,確保這些請求者只能訪問某些資源

  • 9.4.3. 審計概念,確保每次訪問都有真實的記錄,並且可以據此懲罰不良行為等

9.5. 概念是所有系統設計的核心

  • 9.5.1. 安全(safety)領域不同於安保(security)領域,前者很少有標準的概念

  • 9.5.2. 如果一個事故反覆發生,就意味著應該有一個新的概念發揮類似安保概念的作用,並採用傳統的方法實現關鍵功能

  • 9.5.2.1. 醫療裝置經常發生劑量計算錯誤,那麼就應該設計一個劑量概念,用來處理各種單位、濃度和流速,從而消除很多導致患者受傷或死亡的悲劇性事故,這些事故本是可以預防的

10. 概念可以回應對設計的評論

10.1. 概念為評論設計提供了可用的原則,從而避免花很長時間才能發現問題

  • 10.1.1. 掌握這些原則的軟體設計師會做出更好的設計,即使他們還沒有明確的想法

10.2. 在任何設計領域,設計師都會對彼此的作品進行分析和評論,這對設計有重要的作用

10.3. 評論並不是一種經過系統性思考的正式評價,但正是它的非正式效能夠帶來新的視角與靈感

10.4. 設計原則可以有不同的使用方式

  • 10.4.1. 它們是設計評論達成共識的基礎,或者可以被系統地應用於啟發式評價,但其更重要的作用是塑造設計師的思想

相關文章