軟件整體設計核心是設計思想,但表述形式也是重要的,好的文檔組織方式條理清晰,便於閱讀和理解,還能減小設計疏漏。sql
這裏分享一下我以前使用的軟件整體設計的文檔模板,根據個人經驗,按照這個文檔模板來作軟件整體設計,能夠提升軟件整體設計的質量。這個模板作一些裁剪,也可用於概要設計。數據庫
文檔模板中的斜體字爲示例。設計模式
章節一、引言安全
章節1.一、編寫目的架構
規定軟件系統的設計原則。初步肯定系統的運行環境、程序結構、模塊劃分、功能分配、接口設計、運行設計、數據庫鏈接設計、文件系統設計、目錄結構設計、數據庫設計等,爲系統的詳細設計提供基礎。框架
章節1.二、預期讀者數據庫設計
說明本文檔的閱讀權限、適用範圍和閱讀建議。模塊化
章節1.三、參考資料性能
本文件中各處引用的文件、資料,說明可以獲得這些文件的來源。單元測試
章節1.四、術語和定義
逐條列出本規範中所涉及術語的名稱和含義。
章節1.五、縮略語
逐項列出本規範中所涉及的縮略語及其對應的漢語含義
章節二、背景
章節2.一、功能介紹
章節2.二、新增及增強的功能
若是爲對現有系統的改造升級,列出本次新增或增強哪些功能。
章節三、設計需求描述
參見《XXX軟件設計需求規格書》
章節四、整體設計
章節4.一、運行環境
章節4.1.一、硬件環境
章節4.1.二、軟件環境
章節4.二、基本設計概念和處理流程
說明本系統的基本設計概念和處理流程。
如:發佈訂閱機制、配置化的策略、安全機制,並逐項說明採起的處理方案。
章節4.三、結構設計
用一覽表及框圖的形式說明本系統的系統元素(各層模塊、子程序、公用程序等)的劃分,扼要說明每一個系統元素的標識符和功能,分層次地給出各元素之間的控制與被控制關係。
章節4.3.一、設計原則
說明設計原則,如模塊化、國際化、版本兼容性、擴展靈活性等方面的考慮。
章節4.3.二、結構框圖
可以使用C4設計模式
章節4.3.2.一、System Context視圖
給出C4設計的System Context視圖,並給出說明,此圖說明系統的各子系統及外部系統的關係,給出系統的邊界。
章節4.3.2.二、Container視圖
給出C4設計的Container視圖,並給出說明,此圖說明系統運行時各進程的關係。
章節4.3.2.三、Component視圖
給出C4設計的Component視圖,並給出說明,此圖說明系統各模塊的關係。
章節4.3.2.四、Deployment視圖
給出部署視圖,並給出說明,此圖說明系統的部署架構。
章節4.四、開發環境
章節4.4.一、硬件環境
各類硬件配置
章節4.4.二、軟件環境
開發平臺、軟件語言、數據庫;
章節五、模塊描述
章節5.一、模塊劃分
描述系統的模塊劃分。
章節5.二、分模塊1
章節5.三、分模塊2
章節5.四、分模塊n
章節六、接口設計
章節6.1用戶接口
說明將向用戶提供的命令和它們的語法結構,以及軟件的回答信息。
參見<XXX系統的UI&UE設計>。
章節6.二、外部接口
說明本系統同外界的全部接口的安排包括軟件與硬件之間的接口、本系統與各支持軟件之間的接 口關係。
章節6.三、內部接口
說明本系統以內的各個系統元素之間的接口的安排。
章節七、系統庫設計
章節7.一、數據庫必要性
闡述使用數據庫的必要性。
章節7.二、數據庫性能要求及選型
對數據庫的性能要求,以及選擇何種數據庫,說明理由。
章節7.三、數據庫結構設計
參見《xxxx數據庫設計.sql》
章節八、代碼框架
若有必要,說明使用的代碼框架。如:
使用Java jdk1.8+Springboot2.0代碼框架。多模塊化框架。
章節九、系統出錯處理設計
章節9.一、出錯信息及處理方案
用一覽表的方式說朗每種可能的出錯或故障狀況出現時,系統輸出信息的形式、含意及處理方法。
章節9.二、系統維護設計
說明爲了系統維護的方便而在程序內部設計中做出的安排,包括在程序中專門安排用於系統的檢查與維護的檢測點和專用模塊。
章節十、測試與驗證
章節10.一、測試指導原則
如:使用JUnit單元測試框架。
章節10.二、測試資源與環境
章節10.三、特殊考慮
如現場測試,利用特殊設備的測試等等。
章節十一、關鍵技術
章節11.一、關鍵技術1
描述此關鍵技術,給出可行的解決方案
章節11.二、關鍵技術
章節11.三、關鍵技術n