博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何撰写总体设计与详细设计文档
阅读量:4880 次
发布时间:2019-06-11

本文共 1431 字,大约阅读时间需要 4 分钟。

研发工程师(RD)需要撰写的设计文档主要分为:总体设计文档 + 详细设计文档,后简称为“总设”+“详设”。

总设和详设都应该包含的部分:

(1) 需求:一般以产品的语言描述,这一块可以拷贝产品需求文档中的story list部分;
(2) 名词解释(可选):非相关领域内的同学需要看到文档需要提前了解的一些概念性质的东西;
(3) 设计目标:又分为功能目标和性能目标,功能目标一般是对产品需求的技术描述,性能目标是根据产品给出的数据对性能进行的评估。一般来说,新服务必须要有性能目标一项,性能目标可能会影响设计方案。

除了都应该包含的部分,总体设计一般还包含:

(1) 系统架构:一般来说会有个简单的架构图,并配以文字对架构进行简要说明;
(2) 模块简介:架构图中如果有很多模块,需要对各个模块的功能进行简要介绍;
(3) 设计与折衷:设计与折衷是总体设计中最重要的部分;
(4) 潜在风险(可选);
输出总体设计的时候,很多方案还是不确定的,需要在设计评审会议上确认。

总体设计重点在“方案折衷”,总体设计评审完毕之后,此时应该是所有方案都确认了,需要输出各模块的详细设计,详细设计重点在“详细”:

(1) 总体设计结论汇总(可选):总体设计上达成一致的结论有个简要概述,说明详设是对这些结论的实现;
(2) 交互流程:简要的交互可用文字说明,复杂的交互建议使用流程图,交互图或其他图形进行说明;
(3) 数据库设计:这个是应该放在总设还是详设呢?
(4) 接口形式:有了数据库+接口+流程,别的同学拿到详设文档,基本也能够搞定了;
(5) 其他细节:例如公式等;
理论上输出了详细设计之后,无论谁拿到了这个详设文档,都是能够完成该项目的。

个人实践分享:

一、 大图
(1) 大系统或复杂流程,其架构图或者流程图会非常大,经常比A4纸或word的一页大很多,此时不宜在word中直接贴图形,贴了也看不清,建议将图放在wiki上,文档中直接贴链接;
(2) 一定要保存viso或者其他图形的源文件,否则今后改动起来要重画,代价可想而知;

二、 设计与折衷

(1) 设计与折衷是总设中最重要的内容,总设评审中,主要就是讨论这些折衷的优劣
(2) 评审过后,不但要邮件周知结论,还要在总设中进行更新,说明最终决定使用了哪种方案,为什么使用这种方案;根据自己的经验,接手别人的模块、项目,拿到代码和文档,设计方案对我来说完全是个谜!!!
(3) 有时候因为排期或者其他原因,不一定采用了最优的设计方案,此时更应该在总设中记录决策的过程与原因;
(4) 最后,设计折衷是一个很好的自我辩解的机会:因为项目进度,或者历史遗留问题,我不得不采取了一个这样的设计,不要再骂我了。

三、 性能目标

性能目标是新模块文档必不可少的一部分,很多项目对性能影响较大的话,也必须撰写性能目标,性能一般来说可能包含以下部分:
(1) 日平均请求:一般来自产品人员的评估;
(2) 平均QPS:日平均请求 除以 4w秒得出,为什么是4w秒呢,24小时化为86400秒,取用户活跃时间为白天算,除2得4w秒;
(3) 峰值QPS:一般可以以QPS的2~4倍计算;

互联网公司,产品迭代块,项目周期长,基本没有“文档”一说,但其实写好文档,对系统和项目未来的维护是非常有帮助的。

转载于:https://www.cnblogs.com/windpoplar/p/10611147.html

你可能感兴趣的文章
09年电子竞赛参赛技巧经验11条(转载)
查看>>
CSS颜色
查看>>
前端自动化之(一)—浏览器自动实时刷新
查看>>
Unity 摄像头竖屏预览显示的问题
查看>>
HDU 5115 Dire Wolf(区间dp)
查看>>
C# 程序配置文件的操作(ConfigurationManager的使用)
查看>>
Springmvc完成分页的功能
查看>>
JComboBox实现当前所选项功能和JFrame窗口释放资源的dispose()方法
查看>>
tp 引入phpexcel 进行单表格的导入,在线浏览
查看>>
jsp基础速成精华讲解
查看>>
URL to Blob
查看>>
bzoj 3643: Phi的反函数
查看>>
BizTalk Server 2009 Beta初体验
查看>>
HTML中解决双击会选中文本的问题
查看>>
3.单例模式-singleton
查看>>
说说Vue.js的v-for
查看>>
Java第四次作业
查看>>
屏幕录像软件 (Desktop Screen Recorder)
查看>>
【codevs1069】关押罪犯
查看>>
iOS 设计模式之单例
查看>>