业务领域建模Domain Modeling
首先介绍一下领域建模的相关知识:
领域建模是什么:
理论派观点:
- Domain Model是一个商业建模范畴概念,即使一个企业不开发软件,也具备其业务模型;
- 所有同行企业,其业务模型必定有非常大的共性和内在的规律性。
- 由行业内的各个企业的业务模型再向上抽象出整个行业的业务模型,这个模型称之为“领域模型”。
实战派观点:
- 领域模型是一个分析模型,帮助系统分析人员、用户认识现实业务的工具,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。
- 是需求分析人员与用户交流的有力工具,是彼此交流的语言。
领域模型是一种特殊业务模型,作用都是:
- 帮助分析理解复杂业务领域问题。
- 行业内沟通、交流。
如何进行领域建模,下面我将从以下四个方面结合为的工程实践进行领域建模:
1、收集应用程序域信息,关注功能要求–还考虑其他要求和文件。
2、头脑风暴,列出重要的应用程序域概念–列出它们的属性/属性–列出它们之间的关系。
3、将领域概念分为:类–属性/属性值–关系,关联,继承,聚合。
4、使用UML类图记录结果
我的工程实践题目是加密类印章的智能检测。
(1)功能需求大致如下图所示:
(2)下面我们选择头脑风暴的形式从User Story去找出领域对象
用户是一个领域对象
带有印章的图片是一个领域对象
印章的类型和印章的位置是图像的属性
识别这个动词暗示我们这里用观察者模式会比较合适
不是所有的名词都是领域对象也可能是属性,也不是所有的动词都是方法也可能是领域对象,再者,看的见实体好找,看不见的、隐藏的,需要深入理解业务,需要“无中生有”才能得到的抽象就没那么容易发现了,所以要具体问题具体对待。
(3)下面将领域概念分为 类–属性/属性值–关系,关联,继承,聚合。
类主要有属性和方法构成。类是具有相同属性和操作的对象集合的总称。它是面向对象的一个基本概念,类封装了客观世界中对象实体的特征与行为,即属性与方法。
•聚合是关联的一种,是较强的关联
•组合也是关联的一种,是比聚合更强的关联
(4) 以下是结合工程实践所做的类图