作者:趙磊
部落格:http://elf8848.iteye.com
軟體概要設計做什麼,怎麼做
一、軟體設計一般流程:
1、先前的軟體需求分析階段,已經搞清楚了 “要解決什麼問題”,并輸出了《軟體需要說明書》。這時一切都是理想。
2、現在進入概要設計階段,重點說清楚“總體實作方案”,确定軟體系統的總體布局,各個子子產品的功能和子產品間的關系,與外部系統的關系。有一些研究與論證性的内容。并輸出《軟體概要設計說明書》。這時一切都是概念。
3、最後進入詳細設計階段,重點說清楚“每個子產品怎麼做”,是“程式”的藍圖,确定每個子產品采用的算法、資料結構、接口的實作、屬性、參數。并輸出《軟體詳細設計說明書》。這時一切都是實作。
二、《概要設計說明書》的一般結構:
1、總述:需求或目标(講一下事情的起源)、環境、局限;
----主要交代背景與大環境。(非重點)
2、總體設計:從全局的角度說一下 總體結構、功能、處理流程、有哪些子產品、子產品間的關系;
----使讀者有“全局”觀,為下一步深入各個子產品做好準備。
3、外部接口:總體說明外部使用者、軟、硬體接口(可用資源);(這個接口不是java的interface) 。
----使讀者了解可以利用的外部資源。
4、子產品設計:每個子產品“做什麼”、簡要說明“怎麼做”(輸入、輸出、處理邏輯、與其它子產品或系統的接口),處在什麼邏輯位置、實體位置; (重點)
5、資料結構:邏輯結構、實體結構(存儲在資料表中,還是緩存中);
6、容災設計:出錯資訊、出錯處理; (可選)
7、監控設計:運作子產品組合、控制、時間;(可選)
8、使用者界面設計:(可選)
9、安全設計:(可選)
10、其它設計:(可選)
11、制定規範(附錄): 設計原則,代碼規範、接口規約、命名規則。--是小組協同開發的基礎
三、子產品設計是重點,多說幾句:
可以寫以下内容:
1、子產品描述:說明哪些子產品實作了哪些功能;
2、子產品層次結構:可以使用某個視角的軟體架構圖來表達;
3、子產品間的關系:子產品間依賴關系的描述,通信機制描述;
4、子產品的核心接口:說明子產品傳遞的資訊、資訊的結構;
5、處理方式設計:說一些滿足功能和性能的算法;
四、怎麼使用概要設計:
1、用來評價總體設計的可行性。
2、用來檢查設計的子產品是否完整,保證每一個功能都有對應的子產品來實作。
3、用來評估開發工作量、指導開發計劃(在不寫詳細設計的情況下)。
五、最後提醒:
1、概要設計階段過于重視業務流程是個誤區.
2、概要設計階段過于重視細節實作是個誤區.