軟件需求,概要設計,詳細設計(文檔)


軟件需求,概要設計,詳細設計(文檔)怎么做,做什么?

52018.06.15 08:09:26字數 2451閱讀 36159

寫在前面

由於項目工作需要 ,需要提供《軟件需求規格說明書》,《軟件概要設計說明書》和《軟件詳細設計說明書》。所以這里整理學習一下相關文檔需要的內容。文章並不設計對所有需求分析,概要設計和詳細設計的詳細描述。因為這其中的任何一點都可以單獨提取出來成為軟件工程學科中的一本書籍內容。

1 軟件設計的整體流程:

  • 軟件需求分析階段:輸出了《軟件需求規格說明書》,不涉及具體實現方法。用戶能看得明白,開發人員也可據此進行下面的工作,搞清楚“要解決什么問題”。
  • 概要設計階段:確定軟件系統的總體布局,各個子模塊的功能和模塊間的關系,與外部系統的關系,選擇的技術路線。有一些研究與論證性的內容。並輸出《軟件概要設計說明書》。搞清楚“總體實現方案”
  • 詳細設計階段:對概要設計的進一步細化,一般由各部分的擔當人員依據概要設計分別完成,然后在集成,是具體的實現細節。是“程序”的藍圖,確定每個模塊采用的算法、數據結構、接口的實現、屬性、參數。並輸出《軟件詳細設計說明書》。搞清楚“每個模塊怎么做”

2 需求分析

2.1 我們為什么需要《軟件需求規格說明書》 ?

如果需求的編寫只是為了解釋說明軟件實現的功能,那么良好的編碼結構,代碼注釋就可以很好的實現軟件的功能說明,程序員可以將編寫需求的時間節約下來進行更多功能的實現; 可是,這樣的情況可能更多適用於中小型項目,或者互聯網項目,因為這樣的項目需求不復雜,並且需求變化很快,所以研發的效率非常重要。然而,針對大型軟件項目或者功能比較復雜的系統,軟件研發可能是多人協作的成果,所以在信息傳遞過程中, 我們只有提前考慮好軟件需求的內容,才能正確評估開發軟件所需要的時間,成本的要素,從而更好的管理項目。

2.2 《軟件需求規格說明書》的一般結構
  • 正文的第一章內容是1.概述,包含
  • 1.1.編寫目的;1.2.術語與定義;1.3.參考資料;三個部分
  • 第二章要給出該項目的標准和規范,在文檔的后續內容編寫中以及項目開發過程中必須遵照這個標准和規范進行。
  • 第三章應該說明該項目的相關假設、限制和一些依賴條件,在后續系統部署的過程中可以有參考意義。
  • 第四章“功能規格”是重點,重點介紹這個系統的角色,界面設計思路,系統的功能視圖和功能點清單,以及系統的需求用例。這個內容必須詳細描述,這樣才能對后續的開發和測試提供指導意義。
  • 第五章“非功能規格”要對項目的性能、安全、數據的備份恢復等內容解釋解釋說明,一個項目除了功能完整之外,還要考慮性能、安全等相應的要求。
  • 第六章“附錄”,是對軟件需求規格說明書的一些補充說明文檔,其中的“軟件需求跟蹤矩陣”是重點,這份文檔是對后續需求的完善程度進行了嚴格的控制。

3 概要設計

3.1 《概要設計說明書》的一般結構:
  • 總述:需求或目標(講一下事情的起源)、環境、局限;
  • 總體設計:從全局的角度說一下 組織結構、功能、處理流程、有哪些模塊、模塊間的關系,運行環境等。(輸出圖:系統結構圖,系統流程圖,數據流程圖,推薦在線畫圖工具https://www.processon.com/
  • 外部接口:總體說明外部用戶、軟、硬件接口(可用資源);
  • 模塊設計:每個模塊“做什么”、簡要說明“怎么做”(輸入、輸出、處理邏輯、與其它模塊或系統的接口),處在什么邏輯位置、物理位置。
模塊設計,可以寫以下內容:
   1、模塊描述:說明哪些模塊實現了哪些功能;
   2、模塊層次結構:可以使用某個視角的軟件框架圖來表達;
   3、模塊間的關系:模塊間依賴關系的描述,通信機制描述;
   4、模塊的核心接口:說明模塊傳遞的信息、信息的結構;
   5、處理方式設計:說一些滿足功能和性能的算法;
  • 數據結構:邏輯結構、物理結構。
  • 容災設計:出錯信息、出錯處理。(可選)
  • 監控設計:運行模塊組合、控制、時間。(可選)
  • 用戶界面設計:(可選)。
  • 安全設計:(可選)。
  • 其它設計:(可選)。
  • 制定規范(附錄): 設計原則,代碼規范、接口規約、命名規則。
3.2 概要設計需要注意的地方
  • 用來評價總體設計的可行性。
  • 用來檢查設計的模塊是否完整,保證每一個功能都有對應的模塊來實現。
  • 用來評估開發工作量、指導開發計划(在不寫詳細設計的情況下)。
  • 概要設計階段過於重視業務流程是個誤區.
  • 概要設計階段過於重視細節實現是個誤區.

4 詳細設計

4.1 《詳細設計說明書》的一般結構:

參考如何撰寫軟件詳細設計內容?

  • 引言,包含:
    編寫目的,背景,參考資料,術語定義及說明

  • 設計概述,包含:任務和目標,需求概述,運行環境概述, 條件與限制,詳細設計方法和工具

  • 系統詳細需求分析,包含:詳細需求分析,詳細系統運行環境及限制條件分析接口需求分析

  • 總體方案確認,包含: 系統總體結構確認, 系統詳細界面划分

  • 系統詳細設計,包含: 系統結構設計及子系統划分,系統功能模塊詳細設計(采用HIPO圖進行功能分解與模塊描述,,用IPO或結構圖描述各模塊的組成結構、算法、模塊間的接口關系,以及需求、功能和模塊三者之間的交叉參照關系。), 系統界面詳細設計

每個模塊的描述說明可參照以下格式: **模塊編號:** **模塊名稱:** **輸入:** **處理:** **算法描述:** **輸出:** 
  • 數據庫系統設計
4.2 詳細設計需要注意的地方

如果有或者有必要,特別是大型的軟件系統,詳細設計階段划分系統功能模塊或子系統。

5 概要設計和詳細設計的區別

5.1 概要設計階段:

在這個階段,設計者會大致考慮並照顧模塊的內部實現,但不過多糾纏於此。主要集中於划分模塊、分配任務、定義調用關系。模塊間的接口與傳參在這個階段要定得十分細致明確,應編寫嚴謹的數據字典,避免后續設計產生不解或誤解。概要設計一般不是一次就能做到位,而是反復地進行結構調整。典型的調整是合並功能重復的模塊,或者進一步分解出可以復用的模塊。在概要設計階段,應最大限度地提取可以重用的模塊,建立合理的結構體系,節省后續環節的工作量。
概要設計文檔最重要的部分是分層數據流圖、結構圖、數據字典以及相應的文字說明等。以概要設計文檔為依據,各個模塊的詳細設計就可以並行展開了。

5.2 詳細設計階段

在這個階段,各個模塊可以分給不同的人去並行設計。在詳細設計階段,設計者的工作對象是一個模塊,根據概要設計賦予的局部任務和對外接口,設計並表達出模塊的算法、流程、狀態轉換等內容。這里要注意,如果發現有結構調整(如分解出子模塊等)的必要,必須返回到概要設計階段,將調整反應到概要設計文檔中,而不能就地解決,不打招呼。
詳細設計文檔最重要的部分是模塊的流程圖、狀態圖、局部變量及相應的文字說明等

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM