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

问题描述 投票:19回答:3

有人可以简要解释域类图和设计类图之间的区别吗?

我找到了关于Yahoo answers的解释,但我发现它很混乱。

uml modeling
3个回答
31
投票

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

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

  1. (解决方案无关的)域模型,由域/需求工程在系统分析或开发项目的初始阶段产生
  2. (平台无关的)设计模型,由精化阶段的系统设计活动产生
  3. (特定于平台的)实现模型,它们源自设计模型

虽然系统建模包括信息和流程建模,但您似乎只关注信息建模。在这里,我们可以使用术语“域类图”和“设计类图”作为概念信息模型和以UML类图形式制作的信息设计模型。

[以后的说明/图表已在2016年9月和2019年3月添加]

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

The one-to-many relationships in model refinement

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

enter image description here

作为说明从概念到设计到实现的派生链如何工作的示例,请考虑以下人员/人员概念/类的模型:

enter image description here

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

在设计阶段,首先是一个独立于平台的设计模型,作为给定软件工程问题的通用计算解决方案,是在域模型的基础上开发的。可以使用相同的域模型来生成表示不同设计选择的许多(甚至是根本上)不同的设计模型。然后,通过考虑从架构风格,要最大化的非功能性质量标准(例如,性能,适应性)和目标技术平台的许多实现问题,从设计模型导出一个或多个平台特定的实现模型。

另见http://web-engineering.info/book/WebApp1/ch05s03.html


14
投票

如果您关注的是图表本身,那么关于领域模型的图表和关于设计模型的图表之间存在两个巨大差异:(至少这是Larman书中应用UML和模式所说的)

  1. 在表示域模型的UML图中,您不能使用箭头。所有类都与一条线相互关联,这表示“关系”,你应该在线条上使用文本注释来说明它究竟是什么关系。在设计模型中,你必须使用箭头,所有类型的箭头:关联,继承......等
  2. 在设计模型中,您必须指定属性和方法等的类型,而在域模型中,您只需要编写它们而不需要任何其他内容(就像在现实世界中一样)。例如,设计模型中的value: int将在域模型中编写为value

参考:应用UML和模式第3版第9章和第16章。


3
投票

UML没有这样的图表

Enterprise Architect有域模型 - 看看wiki

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

© www.soinside.com 2019 - 2024. All rights reserved.