领域驱动设计领域建模_1_模型驱动设计
前言
Github:https://github.com/HealerJean
前言
从架构映射阶段进入领域建模阶段,简单说来,就是跨过战略视角的限界上下文边界进入它的内部,从菱形对称架构的内外分层进入每一层尤其是领域层的内部进行战术设计。在思考如何进行领域建模时,首先需要思考的问题就是:什么是模型?”
一、软件系统中的模型
模型的重要性并不体现在它的表现形式,而在于它传递的知识。它是从需求到编码实现的知识翻译器,通过对杂乱无章的问题进行梳理,然后按照知识语义进行分类与归纳,遵循设计标准与规范建立一个清晰表达业务需求的结构。这个梳理、分类和归纳的过程就是建模的过程,建立的结构即模型。
二、 模型驱动设计
1、软件开发生命周期的各种活动
建模活动用灰色的椭圆表示,它涵盖了需求分析、软件架构、详细设计、编码与调试等活动,有时候,测试、集成和保障维护活动也会在一定程度上影响系统的建模。
为了便于更好地理解建模过程,将整个建模过程中主要开展的活动称为“建模活动”,并统一归纳为分析活动、设计活动和实现活动。每一次建模活动都是一次对知识的提炼和转换,产出的成果就是各个建模活动的模型。”
2、建模过程
完整的建模过程,就是模型驱动设计
毫无疑问,领域驱动设计选择的建模过程,实则是领域模型驱动设计。
数据模型:将问题空间抽取出来的概念视为数据信息,在求解过程中关注数据实体的样式和它们之间的关系,由此建立的模型就是数据模型;
服务模型:将每个问题视为目标系统为客户端提供的服务,在求解过程就会关注客户端发起的请求以及服务返回的响应,由此建立的模型就是服务模型;
领域模型:围绕着问题空间的业务需求,在求解过程中力求提炼出表达领域知识的逻辑概念,由此建立的模型就是领域模型。
三、领域模型驱动设计
1、领域模型
概念 | 说明 |
---|---|
领域分析模型 | 分析真实世界后提炼出的概念模型,就是领域分析模型(分析建模活动) |
领域设计模型 | 设计对领域模型的反映,就是领域设计模型(设计建模活动) |
领域实现模型 | 代码对领域模型的表达,就是领域实现模型(实现建模活动) |
2、领域模型与统一语言
统一语言为领域模型驱动设计提供了一致的领域概念,使得领域模型在整个领域建模阶段保持了同步。至于统一语言的获得,自然来自全局分析阶段获得的业务需求,如此就将全局分析与领域建模衔接在一起
3、迭代建模
分析、设计和实现并非3个割裂的阶段,而是领域模型驱动设计的 3 个建模活动。在领域驱动设计统一过程中,我将领域模型驱动设计的过程定义为领域建模阶段,主要执行3个过程工作流: