架构设计文档

很多同学问做架构设计,怎么才能写出比较好的文档。其实很简单,都是有套路的,今天刚好借这个机会,和大家分享下一般做架构设计该怎么写文档。

背景

首先介绍下项目背景、基于什么原因需要需求。

  • 如果是新产品,描述下产品启动的原因和背景、产品定位
  • 如果是升级版本,描述升级需求、对原系统的影响,以及到达的预期效果

名词解释

文档中出现新的或者不常见的名词、概念给出定义和解释。

设计目标

实现功能

大致描述系统本身的功能性需求,不需描述外部依赖的系统。功能点之间的层级和关联关系要明晰。这里仅描述功能,不需要涉及实现方案、功能取舍等问题。

性能指标

描述系统性能需求。建议分条列出量化的性能指标,比如响应时间、超时率、资源占用、运行周期等。

系统环境

相关软件及硬件

在这里加入系统所需的软、硬件, 包括操作系统, 机器型号及配置要求。建议采用表格形式列出,最好还能规划出服务器和软件构件的部署图。

数据规模预估

通过经验或者调研,对数据规模进行估计,包括用户量、数据量、带宽消耗及增长速度等方面。

设计思路

描述系统设计中需要解决或考虑的关键问题或难点问题,解决这些问题可能有不同方案, 在这里加入方案设计的选择, 折衷及解释,并在后面的系统设计中对选中的方案给出进一步阐述。

建议分类列出,比如性能、可扩展性、安全性、服务稳定性、反作弊、复用等方面。建议使用调研数据支持设计方案的选择。

系统设计

基础介绍

对系统整体的简要说明。

系统架构图

把系统分解为若干子系统或模块,给出系统架构图,同时简单阐述每个模块完成的主要功能(必要时,给出模块划分的解释,即说明为什么把某些功能设计在某个模块中)。

系统流程图

通过流程图说明系统之间的模块是怎么交互来实现系统功能的

XXX 模块说明

XXX 模块功能

描述该模块要实现的功能,可以先简要描述,再分条列出。对于模块相关的关键功能和关键技术,也在此说明,供详细设计人员参考。

与其它模块的接口

在此描述该模块与系统内其它模块的接口,不包括模块内部的接口

风险评估

已知的或可预知的风险

在这里加上已经知道的或可能会发生的风险,包括技术、业务等方面。最好针对每个风险,列出相应的应对措施

与其它系统可能的影响

这里描述这些依赖关系可能带来的影响。包括本系统对其它系统可能造成的影响以及其它系统可能给本系统造成的影响两个方面

附件及参考资料

填写文档相关的附件或参考资料

硬广告

对高可用架构感兴趣的同学可以购买 <<带你玩转高可用>>。该专栏能切实帮助你提高架构可用性,实现高可用的目标。

同时,51CTO社区13周年庆期间(2018.8.15-2018.8.31),订阅2个专栏,送百元自选图书1本>>>图书挑选传送门

本专栏能收获什么

  1. 熟悉平台架构设计
  2. 优化架构产品
  3. 保证系统高可靠、高性能、高可扩展性

原文地址:http://blog.51cto.com/13527416/2164794

时间: 2024-08-01 23:29:12

架构设计文档的相关文章

撰写架构设计文档的心得体会

1.架构设计文档阅读对象: 是软件工程师,平台产品经理,不是乙方客户: 2.架构设计文档目的与意义: a.系统规划: b.有利于软件工程师的开展工作: c.便于分配工作,指导工作: 3.不在于篇幅,注重干货: 4.系统思维,全面思考,注重规划,关注设计,考虑细节,不局限细节,来解决实际问题: 如软件注册问题,涉及到用户安全.角色.权限.口令加密,验证码的问题. 5.平台总体架构不要照搬照抄的现有系统,分析现有系统的利弊,扬长避短,少走弯路,多走捷径,注重系统的可扩展,可伸缩,未来3-5年扩容与发

VM架构设计文档初稿v0.01

VM架构设计文档初稿v0.01 文档介绍 本文档是经过讨论,作为VM新架构设计开发中的重要依据.对该架构的整个系统的结构进行详实细致的描述.阐述框架结构,说明该架构所采取的设计策略和所有技术,并对相关内容作出统一的约定.为设计,编码,测试提供可以参考的模板和帮助.提高设计变更开发的效率,将头脑风暴的结果进行的具体的书面呈现. 架构设计思想 该架构VM以微服务思想为核心进行衍化,兼容DevOps作为主要基础,并使用DDD领域驱动设计思想作为设计过程中的指导思想及方法论. 架构体系描述 以分层体系作

50架构实战:架构设计文档模板

备选方案模板1. 需求介绍 [需求介绍主要描述需求的背景.目标.范围等] 2. 需求分析[5W1H8C] Who:需求利益干系人.消息队列系统主要是业务子系统来使用,子系统发送消息或者接收消息.When:需求使用时间.当子系统需要发送异步通知的时候,需要使用消息队列系统.What:需求的产出是什么.需要开发消息队列系统.Where:需求的应用场景.开发环境.测试环境.生产环境都需要部署.Why:需求需要解决的问题(与需求背景相关)消息队列系统将子系统解耦,将同步调用改为异步通知. How:关键业

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素

朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助你写出能让人收藏点赞的设计文档. 技术架构评审 架构评审或技术方案评审的价值在于集众人的力量大家一起来分析看看方案里是否有坑,方案上线后是否会遇到不可逾越的重大技术问题,提前尽可能把一些事情先考虑到提出质疑其实对项目的健康发展有很大的好处.很多公司都有架构评审委员会都有架构评审的流程,做业务的兄弟要

Chrome设计文档-多进程架构

chromium multi-process architecture 本文档从high-level的角度描述Chromium的多进程架构. 问题 要构建一个决不崩溃或挂起的渲染引擎几乎是不可能的.同样的,要构建一个100%安全的渲染引擎也是不可能的. 从某些角度来看,当今的web浏览器有点类似于过去的单用户,多任务操作系统.正如一个异常的程序会导致整个系统down掉,一个异常的网页也会导致一个现代浏览器挂掉. 现代操作系统之所以更加健壮利益于它们把应用放到隔离的进程中.一个应用的崩溃不会影响其

DDD领域驱动设计 - 设计文档模板

设计文档模板: 系统背景和定位 需求描述 系统用例图 关键业务流程图 领域语言整理,主要是整理领域中的各种术语的定义,名词解释 领域划分(分析出子域.核心域.支撑域) 每个子域的领域模型设计(实体.值对象.聚合.领域事件,需要注意的是:领域模型是需要抽象的,要分析业务本质,而不是简单的直接对需求进行建模) 领域模型详细说明(如为什么这样设计的原因.模型内对象的关系.各种业务规则.数据一致性规则等) 领域服务.仓储.工厂设计 Saga流程设计 场景走查(讲述如何通过领域模型.领域服务.仓储.Sag

CMU440-P2 Tribbler(类推特的发布订阅系统)设计文档

一.开发工具 1.    本项目使用Golang进行开发,主要有以下好处 Golang是一种类型安全(type-safe)的语言,并且自带垃圾回收机制,避开了许多底层语言如C/C++中的陷阱 引入了许多轻便实用性强的数据结构,比如变长数组,字典等 提供了大量的包其中包括网络库,RPC等供编程者使用,使得开发效率更高 Golang支持了一种相比传统的共享内存式的并发模型(比如Java threads)更加轻便抽象的并发模型(消息传递机制) 2.    版本控制工具采用git 3.    开发环境:

设计文档要如何写——转

一份设计文档的结构大概可以分成Background项目背景.Schedule排期.History版本历史记录.Information Architecture信息架构分析(包括Site Map.Experience Map.Flow等).Framework框架设计.Wireframe线框图和Mockup视觉稿等.取决于实际项目的情况,部分内容可以省略,也可以加入更多,比如Storyboard故事板,Prototype可交互原型等. 在过去,我一度没有什么规范的设计文档写作习惯,用纸笔画完Info

java智能四子棋人机大战游戏设计(附项目,以及原创PSD,设计文档)

本项目是使用java技术+自创"假设下子"算法开发的人机大战四子棋游戏客户端. 具体项目,以及原创PSD,设计文档,在文件末尾的百度云连接. 一. 小组说明: 组名:CST 组长:陈飞良(C): 组员: 沈珂 (S): 谭明航 (T): 二.分工说明: ①算法思想上: 本程序的代码实现思想由三人共同讨论得出,其中组员沈珂的"假设下子"思想尤为精妙,让代码实现更为简单,在这基础上,组员谭明航 ,心思缜密,考虑到各种特殊情况,让整个更加智能.组长陈飞良则负责在他们的基础