转自:http://www.habadog.com/2012/10/18/rd-how-to-write-document/

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倍计算;

我们在做压力测试时,需要关注压力达到“峰值QPS”时,服务器的cpu,内存,io,net等等服务器性能参数。

rd如何撰写总体设计文档和详细设计文档相关推荐

  1. python docx 合并文档 图片_MBT文档模型化生成工具——30倍效率文档撰写工程化方法...

    MBT(A model based document builder)文档模型化生成工具用户手册--30倍效率文档撰写工程化方法 1 简介 在软件工程领域,工程文档通常主要包括实施方案.需求分析.软件 ...

  2. 开发详细设计文档_郑州APP开发:开发前,进行详细设计有没有必要?

    郑州燚轩软件科技有限公司● 点击蓝字关注我们 ● 一般进行软件开发 的人都知道,在进行郑州APP开发时,项目流程主要包括需求分析.概要设计.详细设计.编码和测试 ,那么在其中有了概要设计的情况下,为什 ...

  3. 如何撰写产品需求文档_需求文档模板(产品功能类需求篇)

    前言 需求文档在产品整个开发过程中至关重要,设计根据需求考虑交互功能.需求沟通评审和开发.测试验收标准.文档知识沉淀问题记录等过程都依赖规范完整的需求文档,除功能内容全面外,整洁.易读也是需求文档的重 ...

  4. Java Swing Sqlserver实现的酒店管理系统附带详细设计文档免费下载

    今天给大家分享一款由Java swing sqlserver实现的酒店管理系统,整个系统功能非常完善,结构层次设计的也很合理,数据库采用的是sqlserver,此外附带有系统详细的需求文档,设计文档, ...

  5. 需求文档和设计文档的区别

    需求文档和设计文档的区别 需求文档是根据用户需求转化而来的技术实现需求,需要针对用户提出的产品目标进行细分,总结出具体的每一个功能点,再针对每一个功能点细分为各种不同的操作流程,对每一个操作流程进行技 ...

  6. html在分页功能中如何实现当前页面的页码样式与其他页面不同_如何使用word文档?word文档使用技巧教程?...

    Word文档使用方法与教程: 使用正确的部分和章节标题 我们在前面的章节中介绍了预设样式,但是这些样式可用于快速创建章节,子标题和标题页.在"主页"功能区选项卡中找到样式,可以在其 ...

  7. python技术文档_Python技术文档最佳实践

    所有好的产品都应该有一份简洁易读的使用说明书,除了苹果的产品.苹果认为他们的产品应该设计成为无须说明,用户天生就应该知道如何使用的那种. 但是很显然,对于软件来说,其复杂性之高,往往要求有与之配套的详 ...

  8. Word的样式库在 选项卡中_如何使用word文档?word文档使用技巧教程?

    Word文档使用方法与教程: 使用正确的部分和章节标题 我们在前面的章节中介绍了预设样式,但是这些样式可用于快速创建章节,子标题和标题页.在"主页"功能区选项卡中找到样式,可以在其 ...

  9. 智能文档理解:通用文档预训练模型

    预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...

最新文章

  1. reorder-list——链表、快慢指针、逆转链表、链表合并
  2. 【opencv】3.在一个opencv窗口中显示多个视频界面、画箭头、画掉头箭头
  3. 如果服务器开机显示NObootable,电脑不能开机提示No bootable device怎么办?
  4. 【Python基础】这份 pip 使用小抄,要有全有多全(建议收藏)
  5. 在shell中改变当前环境路径
  6. java中将字符串顺序反传转_如何在Java中将字符串序列化的Erlang术语反序列化为JInterface对象?...
  7. DCMTK3.6.0(MD支持库)安装说明-无图版
  8. 前端处理后台返回的流数据
  9. 博弈论 斯坦福game theory stanford week 2.1_
  10. CIO圈子—CIO成长交流的平台
  11. 试题 算法训练 印章
  12. jQuery视频和图片轮播js特效
  13. 如何屏蔽 iOS 软件自动更新,去除更新通知和标记
  14. kali系统的部分查看命令
  15. mac下Sed批量替换文件字符串
  16. 现代计算机的工作原理是什么和什么,计算机的工作原理是什么
  17. mysql mmm 读写分离_MySQL/MariaDB基于MMM实现读写分离及高可用
  18. SQL计算日环比、周同比
  19. 【问链财经-区块链基础知识系列】 第四十五课 一文读懂保理业务的操作流程
  20. SDH,OTN,IP,MPLS,ATM网络介绍

热门文章

  1. 教教大家vmware虚拟机安装win11的方法
  2. 幸运数 c++程序(详解,附完整代码)
  3. (半平面交)POJ2451Uyuw‘s Concert
  4. PL0扩展一维数组array
  5. 录像机前面板指示灯显示详解
  6. Raspberry Pi 4b点亮树莓派桌面(官方烧录工具)
  7. OpenStack Victoria版——6.2计算节点-Nova计算服务组件
  8. SQL六大约束!!一点就通
  9. php实现24点游戏,24点游戏的开发和实现(VC++)
  10. Python基础教程读书笔记(第5章—第6章:条件、循环和其他语句;抽象)