目录
1.背景
---bug修订:说明bug产生的背景、环境、原因。
---功能升级:说明需要升级的功能、产生原因、对现有系统的影响、升级后可预测的效果。
---性能升级:说明进行性能升级的原因、背景、对现有结构的影响
---新模块:对整个系统的大致描述、本模块的功能、本模块在整个系统中的作用,与其他模块的关系。
---如果系统已编写总体设计,写明对应的总体设计文档名称;如果计划把需求合并到这篇文档里,需在此简要说明需求后,在“3 ”节中进行详细说明。
2.名词解释
---对文档中出现新的或不常见的名词、概念或简略语给出定义和解释。
3.设计目标
3.1.实现的功能
---概要描述该模块要实现的功能,不需描述其它模块。如果项目已有MRD,可在此分层次分条目列出功能点及子功能点。
---如果没有MRD,需在此列出要实现的功能点及子功能点,并对每一个功能点进行详细说明。功能点之间的层级和关联关系要明晰。这里仅描述功能,不需要涉及实现方案、功能取舍等问题。
3.2.设计的性能指标
---系统的性能目标需要分解到模块,在此描述系统对该模块的性能要求。建议分条列出量化的性能指标,比如响应时间、超时率、资源占用、运行周期等。不能模糊、有岐义、想当然。
4.系统环境(可选)
4.1.假设及与其它模块联系
---在这里加入模块成功的前提条件及与外界其它系统/模块的联系。采用文字分条列出或采用模块结构图描述均可。
---这也是搭建测试环境和编写上线策略需关注的内容,如果相依赖的模块不完善,则需开发相应的桩程序,在“6.10 测试考虑”中描述。
---与外界系统的详细接口,如果没有在总体设计或接口设计中定义,则在“6.4 ”中描述。
4.2.相关软件及硬件
---在这里加入系统所需的软, 硬件, 包括操作系统, 机器型号及配置要求。建议采用表格形式列出,最好还能规划出服务器和软件构件的部署图。该部分也可以单独编写部署设计文档,并在此引用。
4.3.模块限制
---在这里加入模块的已知, 或可预知的限制。
4.4.数据规模估计
---通过调研或经验,对数据规模进行估计,包括用户量、数据量、带宽消耗及增长速度等方面。分类分条列出。
---如果已在总体设计中描述,该节可裁剪。
5.设计思路及折衷
---描述模块设计中需要解决或考虑的关键问题,解决这些问题可能有不同方案, 在这里加入方案设计的选择, 折衷及解释,并在后面的模块设计中对选中的方案给出进一步阐述。
---建议分类列出,比如性能、可扩展性、安全性、服务稳定性、反作弊、复用等方面。
6.模块设计
6.1.模块流程图及说明
---描述模块设计架构,对模块相关的实现流程和业务规则进行详细说明。描述实现流程时,建议采用流程图的方式,也可以采用伪码或文字描述。
---无论采取哪种方式,都要注意分支的完备性,特别是异常分支。如果有子模块,在此对子模块做简要说明,并在“6.11 各子模块设计”中做进一步的设计。
6.2.数据结构及说明
---说明在该模块中涉及到的核心数据结构的核心内容(可以以文字描述或代码的方式给出),并进行必要说明
6.3.算法描述(可选)
---对关键或复杂的算法进行描述,该节可根据需要进行裁剪。
6.4.与其它模块的接口
---说明模块调用的接口方式并进行定义,如函数的参数定义、返回值,接口数据结构和定义等。若需要使用外部提供的lib库,需要在设计阶段协调好将使用的版本,并在此进行说明。
---如果已在总体设计或接口设计中定义,可直接引用相关文档。
6.5.异常处理
---对模块中异常情况的处理进行说明,比如输入数据不合法、内存分配失败、模块内部错误需要向外部模块返回的错误码及含义等。
6.6.边界值说明
---对模块中使用的边界值进行定义
6.7.配置项说明(可选)
---对模块涉及到的配置项进行说明
6.8.监控项说明(可选)
---对模块涉及到的监控项(新增/变更)进行说明
6.9.报警配置项说明(可选)
---对模块涉及到的报警配置项(新增/变更)进行说明
6.10.测试考虑
---说明从测试角度考虑设计方案,以及单元测试或联合测试需要考虑的关键事项。比如,测试计划、单元测试的思路、联合测试的重点、测试工具的开发和使用等。
6.11.各子模块设计(可选)
6.11.1.XXX子模块
6.11.1.1.功能描述
---对该子模块的功能进行定义。
6.11.1.2.流程图及说明
6.11.1.3.数据结构及说明
6.11.1.4.算法描述(可选)
6.11.1.5.与其它子模块接口
6.11.1.6.异常处理
7.存储设计
---如有使用其他存储,则需增加相应章节进行说明。
7.1.mysql
---最好有ER图;
---DDL,如涉及分库分表,需说明相应分库分表规则;
---对应表的DML,包括对应sql的QPS/TPS(10/30/50/100/200等);
---对应表的量级预估,预期一年数据量级,年级别增长量级。
7.1.1.新增表
7.1.2.修改表
7.2.squirrel
---key的设计规则,分片规则,存储预估,对应key的读写QPS预估,热key SOP。
8.风险评估及对其它模块/系统影响(可选)
8.1.已知的或可预知的风险
---在这里加上已经知道的或可能会发生的风险,包括技术、业务等方面。最好针对每个风险,列出相应的应对措施。
8.2.与其它模块/系统可能的影响
---在“4.1 ”中描述了该模块与其它模块的依赖关系。在这里描述这些依赖关系可能带来的影响。包括本模块对其它模块可能造成的影响以及其它模块可能给本模块造成的影响两个方面。
网友评论