领域模型
领域模型
领域模型(domain model)是对领域内的概念类或现实世界中对象的可视化表示。领域模型也分为概念模型、领域对象模型和分析对象模型
如何进行领域建模
用例分析法是进行领域建模最简单可行的方式。其步骤如下:
- 1.获取用例描述
- 既然我们的领域模型指的是问题域模型,那么建模也一定要从问题域入手。那么问题域的知识如何表现出来呢,一个最常见的方式就是通过用例,也可以通过场景Scenario来分析——总之就是一段格式化的需求文字描述。
- 2.寻找概念类
- 寻找概念类就是对获取的用例描述进行语言分析,识别名词和名词短语,将其作为候选的概念类。
- 当然,需求描述中的名词不可能完全等价于概念类,自然语言中的同义词、多义词都需要在此处进行区分。还有很多名词可能只是概念类的属性,不过没关系,在这一步骤可以都提取出来,在第四步再区分出概念类和属性。
- 3.添加关联
- 关联意味着两个模型之间存在语义联系,在用例中的表现通常为两个名词被动词连接起来:
- 4.添加属性
- 对于上文抽取到的名词列表,我们需要区分概念类和属性(当然名词列表也会有无用的词语)。
- 如何判断一个名词是否是属性?
- 能完全通过基本数据类型(数字、文本、日期)表达的大多是属性。
- 如果一个名词只关联一个概念类,并且它自身没有属性,那么他就是另一个概念类的属性。
- 注意这里表达的依然是业务概念,外键ID不是属性
- 5.*模型精化
- 模型精化是可选的步骤,有时我们希望在领域模型中表达更多的信息,这时会利用一些新的手段来表达领域模型:包括泛化、组合、子域划分等
- 领域模型可以使用UML的泛化和组合表达模型间的关系,他们表达的是概念类的”is-a”和”has-a”的关系,并不是实现的软件类的关系。然而,也一些方法论中并不建议使用这种方式来表达领域模型,因为这种精化的领域模型不利于和需求方沟通。
- 子领域划分是常见的拆解领域的方式,通常来说我们会将更内聚的一组模型划分为一个子领域,形成更高一层的抽象。利于系统的表达和分工。
DDD的方法
四色建模法
DoDAF
飞马模型(蚂蚁金服内部)
参考
http://fanyilun.me/2018/04/08/谈谈领域建模/
https://posts.careerengine.us/p/5ebcd610ade20a6a38452bc7