UML 中的域模型和概念图 class 有什么区别

What is the difference between a Domain model and a conceptual class diagram in UML

我有一项学校作业,要求我代表一家公司的系统,我将使用领域模型升级并绘制一个概念图 class 图表,其中包含以下四个最重要的用例系统。我真的不明白两者之间的区别,有人可以帮助我吗?

简而言之

领域模型和概念对不同的人有不同的含义。这些术语没有统一的权威定义。

尽管如此,客观上一个域不仅仅是相互关联的 class。如果我们认为概念意味着独立于任何解决方案实现,我们可以声称概念 class 图是域模型的子部分。

更多参数

领域模型描述了软件应为其提供解决方案的真实世界的元素。

例如,对于房地产申请:

  • 您将拥有“业务对象”,例如房地产资产(房屋、公寓……)、业主、租户、卖家、买家、代理人、合同、付款、地理区域等。
  • 但是你也会有领域逻辑,比如事物的生命周期:首先一方可以是资产的潜在客户,然后是访问后感兴趣的潜在客户,然后是投标人(如果提交了投标), .买家如果出价被接受。领域模型还可以描述业务规则,例如如果投标人提出的价格低于卖方要求的价格,代理必须确保在继续谈判之前征得卖方的同意。
  • DDD 从业者还会提醒我们,领域实体和聚合(事物)与表示实体和聚合发生的事情的领域事件相关。

因此,域不仅仅是相互关联的 class。如果您相信机器人,请想象一个模型-视图-控制器应用程序,其中模型会忽略业务逻辑:它有用吗?

术语“概念”是指独立于任何具体实现的抽象事物。在这方面,概念性 class 图原则上指的是描述领域的 classes 图,独立于任何 concrete/implementable 解决方案。

因此,UML 中的概念图 class 仅描述域模型的静态子部分。因为在构造上,class 图是为表示 classes 的静态结构而设计的。 UML 预见了其他图表来描述系统或其域的动态方面,例如 activity 图、序列图或状态图,它们允许关注域的某些动态部分。

所以概念图class只能是领域模型的一部分。

尽管如此,您仍会发现文章和同行使用术语“领域模型”来指代实体的“模型”。这是语言中的误导性快捷方式。