天天看點

軟體需求規格說明書,概要設計說明書,詳細設計說明書(文檔)1 軟體設計的整體流程:2 需求分析3 概要設計4 詳細設計5 概要設計和詳細設計的差別

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 詳細設計階段

在這個階段,各個子產品可以分給不同的人去并行設計。在詳細設計階段,設計者的工作對象是一個子產品,根據概要設計賦予的局部任務和對外接口,設計并表達出子產品的算法、流程、狀态轉換等内容。這裡要注意,如果發現有結構調整(如分解出子子產品等)的必要,必須傳回到概要設計階段,将調整反應到概要設計文檔中,而不能就地解決,不打招呼。

詳細設計文檔最重要的部分是子產品的流程圖、狀态圖、局部變量及相應的文字說明等。

本文轉載自:

作者:安東尼_Anthony

連結:https://www.jianshu.com/p/a52fe78962f0

繼續閱讀