一、项目介绍
业务背景
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-4.png)
团队背景
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-5.png)
客户背景
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-6.png)
案例优势
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-7.png)
二、建模与设计的整体流程
2.1四个阶段
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-8.png)
2.2 参与人员
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-9.png)
2.3 用户故事
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-10.png)
2.4 通用语言
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-11.png)
2.5战略设计
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-13.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-12.png)
2.6战术设计
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-14.png)
2.7 常用建模方法
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-15.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-16.png)
三、如何建立模型?从用户故事到通用语言
3.1 用户故事
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-17.png)
用户故事验证:Who? What? Hay
验证方法:卡片->谈话->验收标准
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-18.png)
常规用户故事缺点:容易漏掉关键细节
3.2 Domain story telling
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-20.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-19.png)
四、分解问题:领域划分和子域
本章问题:
- 什么是领域划分和子域?领域划分就是以分离关注点为原则对问题空间的划分。子域是领域中某个方面的问题和解决它所涉及的一切。
- 为什么要进行领域划分?
- 基于用户故事分解的领域划分方法。
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-21.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-22.png)
4.1为什么要划分?
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-24.png)
问题一:问题点和领域知识重叠
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-23.png)
问题二:模型重叠
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-27.png)
解决方法:
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-26.png)
4.1 基于故事分解的领域划分
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-28.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-29.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-30.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-31.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-32.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-33.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-34.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-35.png)
五、确定系统最核心的部分:核心域和精炼
5.1 子域的类型
- 核心域:软件系统具备竞争力的系统(最核心的技术人员应该投入到核心域,但目前更多的大牛会把经历投入到支撑子域,做框架,但这种要尽可能的避免)
- 通用子域:
- 支撑子域:类似于系统框架
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-36.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-37.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-38.png)
六、限界上下文
本章问题:
6.1什么是限界上下文
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-39.png)
6.2为什么需要限界上下文
- 自然语言具有模糊性
- 同一个事物面向不同场景有不同模型
- 软件系统需要分解模型以控制复杂度
- 限界上下文是分工的单位
6.3 怎么限界上下文
如何划分限界上下文?
- Domain StoryTelling (领域故事陈述法):
- Event Storming (事件风暴法)
- 基于子域概念提取
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-40.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-41.png)
七、多个上下文如何协作?上下文映射
什么是上下文映射?
- 上下文映射是指限界上下文之间的模型映射关系;
- 描述团队之间的协作关系以及上下文之间的集成关系;
- 决定上下文之间如何集成?及如何设置防腐层;
常见的问题是,上下文和上下文之间会有重叠,比如下图:
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-43.png)
上下文类型:
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-44.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-45.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-49.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-46.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-48.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-50.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-51.png)
中台一般为客户/供应商模式,但中台很容易变成大泥鳅。
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-52.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-54.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-55.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-56.png)
![](https://blog.claves.cn/wp-content/uploads/2021/11/image-57.png)