菜單
菜單應該盡量簡潔,當存在了太多風格不一,冗長和拙劣的圖標或命令名,以及當選擇隱藏在不明顯的主題之下的子項時,理解它們將會變得非常復雜。一個菜單覆蓋的命令越多,無論如何規劃,都會變得復雜,如果沒有良好的規劃,這對用戶的使用將是一大障礙。
――過于復雜的菜單層次
如果必須在最后到達你想要的命令之前很吃力地通過一個又一個菜單,那么我想我會選擇使用另外一個功能相近的程序。創建深層菜單樹的程序員所引用的設 計規則表明,沒有哪個菜單應該具有七個以上的選項,這一點對新手來說可能時最好的。有經驗的用戶更傾向于每個菜單級別有更多選擇,犯更少錯誤并更快速有效 的做出反應,只要選項能合理組織,整齊排版,而且沒有可笑的擁擠或拼寫錯誤就行了。
-不適當的菜單導航系統
即使在一個最適當的深層菜單系統中,你也必須能夠返回到前一菜單,或者移到菜單結構的頂層,并能在任何時刻離開程序。
――太多路徑到達相同位置
如果許多命令在菜單中重復出現,那么程序就需要重新組織。讓一個命令在不同位置重復可能會很便捷,但是存在一定的限制。如果感覺上你可以從程序的任何位置到達另一個任意位置――那就得重新考慮下程序的內部結構和可靠性。
――相關的命令被歸屬到不相關的菜單
把一個復雜菜單中對命令或主題進行分組并不是一件容易的事情。人們都很容易忽視兩項之間明顯關系,并把它們分配到分開的菜單中去,當需要對此進行調整時,我們需要做的是:解釋兩項之間的關系,并建議兩者都應屬于哪個菜單。
――不相關命令被放置到同一菜單下
有些命令被扔到了完全無關的菜單下,這樣并不好,寧可重新選擇一個更高級別的標題并重新組織這些命令也不要那么做――如果那樣做導致的混亂比較嚴重的話。
――鍵盤不能正確使用
不能正確使用鍵盤無論在何時都是一個問題。
――無法使用編輯鍵或功能鍵
如果一個程序從某些其他沒有這些鍵的機器上移植過來,那沒關系。相反可能就不行。要確保程序可以使用已有的編輯鍵和功能鍵。
――光標和編輯鍵的非標準使用
這些鍵應該按照他們通常在該機器上工作的方式進行工作,而不是按照他們通常在其他某個機器上工作的方式來工作。
――功能鍵的非標準使用
如果大多數程序用F1作為幫助鍵,那么如果在程序中將它定義為其他的功能,那將是不合適的。
――不能過濾無效鍵
程序應該能擋住并拋棄無效字符,比如進行數字相加時輸入的字母。它不應該做出回應。與錯誤消息相比,這樣做更快更有效。
――未能指示鍵盤狀態的改變。
鍵盤上的燈或屏幕信息應該告訴你何時你的Num Lock鍵和其他類似的狀態轉換特征是開著的。
――未能掃描功能鍵或快捷鍵
你應該能夠告訴計算機從它正在進行的工作中退出;程序應該總是能辨別出任何其他系統指定的鍵――即那些本機上的程序通??梢院芸熳R別出來的鍵。
4、遺漏的命令
1)狀態轉換
大多數程序從一個狀態轉到另一個狀態,在你選擇某個菜單項或者提交一個命令之前,程序處于某種狀態。為了回應你的選擇,程序回到另一個狀態。程序員通常會對他們的代碼進行足夠的測試,以確保你能達到任何你應該可以達到的狀態。
――什么都不作就退出(狀態返回)
你應該能夠告訴應用程序,你做出的最后一個選擇有誤,并返回到其前一個狀態。
――不能在程序中間退出
當使用一個程序但還沒有對存儲的數據造成不利影響時,你應該能夠從中退出;如果你正在編輯的文件出現了預想不到的錯誤,在中止后應能回到先前保存過的狀態。
――不能在命令中間停止
告訴程序停止一個命令很容易,而返回到起始點或選擇一個其他的命令也應該不太難。如果其中任何一個方面出現了問題,就需要重新考量先前的設計是否真的合理了。
――不能暫停
如果程序限定了你輸入的時間,時間一到,狀態就改變,那么當你離開時你就需要它暫停一會兒。這中類型的情況在游戲軟件中見得較多,比如說暫停游戲。
原文轉自:http://www.uml.org.cn/Test/200711195.asp