软件开发过程中会输出各种各样的技术文档,写的最多的是《技术可行性分析报告》、《技术设计方案》、《概要设计文档》和《详细设计文档》等,它们的受众群体不同,侧重点也有所不同。《详细设计文档》为每个具体功能点选择了合适的技术和处理方法,它又可分为网络设计、代码设计、输入输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等,是正式编码前最完整最细致的设计文档,开发人员可直接根据此文档进入开发阶段。
本文不考虑其他相关文档的配合,不考虑具体的交付,只描述写《详细设计文档》时需要考虑的内容。
1.详细设计文档的预期效果
1.1 功能需求和非功能需求满足客户需求
- 所有的功能点覆盖了客户的功能需求
- 在功能需求的前提下,满足性能、安全等非功能性需求
1.2 开发高效
- 单个程序可快速进入开发,且过程中无需过多沟通
- 结对编程心照不宣,人员离职可快速替补
- 作为代码评审、代码走查的业务依据
- 作为新人业务熟悉的资料
1.3 测试高效
- 测试人员熟悉表结构、测试数据模拟的依据
- 复核功能需求,及早发现开发人员的逻辑错误,减少bug和事故等发生。
1.4 运营高效
- 实施/运营人员熟悉设计文档中的表结构设计后,客户手动修改/导出数据时更加高效。
2.详细设计文档需要check的点
3.详细设计中的概念补充
3.1 用户界面设计
(1)置于用户控制之下。 [可下一步,可撤销、返回等操作]
(2)减轻用户的记忆负担。 [输入地方描述明确,增加缺省值]
(3)保持界面一致性。[页面的颜色、风格等保持一致]
3.2 数据存储设计
(1)输入数据最少原则,参数越少,出错越少,安全性越高
(2)简单性原则,过程简单,时间性别等用选择
(3)尽早验证原则,js等验证可提高效率,减少db压力
(4)少转换原则,尽量使用原始数据,减少格式转换错误
3.3 代码设计
确保代码的唯一化、规范化和系统化,首先考虑的编码问题。
具体可参照:设计模式和设计原则
3.4 处理流程设计
描述系统模块内部的数据流和控制流,可以使用程序流程图(顺序、选择和循环)、IPO图、盒图、问题分析图、判定树、判定表、伪代码等。
3.5 安全性和可靠性设计
容错技术:定时任务重复执行、多版本设计
集群+负载均衡、冷热备份等
3.6 网络设计
根据物理位置考虑网络布线、设备的部署以及相应的系统软件和管理软件。