领域类图和设计类图有什么区别?

29

有人能简要解释一下域类图和设计类图的区别吗?

我在雅虎问答上找到了一个解释,但我觉得很混乱。

3个回答

49

领域模型在数据库建模中被称为概念模型,而设计模型则被称为逻辑模型

这些区别也在模型驱动开发中使用,其中我们有三种类型的模型:

  1. (与解决方案无关的)领域模型,是在开发项目的系统分析或始创阶段中从领域/需求工程中得出的;
  2. (与平台无关的)设计模型,是在详细阶段的系统设计活动中得出的,通常基于一个领域模型
  3. (特定于平台的)实现模型,可以是(例如JavaScript或Java EE)类模型、SQL表模型或其他类型的数据模型,派生自信息设计模型。

虽然系统建模包括信息和过程建模,但您似乎只关注信息建模。在此,我们可以使用“领域类图”和“设计类图”来表示以UML类图形式制作的概念信息模型和信息设计模型。

概念模型和设计模型之间,以及设计模型和实现模型之间的一对多关系如下图所示:

The one-to-many relationships in model refinement

考虑信息/类/数据建模,我们得到以下图片:

enter image description here

以下是一个人/Person概念/类模型的示例,说明了从概念到设计再到实现的推导链是如何工作的:

enter image description here

领域模型是软件工程项目分析阶段产生的与解决问题领域无关的描述。术语“概念模型”通常用作“领域模型”的同义词。领域模型可以包括域状态结构的描述(在概念信息模型中)以及其过程的描述(在概念过程模型中)。它们是解决方案无关或“计算无关”的,因为它们不涉及任何系统设计选择或其他计算问题。相反,它们侧重于领域专家的视角和语言。

在设计阶段,首先基于领域模型开发平台无关的设计模型,作为给定软件工程问题的一般计算解决方案。同一个领域模型可以潜在地用于生成许多(甚至是根本不同的)代表不同设计选择的设计模型。然后,通过考虑从架构风格、非功能质量标准到最大化的目标技术平台等实现问题的各种问题,从设计模型导出一个或多个平台特定的实现模型。

另请参见开放获取图书章节信息建模从信息设计模型导出表模型


18

如果你的重点在于 图表 本身,那么领域模型和设计模型的图表有两个很大的区别:(至少这是Larman的书应用UML和模式所说的)

  1. 在代表领域模型的UML图中,您不能使用箭头。所有类都通过一条线相互连接,表示“关系”,您应该在线上使用文本注释来说明它具体是什么关系。而在设计模型中,您必须使用箭头,所有类型的箭头:关联、继承等。

  2. 在设计模型中,您必须指定属性和方法等的类型,而在领域模型中,您只需将它们写出来即可,不需要任何额外的内容(就像在现实世界中一样)。例如,在设计模型中的 value: int 将被写为领域模型中的 value

参考:《应用UML和模式第三版》第9章和16章。


在领域模型中,它不能是 value: Integer 吗? - Alan

3

UML没有这样的图表。

Enterprise Architect有领域模型-请看维基

至于“类设计图”,它既不为EA,VP UML,也不是UML本身所知。我认为,通常指的是UML中的类图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接