理順軟件開發各個環節-13(開發管理-概要設計和詳細設計)

5.5軟件概要設計

  概要設計,用於子系統或模塊設計,也可用新增業務需求的跨子系統設計。概要設計在整體設計框架下,遵循整體設計思想,豐富子系統或模塊設計,從而可以指導開發實現子系統或模塊。前端

  因爲軟件整體設計從宏觀上架構軟件,距離開發實現,還有許多須要細化之處。若是系統由多個子系統組成,每一個子系統能夠視爲一個獨立的應用軟件或服務,此時概要設計不可省略;若是系統不大,重點模塊也應須要作概要設計來細化。能夠理解爲概要設計粒度介於整體設計和詳細設計之間。程序員

  另外,概要設計與代碼實現的聯繫更緊密一些,如代碼分層、核心的對象類及關係等。數據庫

  責任人:開發項目組長。
  執行人:高級程序員、子系統或模塊開發人員。
  關鍵行爲:分析和概要設計。  後端

  • 分析:根據子系統或模塊的功能規劃,結合對軟件需求進行分析,完整把握需求;
  • 概要設計:在整體設計框架下,完成子系統或模塊的概要設計。

  輸入架構

  • 軟件需求規格書(SRS);
  • 數據字典(DD);
  • 用戶故事集合;
  • 其它需求資料;
  • 軟件整體設計文檔。

  輸出框架

  • 軟件概要設計文檔;
    • 子系統結構設計;
    • 功能模塊設計;
    • 接口設計;
    • 軟件結構設計;
    • 數據庫設計。

  職責要求前後端分離

  • 概要設計;
  • 溝通、協調、明確對接的上下游子系統/模塊的接口和邊界;
  • 提請軟件概要設計評審:
    • 概要設計人員:主講人,負責講解和答覆各類質詢和疑問;
    • 產品經理:評估產品需求在子系統或模塊的部分是否被設計的系統所知足;包括後期的需求的知足性;非功能需求的支持狀況;
    • 項目經理:組織、協調,關注子系統與其它相關子系統的銜接;
    • 開發項目經理及高級技術人員:關注技術方案的可行性、靈活性;非功能需求的支持狀況;關注子系統與其關子系統的銜接;
    • 開發技術人員:瞭解軟件的設計思路,便於開發實現;如先後端分離,前端開發人員需評審涉及前端接口的合理性;
    • 測試技術人員:瞭解軟件的設計思路,以及其對測試的影響;

 

5.6軟件詳細設計

  詳細設計,可以在開發人員編碼實現前,評審其設計思路,確定是有幫助的。可是,詳細設計是須要時間開銷的,作爲設計的末端,其數量規模是很大的;若是需求不明確,則這些投入就可能白費。數據庫設計

  在敏捷開發模式,詳細設計通常都不作。在實際操做中,發現有些核心功能還得須要作詳細設計,有了整體設計文檔,概要設計文檔和軟件需求規格書,並不能保證每一個開發人員都能跟上設計人員的思路,結果實現的效果良莠不齊,有的徹底沒有按照整體設計思路來。性能

  所以,我認爲,重要或核心功能開發,仍是須要作詳細設計。具體須要開發項目組長來把握。單元測試

  責任人:開發項目組長。

  執行人:軟件需求開發人員。

  關鍵行爲:分析和詳細設計。

  輸入

  • 軟件需求規格書(SRS);
  • 數據字典(DD);
  • 用戶故事;
  • 其它需求資料;
  • 軟件整體設計文檔;
  • 軟件概要設計文檔。

  輸出

  • 詳細設計文檔;
  • 接口設計:YApi或swagger;
  • 單元測試設計:checklist

  職責要求

  • 詳細設計;
  • 理解需求;
  • 溝通、協調、明確對接的上下游模塊的接口和邊界;
  • 提請軟件詳細設計評審:
    • 開發人員:主講人,負責講解和答覆各類質詢和疑問;
    • 開發項目組長:關注技術方案的可行性;
    • 上下游相關開發人員:評審接口、業務流程及性能等技術可行性;
    • 高級技術人員:若是功能比較複雜,參與評審;
    • 其它人員,視狀況須要
相關文章
相關標籤/搜索