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

文章目录

  • 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.hqwc.cn/news/660733.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud学习笔记(二)Ribbon负载均衡、Nacos注册中心、Nacos与Eureka的区别

文章目录 4 Ribbon负载均衡4.1 负载均衡原理4.2 源码解读4.3 负载均衡策略4.3.1 内置的负载均衡策略4.3.2 自定义负载均衡策略4.3.2.1 方式一:定义IRule4.3.2.2 方式二:配置文件 4.4 饥饿加载 5 Nacos注册中心5.1 认识和安装Nacos5.2 服务注册到Nacos5.3…

【linux-1-Ubuntu常用命令-vim编辑器-Vscode链接ubuntu远程开发】

目录 1. 安装虚拟机Vmare和在虚拟机上安装Ubuntu系统:2. 常用的Ubuntu常识和常用命令2.1 文件系统结构2.2 常用命令2.3 vim编辑器 3. Ubuntu能联网但是ping不通电脑:4. Windows上安装VScode链接ubuntu系统,进行远程开发: 1. 安装虚…

qt5-入门-2D绘图-Graphics View 架构

参考: Qt Graphics View Framework_w3cschool https://www.w3cschool.cn/learnroadqt/4mvj1j53.html C GUI Programming with Qt 4, Second Edition 本地环境: win10专业版,64位,Qt 5.12 基础知识 QPainter比较适合少量绘图的情…

【webrtc】MessageHandler 2: 基于线程的消息处理:以PeerConnectionClient为例

PeerConnectionClient 前一篇 nullaudiopoller 并么有场景线程,而是就是在当前线程直接执行的, PeerConnectionClient 作为一个独立的客户端,默认的是主线程。 PeerConnectionClient 同时维护客户端的信令状态,并且通过OnMessage实现MessageHandler 消息处理。 目前只处理一…

【分享】如何将word格式文档转化为PDF格式

在日常的办公和学习中,我们经常需要将Word文档转换为PDF格式。PDF作为一种通用的文件格式,具有跨平台、易读性高等优点,因此在许多场合下都更为适用。那么,如何实现Word转PDF呢?本文将介绍几种常用的方法,帮…

Aker(安碁科技)晶振产品应用和选型

一、石英晶体振荡器简介 在电子电路系统中,特定的动作需要严格按照一定的顺序进行,以确保数据被正确处理和操作,时钟信号就成了系统工作的重要引导者。而且在多模块复杂电路系统中,为了确保不同功能模块能协调一致地工作&#xf…

怎么用微信小程序实现远程控制台球室

怎么用微信小程序实现远程控制台球室呢? 本文描述了使用微信小程序调用HTTP接口,实现控制台球室,控制球台上方的照明灯,单台设备可控制多张球台的照明灯。 可选用产品:可根据实际场景需求,选择对应的规格 …

Matlab生成txt文件导入到Vivado仿真

Matlab处理数据并将其写入txt文件 %% Txt Generate pre_RS_datadec2bin(simDataIn,8); %将数据转化为8bit的二进制 fidfopen("F:\FPGA\Xilinx_vivado\project\dvbstestbench\dbvs\matlab\pre_RS_data.txt","wt"); for i1:n*nMessages %数据…

【webrtc】MessageHandler 1: 基于线程的消息处理:以10毫秒处理音频为例

基于m98 G:\CDN\rtcCli\m98\src\audio\null_audio_poller.h分发的消息由MessageHandler 类通过其抽象接口OnMessage 实现处理 NullAudioPoller NullAudioPoller 是一个处理audio的消息的分发器 poll 启动:

Mybatis-Plus扩展接口InnerInterceptor

InnerInterceptor 接口就是 MyBatis-Plus 提供的一个拦截器接口,用于实现一些常用的 SQL 处理逻辑,处理 MyBatis-Plus 的特定功能,例如PaginationInnerInterceptor、OptimisticLockerInnerInterceptor 等,都实现了 InnerInterceptor 接口,并添…

SpringCloud 学习笔记 —— 六、Ribbon:负载均衡(基于客户端)

SpringCloud 学习笔记 —— 一、背景-CSDN博客 SpringCloud 学习笔记 —— 二、微服务与微服务架构-CSDN博客 SpringCloud 学习笔记 —— 三、SpringCloud 入门概述-CSDN博客 SpringCloud 学习笔记 —— 四、SpringCloud Rest 学习环境搭建:服务提供者-CSDN博客 …

Visual studio 2019 编程控制CH341A芯片的USB设备

1、硬件 买了个USB可转IIC、或SPI、或UART的设备,主芯片是CH341A 主要说明USB转SPI的应用,绿色跳线帽选择IIC&SPI,用到CS0、SCK、MOSI、MISO这4个引脚 2、软件 2.1、下载CH341A的驱动 点CH341A官网https://www.wch.cn/downloads/CH34…