如何写系统方案设计文档?

如果真的要想学习东西,而且想学的更快更深入,就要关注自己如何集中注意力,要思考自己的思考方式,研究自己的研究方式。

文档结构基本原则:金字塔结构, 不仅是文档结构, 同时也是思考方式

文档结构汇总

1、概念名词解释

2、产品目标

3、业务介绍(why为什么做):背景、问题冲突、业务解决方案、业务价值

4、业务分析:列用例场景、提取概念模型、画核心业务调用、划分业务子域

5、系统设计:系统设计目标、系统如何交互、系统模型、技术架构

----------------------------------------------------------------------------------------------------------------

1、概念名词解释(了解业务的前提)

业务相关概念, 概念可以先做了解,或者在后续遇到时, 再来查阅

2、产品(项目)目标:业务目标、技术目标

什么目标:这里的目标是业务层面的目标,不是技术的目标

明确做什么:知道我们要做的是什么事情, 知道我们要干什么, 不是讲了半天, 根本不知道我们的目的是什么,这个是很严重的问题。

引出疑问:目标提出后,就会有疑问,为什么要提出这样的目标

3、业务背景、冲突、业务解决方案、业务价值

业务背景

问题冲突(提出疑问):某件或是某类事情, 导致出现问题

问题影响:分为业务上的, 技术上的影响, 或是痛点

可以描述问题的影响严重程度,比较有力的论据:通过真实案例,如产生公司资损;用户工单投诉

业务解决方案(疑问回答):是否能解决问题上面的, 技术开发也是需要考虑的

4、价值:业务价值、技术价值(主要介绍为什么做)


5、业务分析(疑问回答,领域建模角度:问题域)

适用场景:从0开始建设的系统;新的业务, 如果只是简单在原有基础上修改,不必这么复杂。当然, 以下可以做为参考, 如何解决问题域, 如何提炼概念模型,如何划分子域

5.1、用例

用例集合:场景 + 参与者, 这一步重要的一点, 场景一定要全,

5.2、概念模型(领域模型)

这里先统一下概念:概念模型也叫领域模型,概念实体,也叫领域对象。

从用例中找名词, 提取概念实体、概念包含的属性、概念与概念的关系(一对一, 还是一对多),这一步很重要,为后续的子域的划分、数据模型(数据库表)做准备

todo  具体参考方法,后续梳理。

5.3、核心业务画调用的时序图

概念模型已经梳理出来了, 业务功能、业务流程如何实现呢?

通过概念实体(在后续代码实现时,可以转化为领域对象)之间的调用关系,来实现业务功能、业务流程,具体使用时序图。

时序图可以思考每个概念实体的职责, 职责并不是拍脑袋的,有一定的原则

todo  具体原则,后续梳理。

1、业务执行清晰:方便、快速理解业务

2、梳理可复用的能力:提炼出每个领域对象需要哪些能力, 这里存在不同的场景使用相同的能力

5.4、划分子域

什么是子域?具体如何划分?

todo 后续完善

6、系统设计目标(提出疑问)

基本功能的实现:比如整个业务流程, 如何实现, 如何驱动整个流程向执行

扩展性:新的业务方接入是否可以快速接入;流程中的节点,是否有变化的可能,是否考虑后续的扩展。这里要注意的是:适度

兼容:与原有业务逻辑、实现, 是否兼容

安全:是否存在资损、并发是否有问题、接口是否支持幂等

还有其他的考虑, 后续再完善

7、系统设计(疑问回答,领域建构角度:问题解决域)

7.1、系统交互

按用户场景画, 一般画主的场景。 有交互, 站在建设的整体角度,梳理与外部上下游的交互,明确整个链路流程,确认每个系统(不是指某个应用)的边界。

7.2、系统模型

7.2、架构

上下游整个链路的改造

应用架构


8、稳定性

如何保证稳定性

9、问题及风险

你可能感兴趣的:(如何写系统方案设计文档?)