1、軟件設計通常流程:
一、先前的軟件需求分析階段,已經搞清楚了 「要解決什麼問題」,並輸出了《軟件須要說明書》。這時一切都是理想。
二、如今進入概要設計階段,重點說清楚「整體實現方案」,肯定軟件系統的整體佈局,各個子模塊的功能和模塊間的關係,與外部系統的關係。有一些研究與論證性的內容。並輸出《軟件概要設計說明書》。這時一切都是概念。
三、最後進入詳細設計階段,重點說清楚「每一個模塊怎麼作」,是「程序」的藍圖,肯定每一個模塊採用的算法、數據結構、接口的實現、屬性、參數。並輸出《軟件詳細設計說明書》。這時一切都是實現。java
2、《概要設計說明書》的通常結構:
一、總述:需求或目標(講一下事情的起源)、環境、侷限;
----主要交代背景與大環境。(非重點)
二、整體設計:從全局的角度說一下 整體結構、功能、處理流程、有哪些模塊、模塊間的關係;
----使讀者有「全局」觀,爲下一步深刻各個模塊作好準備。
三、外部接口:整體說明外部用戶、軟、硬件接口(可用資源);(這個接口不是java的interface) 。
----使讀者瞭解能夠利用的外部資源。
四、模塊設計:每一個模塊「作什麼」、簡要說明「怎麼作」(輸入、輸出、處理邏輯、與其它模塊或系統的接口),處在什麼邏輯位置、物理位置; (重點)
五、數據結構:邏輯結構、物理結構(存儲在數據表中,仍是緩存中);
六、容災設計:出錯信息、出錯處理; (可選)
七、監控設計:運行模塊組合、控制、時間;(可選)
八、用戶界面設計:(可選)
九、安全設計:(可選)
十、其它設計:(可選)
十一、制定規範(附錄): 設計原則,代碼規範、接口規約、命名規則。--是小組協同開發的基礎算法
3、模塊設計是重點,多說幾句:
能夠寫如下內容:
一、模塊描述:說明哪些模塊實現了哪些功能;
二、模塊層次結構:可使用某個視角的軟件框架圖來表達;
三、模塊間的關係:模塊間依賴關係的描述,通訊機制描述;
四、模塊的核心接口:說明模塊傳遞的信息、信息的結構;
五、處理方式設計:說一些知足功能和性能的算法;緩存
4、怎麼使用概要設計:
一、用來評價整體設計的可行性。
二、用來檢查設計的模塊是否完整,保證每個功能都有對應的模塊來實現。
三、用來評估開發工做量、指導開發計劃(在不寫詳細設計的狀況下)。安全
5、最後提醒:
一、概要設計階段過於重視業務流程是個誤區.
二、概要設計階段過於重視細節實現是個誤區.數據結構