xx系统分析说明书
版本号 |
作者 |
内容提要 |
修订日期 |
V0.1 |
XX |
系分初版 |
2021.01.06 |
V0.2 |
YY |
完善性能部分 |
2021.01.16 |
1. 需求概述
对需求进行描述,保证和产品、测试理解一致即可
如果是技术改造,需要对改造原因进行描述
1.1 术语
名词 |
名字解释 |
麦座 |
票务Saas解决方案 |
1.2 背景&目标
背景 |
|
业务目标 |
|
系统目标 |
|
2. 整体分析
2.1 系统架构设计
新增场景:体现架构设计,同时联系中台架构接口人更新麦座整体架构
修改场景:体现修改前后的架构设计,同时联系中台架构接口人更新麦座整体架构
2.2 业务用例
列举本次需求改动影响的所有“场景”,这里可以用excel、脑图、用例图都可以
建议使用脑图,一级场景,二级接口,三级分支
这里描述的业务用例更多是用例层面的,代码改动影响其他接口的建议也标注出来
麦座对已有用例图积累的比较少,还是已脑图形式体现影响范围更好一些。
2.3 业务流程
建议必填
相当于需求概述的流程图,能体现出不同模型(或系统)之间的指责
2.4 领域模型图
若没有涉及领域模型的新建或变更,则可以不填写
如果涉及到模型变更和状态机的变化,可以在这里体现
3. 详细分析
3.1 系统依赖关系
若没有涉及到多个系统的交互,则可以不填写
例如
3.2 系统交互时序(时序图)
(1)画图工具统一调整为 visual paradigm 社区最新版:https://www.visual-paradigm.com/download/community.jsp
(2)如果需要反向工程的话可以考虑集团的旧版本:https://www.atatech.org/articles/43781?spm=a1z2e.8101737.webpage.dtitle4.42026a6ck6fcmm
建议从以下几个点考虑异常场景
- 服务依赖:依赖的服务是弱依赖还是强依赖,对依赖服务的响应时间是否有要求,对其超时时间的配置是否合理,当依赖服务出现问题时是否可以降级或者故障隔离。
- 数据一致性:网络或者系统异常时服务提供方和服务使用方的数据一致性,如A调用B,B处理成功,但是由于网络等原因返回A失败,或者A调用完B后的处理异常,怎么保障数据一致性。
- 幂等:为保障数据一致性,上游系统可能会重试,或者网络重发,消息重发等,幂等控制是否有效,幂等返回结果处理是否正常。
- 并发:只要是数据有关系的处理流程都可能涉及并发问题,不同主流程或者主流程和定时任务等,数据表的唯一性约束是否有效。
- 事务:事务内的异常是怎么处理的,是否存在异常但事务无法回滚的情况。
- 消息:消息的发送和回查,消息的发送异常是否需要感知。
- 定时:定时任务捞取条数,范围,频次,失败降级策略。
系分评审就要有接口文档
提供接口文档地址:基础描述和语雀地址
依赖接口文档地址:基础描述和语雀地址
3.3 数据库变更
若没有涉及数据库变更,则可以不填写
标识新增字段、删除字段、还是修改索引(结合数据量并请DBAreview)、数据订正之类、数据库实体关系
交易、生产、会员等影响数据库变更要考虑对报表的影响
ALTER TABLE `enroll_info` ADD COLUMN `order_number` bigint(20) NULL COMMENT '订单号', MODIFY COLUMN `pay_status` tinyint NULL COMMENT '支付状态:1=待支付,2=已支付,5=超时未支付',
备注:数据库脚本要结合线上业务调用量,考虑现有索引的合理性、是否需要增加索引以避免慢SQL。
3.4 其他
如果使用了一些新的关键技术、第三方框架等,可补充在这边。
备注: 使用新的关键技术、第三方框架; 研发人员要考虑运维成本和自己知识储备和驾驭能力
4. 非功能场景分析
每个子项必须要考虑,如没有则填无
4.1 兼容性
- 原有的功能上新增、修改、删除,不管是db、模型、消息、接口服务,兼容性务必考虑
- 新老数据兼容
- 数据库新增字段默认值
- 接口变化对未发布的消费方是否兼容
4.2 资损
- 分析项目中是否存在资损风险点
- 针对资损点需要哪些监控或者核对
- 有什么应急处理方案
- 接口一致性方案,如果有
- 核心字段一致性检测,如果有
4.3 性能
- 业务上是否有性能要求
- 系统变更本身是否会引发性能问题,如是否有批量操作,较长的流程设计,DB操作次数及耗时,复杂对象解析等
- 依赖外部服务变更是否会引发性能问题,如新增依赖服务的性能
4.4 安全
- 需求是否有安全性要求
- 权限、敏感信息、CTU、第三方安全、加密等
- 咨询安全工程师,听取安全建议
4.5 需求报表
- 需求是否需要埋点反馈需求上线效果到业务、产品、开发
- 需求是否开发需求报表体现需求效果给到商户
5. 三板斧
每个子项必须要考虑,如没有则填无
5.1 灰度方案
- 如果存在switch开关,备注灰度的维度,如果是商户或租户灰度,要有灰度计划,否则评审不通过
- 如果是灰度环境SPE,需要说明怎么保证前后端兼容
5.2 监控方案
- xflush地址
- alimonitor地址
- 日志埋点、监控报警方案&报警群
5.3 回滚方案
- 如果Aone回滚,要声明是否有其他应用需要回滚
- 如果是Switch开关回滚,前端是否需要回滚,其他依赖系统是否需要回滚
5. 参与评估人员
开发:XX
测试:XX
CR:XX
需求评估人:XX
评估结论:通过、不通过(本次原因说明)
PM:XXX
架构:XX
主系分人:XXX
前端主系分:XXX
POS主系分:XXX
XXX主系分:XXX
里程碑:
整体联调时间
用例评审时间
代码CR时间
提交测试时间
6. 工作量拆解
初期建议精确到0.5人日,项目更加可控
每个工作项的工作量建议不超过1人日,对于项目管理者可以确定每天都有进度