星期一, 10月 24, 2005

使用者介面與資料呈現

這一陣子,對優良的「使用者介面」(User Interface, UI) 設計,都隱隱懷有一份欣賞與讚嘆。

為什麼會這樣呢?我猜想,是因為自己這些年來,漸漸感受到 UI 的重要性。此外,自己也曾花過一些心力去思考,卻苦於找不到「漂亮的抽象模型」來說明:怎樣的 UI 設計才算是好的設計、惱於「主觀的使用者意識與客觀的資料」之間複雜難解的互動。

之前在 Maryland 求學,就曾聽說過 Shneiderman 在 UI 設計上的大名。然而,那時的我只顧著尋找計算機科學的深層內容(或許也可說是「抽象美」),對於「使用者介面」則視為是二流的學問,因此錯過了去上課求知的機會(不過,那個時候就算是修了課,因為缺少了一份「強烈的動機與感動」,應該也只能膚淺地記得課堂上的知識內容,而學不到課程的精髓罷)。

這幾天,強烈感受到需要拓寬一下自己(與實驗室成員)對資料呈現(Data Visualization,它構成一部份 UI 設計的主題)方面的知識。於是,我從書堆裡,將 Shneiderman 的一本舊書又翻找了出來。

覺得書中的一份資料應該頗有啟發性。它列出資料呈現的分類方式(Data Types)、與一些相關的工作(Tasks;從使用者角度,或可說是「使用者可執行的動作」):

Data Types
  • 1-D Linear
  • 2-D Map
  • 3-D World
  • Temporal
  • Multi-Dimensional
  • Tree
  • Network
Tasks
  • Overview:
    - Gain an overview of the entire collection.
  • Zoom:
    - Zoom in on items of interest.
  • Filter:
    - Filter out uninteresting items.
  • Details-on-demand:
    - Select an item or group and get details when needed
  • Relate:
    - View relationships among items
  • History:
    - Keep a history of actions to support undo, replay, and progressive refinement.
  • Extract:
    - Allow extraction of subcollections and of the query parameters.
看到這樣的整理歸類,至少讓我從新思考 Temporal 與 Multi-Dimensional 之間的差異。我從前一直將 Temporal 視為 Multi-Dimensional 中的一種特例(多維度中的一個維度),卻沒有關注到:Temporal 的「時間」特質,其實與其他維度有著本質上的不同。這就好像把時空合起來,視為四度空間一樣:看起來具有一般性,但卻因為忽略了「時間之箭」的特質,實際上最後卻反而把自己侷限住了。

或許,這也是過度執著(於抽象化),所衍生的的盲點?

3 則留言:

mph 提到...

http://chinesetrad.joelonsoftware.com/uibook/chapters/1.html
以前翻的,純應用層面,不過我很喜歡。

tu 提到...

我也很喜歡 Joel 的文章(和你的翻譯 -- 不過在網頁上呈現,英數字的標點太小了,而且與後面的字之間的空白不會被呈現,因而看久了不舒服)。

「你必須讓人們覺得他們似乎能控制環境, 才能使他們快樂。要達到這個目的,你必須正確地解釋他們的動作,介面必須依照他們所期望的方式作用。」

說得真好。

mph 提到...

當時急著想翻完,全形標點符號和英數字切換太麻煩,不太喜歡用,不過看起來真是有點困擾。

現在打字已經不在意速度,反正快也快不到那裡去,結果看起來舒服比較重要。