软件整体设计核心是设计思想,但表述形式也是重要的,好的文档组织方式条理清晰,便于阅读和理解,还能减小设计疏漏。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