理顺软件开发各个环节-11(开发管理-总体设计-2)
5.4.2软件总体设计文档模板
软件总体设计核心是设计思想,但表述形式也是重要的,好的文档组织方式条理清晰,便于阅读和理解,还能减少设计疏漏。
这里分享一下我之前使用的软件总体设计的文档模板,根据我的经验,按照这个文档模板来做软件总体设计,可以提高软件总体设计的质量。这个模板做一些裁剪,也可用于概要设计。
文档模板中的斜体字为示例。
章节1、引言
章节1.1、编写目的
规定软件系统的设计原则。初步确定系统的运行环境、程序结构、模块划分、功能分配、接口设计、运行设计、数据库连接设计、文件系统设计、目录结构设计、数据库设计等,为系统的详细设计提供基础。
章节1.2、预期读者
说明本文档的阅读权限、适用范围和阅读建议。
章节1.3、参考资料
本文件中各处引用的文件、资料,说明能够得到这些文件的来源。
章节1.4、术语和定义
逐条列出本规范中所涉及术语的名称和含义。
章节1.5、缩略语
逐项列出本规范中所涉及的缩略语及其对应的汉语含义
章节2、背景
章节2.1、功能介绍
章节2.2、新增及加强的功能
如果为对现有系统的改造升级,列出本次新增或加强哪些功能。
章节3、设计需求描述
参见《XXX软件设计需求规格书》
章节4、总体设计
章节4.1、运行环境
章节4.1.1、硬件环境
章节4.1.2、软件环境
章节4.2、基本设计概念和处理流程
说明本系统的基本设计概念和处理流程。
如:发布订阅机制、配置化的策略、安全机制,并逐项说明采取的处理方案。
章节4.3、结构设计
用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系。
章节4.3.1、设计原则
说明设计原则,如模块化、国际化、版本兼容性、扩展灵活性等方面的考虑。
章节4.3.2、结构框图
可使用C4设计模式
章节4.3.2.1、System Context视图
给出C4设计的System Context视图,并给出说明,此图说明系统的各子系统及外部系统的关系,给出系统的边界。
章节4.3.2.2、Container视图
给出C4设计的Container视图,并给出说明,此图说明系统运行时各进程的关系。
章节4.3.2.3、Component视图
给出C4设计的Component视图,并给出说明,此图说明系统各模块的关系。
章节4.3.2.4、Deployment视图
给出部署视图,并给出说明,此图说明系统的部署架构。
章节4.4、开发环境
章节4.4.1、硬件环境
各种硬件配置
章节4.4.2、软件环境
开发平台、软件语言、数据库;
章节5、模块描述
章节5.1、模块划分
描述系统的模块划分。
章节5.2、分模块1
章节5.3、分模块2
章节5.4、分模块n
章节6、接口设计
章节6.1用户接口
说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
参见<XXX系统的UI&UE设计>。
章节6.2、外部接口
说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接 口关系。
章节6.3、内部接口
说明本系统之内的各个系统元素之间的接口的安排。
章节7、系统库设计
章节7.1、数据库必要性
阐述使用数据库的必要性。
章节7.2、数据库性能要求及选型
对数据库的性能要求,以及选择何种数据库,说明理由。
章节7.3、数据库结构设计
参见《xxxx数据库设计.sql》
章节8、代码框架
如有必要,说明使用的代码框架。如:
使用Java jdk1.8+Springboot2.0代码框架。多模块化框架。
章节9、系统出错处理设计
章节9.1、出错信息及处理方案
用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
章节9.2、系统维护设计
说明为了系统维护的方便而在程序内部设计中作出的安排,包括在程序中专门安排用于系统的检查与维护的检测点和专用模块。
章节10、测试与验证
章节10.1、测试指导原则
如:使用JUnit单元测试框架。
章节10.2、测试资源与环境
章节10.3、特殊考虑
如现场测试,利用特殊设备的测试等等。
章节11、关键技术
章节11.1、关键技术1
描述此关键技术,给出可行的解决方案
章节11.2、关键技术
章节11.3、关键技术n