后端方案设计文档结构模板可参考

server/2024/11/17 5:28:48/

文章目录

  • 1 方案设计文档整体结构
  • 2 方案详细设计
    • 2.1 概要设计
    • 2.2 详细设计方案
      • 2.2.1 需求分析
      • 2.2.2 业务流程设计
      • 2.2.3 抽象类:实体对象建模
      • 2.2.4 接口设计
      • 2.2.5 存储设计

1 方案设计文档整体结构

一,现状:把项目的基本情况和背景都说清楚,让大家达成一个共识,才能进行后面的方案评审和讨论1、业务背景:业务(项目)的基本介绍2、技术背景:现有技术积淀、架构描述、系统的整体容量二,需求:技术方案一切都是围绕需求来设计,需求清楚之后才能比较好的去评审你的方案1、业务需求:业务具体要做的事情2、业务痛点3、性能需求三,方案描述:把相关可能的方案都描述清楚【可选】1、方案1概述详细说明性能目标性能评估方案优缺点2、方案23、方案对比四,线上方案:倾向的方案更为细致的描述1、架构图:指出关键设计点和设计折衷2、流程图:分业务场景把重要的业务场景的流程图3、模块划分:针对这个业务流程的各个环节来划分模块4、时序图:5、存储设计表结构设计数据库E-R关系6、接口定义:列举出接口的结构,参数,返回值等5、异常边界【重要】模块流程可能出现的异常情况处理方式6、统计、监控7、灰度、回滚策略8、容灾方案五,部署拓扑:线上部署拓扑如何,上下游是如何六,风险评估潜在风险七,阶段规划【架构演进规划】1、第一阶段2、第二阶段3、第三阶段八,工作量评估每个模块、每个接口的设计分别需要多长时间,一定要同时包括开发时间、联调时间、测试时间

2 方案详细设计

从概要设计到详细设计,从用户需求——>产品文档梳理——>功能设计——>代码开发

这是一种自上而下的设计,需要从用户视角去看系统,有什么缺失,如果有所缺失,应该主动跟进,push缺失部分的完善,而不是相互甩锅,这部分应该是谁谁谁做,不是我们做。实现合作方之间的相互push,一起把产品做好。

2.1 概要设计

包括:

  • 业务架构:从业务用户角度进行考虑,由哪些功能模块组成,https://zhuanlan.zhihu.com/p/342136194

业务架构图一(三步画出产品业务架构图) - 知乎

  • 应用架构:IT系统功能和技术实现,从应用部署服务进行考虑,从开发的角度来考虑功能模块与服务之间的关系,UI层、网关接入层、应用层、基础设施层(微服务之间的关系)

在这里插入图片描述

  • 部署架构:服务之间如何进行部署,用户、网关、网络、防火墙、存储,从用户到存储的全部过程
  • 系统迁移:上线方案,旧有系统如何进行无缝迁移

2.2 详细设计方案

实际上针对的就是业务架构进行下钻,进行更详细的设计,每一层级都基于上一层级所输出的内容,采用的是“结构化思维”

2.2.1 需求分析

这里的需求并非产品经理识别用户需求里面的用户需求,而是针对已有的产品文档输出开发的需求

对于这个服务系统,用户有哪些功能需求,分析之后输出用例图

根据所有用户的用例图,可以从中抽象出功能模块
在这里插入图片描述

2.2.2 业务流程设计

根据需求分析得出的用例图,找到用例图中的核心功能,输出序列图(时序图),有时候业务的流程会比较复杂,涉及到多种角色,这时就可以使用时序图来梳理这个业务逻辑。这样会使业务看起来非常清晰。

实际上越是复杂的功能越是需求进行绘制序列图,通过序列图来理清几个服务之间的交互关系,而这其中的【服务】就对应这应用框架中的【应用】

时序图

  • 每个步骤,增加文字解释+接口设计,文字解释给评审的相关人员看,接口设计给自己开发时使用,实际上也有了接口设计。
  • 每一步的流程交互,在重要的地方可以尽量详细,也就是详略得当,对着就可以进行开发。

绘制参考文章:

  • http://www.objie.com/article/6034b11a15c40100118fef6c
  • https://www.cnblogs.com/54chensongxia/p/13236965.html

程序员必备画图技能之——时序图- 程序员自由之路- 博客园

在线绘图工具,ER模型设计-登录时序图.xml,uml序列图,uml时序图,visio时序图,visio序列图,序列图怎么画,时序图怎么画,系统时序图-

2.2.3 抽象类:实体对象建模

根据核心功能的时序图,分析时序图中涉及有哪些关键的类,这些关键类,又有哪些关键属性,实际上是为了梳理出类与类之间的关系,对应了写代码的思路

有了关键类,则可以为后续的存储设计,数据库表设计,进行参考

英文书写,类名最好直接对应与最后的开发类名

参考文档:http://www.objie.com/article/613ab8af0763c30011fa8daf

软件开发设计文档之「类图」

2.2.4 接口设计

业务流程设计输出的时序图服务与接口设计

2.2.5 存储设计

实体对象建模输出的UML类图服务于存储设计


http://www.ppmy.cn/server/32473.html

相关文章

美国国防部数据网格参考架构概述(上)

文章目录 前言一、概述二、DRMA基本概念三、DRMA的能力视图与运行视图前言 美国国防部正在努力成为“一个以数据为中心的组织,以速度和规模优势使用数据,从而获得作战优势并提高效率。”企业数据网格服务(又称数据集成层)是美国国防部首席数字与人工智能办公室(CDAO)为支…

AST原理(反混淆)

一、AST原理 jscode var a "\u0068\u0065\u006c\u006c\u006f\u002c\u0041\u0053\u0054";在上述代码中,a 是一个变量,它被赋值为一个由 Unicode 转义序列组成的字符串。Unicode 转义序列在 JavaScript 中以 \u 开头,后跟四个十六进…

亿图图示使用教程

亿图图示是一款功能强大的图形绘制软件,可以用来创建各种类型的图表、流程图、思维导图等。本教程将介绍亿图图示的基本使用方法和一些高级功能。 一、安装亿图图示 下载亿图图示安装包:在亿图图示官网(www.edrawsoft.cn)下载安…

恶补《操作系统》4_2——王道学习笔记

4.1_5 文件存储空间管理 1、存储空间的划分与初始化 文件卷(逻辑卷)的概念目录区与文件区 2、几种管理方法 空闲表法:首位置长度,回收时注意修改空闲链表法(空闲盘块链、空闲盘区链)位示图法 成组链接法…

中文NLP一般流程

一.获取语料(数据信息) 语料:一种语言学研究的内容。语料是构成语料库的最基本单元。所以,人们简单地用文本进行表示, 并把文本中的上下文关系作为现实世界中语言的上下文关系的替代品。通常将一个文本集合称为语料库(Corpus),当有几个这样的…

初学python记录:力扣1235. 规划兼职工作

题目: 你打算利用空闲时间来做兼职工作赚些零花钱。 这里有 n 份兼职工作,每份工作预计从 startTime[i] 开始到 endTime[i] 结束,报酬为 profit[i]。 给你一份兼职工作表,包含开始时间 startTime,结束时间 endTime …

c#使用Elastic.Clients.Elasticsearch 库进行ElasticSearch的增删改查操作,根据变量动态构建查询条件。

实体类Shop结构: public class Shop {public string UUID { set; get; }public string ItemType { set; get; }public long ItemId { set; get; }public string ItemName { set; get; }public long Gold { set; get; }public long Number { set; get; }public string Data { s…

14_Scala面向对象编程_属性

属性 1.类中属性声明 // 1.给Scala声明属性;var name :String "zhangsan"val age :Int 302.系统默认赋值 scala由于初始化变量必须赋值,为了解决此问题可以采用下划线赋值,表示系统默认赋值 , –但是此方法局限于变量&…