(1)介紹
·詳細設計的根本目標是確定怎樣具體地實現所要求的系統,也就是說,
經過這個階段的設計工作,應該得出對目標系統的精確概述,從而在編
碼階段可以把這個描述直接翻譯成某種程序設計語言的程序。
·詳細設計的階段的任務還不是具體的編寫程序,而是要設計出程序的“藍圖”,
詳細設計的結果基本上決定最終程序代碼的質量。考慮代碼的質量是必須注意,
程序的讀者有兩個人,那就是計算機和人。
·結構程序設計是實現詳細設計的邏輯基礎.
(2)結構程序設計闡述
·程序的質量與程序中所包含的GOTO語句數量成反比,只有三種基本的控制結構就
能實現任何單入口單出口程序,即順序、選擇、循環。
·如果一個程序的代碼塊僅僅通過順序、選擇、循環這三種基本控制結構進行連接,
並且每個代碼塊只有一個入口和一個出口,則稱這個程序是結構化。
·LEAVE或BREAK結構實際上是受限制的前向GOTO語句,用於轉移到循環結構后面的語句,
如果只允許使用順序結構、if-while-else型分支和do-while型循環三種基本控制結構,則稱
為經典的結構程序設計;如果上述三種基本控制結構之外,還允許使用do-case型多分支結構
和do-until型循環結構,則稱為擴展的結構程序設計;
(3)人機界面設計
·人機界面設計是接口設計的一個重要組成部分,包含以下4個問題:系統響應時間、用戶幫助設施、出錯信息處理、命令交互。
3.1系統響應時間
·系統響應時間是指從用戶完成某個控制動作(例如:按回車鍵或單擊鼠標),到軟件給出預期的響應(輸出信息或動作)之間的這段時間
·它有兩個屬性:長度和易變形;
·易變性是指系統響應時間相對於平均響應時間的偏差。
3.2 用戶幫助設施
·大多數軟件都提供聯機幫助設施,常見的幫助設施可分為集成和附加兩類。集成幫助優於附加的幫助設施
·具體幫助設施,必須解決下述的一系列問題:
(1)用戶怎樣請求幫助? 有三種選擇,幫助菜單,特殊功能鍵,HELP命令
(2)在用戶與系統交互期間,是否在任何的時候都能獲得關於系統任何功能的幫助信息?
有兩種:提供部分功能的幫助和提供全部功能的幫助信息
(3)怎樣顯示幫助信息?
有三種選擇:在獨立的窗口中,指出參考某個文檔(不理想)和在屏幕固定位置顯示簡短的信息
(4)用戶怎樣返回到正常的交互方式中?
有兩種選擇:屏幕上的返回按鈕和功能鍵
(5)怎樣組織幫助信息?
有三種選擇:平面結構(所有信息都通過關鍵字訪問),信息的層次結構(用戶可在該結構中查詢更詳細的信息)和超文本結構
3.3 出錯信息處理
·出錯信息和警告信息,是出現問題時交互系統給出的“壞消息”。出錯信息設計得不好,將向用戶提供無用的甚至誤導的信息。
一般來說,交互式系統給出的出錯信息或警告信息,應該具有下述屬性
(1)信息應該用用戶可以理解的術語描述問題
(2)信息應該提供有助於從錯誤中恢復的建議性意見
(3)信息應該指出錯誤可能導致那些負面后果(例如,破壞數據文件),以便用戶檢查是否出現問題,並在確實出現問題時及時解決
(4)信息應該伴隨着聽覺上或視覺上的提示。
(5)信息不能帶有指責色彩
(4)命令交互
·在多數情況下,用戶既可以從菜單中選擇軟件功能,也可以通過鍵盤命令序列調用軟件功能
·再提供命令交互式時,必須考慮下列設計問題
(1)是否每個菜單選項都有對應的命令
(2)采用何種命令形式?
有三種選擇:控制序列(快捷鍵),功能鍵、輸入鍵
(3)學習和記憶命令的難度有多大?忘記命令怎么辦?
·設計過程
(1)先創建設計模型,再用原型實現這個設計模型,並由用戶試用和評估,然后根據用戶意見進行修改。
(2)可以運用下述評估標准對設計進行早期復審
·系統及其 界面的規格說明書的長度和復雜程度,預示了用戶學習使用該系統時需要的工作量
·命令或動作的數量、命令的平均參數個數或動作中單個操作的個數
(5)過程設計的工具
·描述程序處理過程的工具稱為過程設計的工具,它可以分為圖形、表格和語言
5.1 程序流程圖
程序流程圖又稱為程序框圖。它的主要優點是對控制流程的描繪很直觀。
缺點有:
(1)程序流程圖本質上不是逐步求精的好工具,不去考慮全局結構;
(2)程序流圖用箭頭代表控制流;
(3)程序流圖不易表示數據結構。
(6)盒圖(又稱為N-S圖)
它有下述特點:
(1)功能域(即一個特定控制結構的作用域)明確,可以從盒圖一眼就看出來
(2)不可能任意轉移控制
(3)很容易表現嵌套關系,也可以表示模塊的層次結構。