gpt4 book ai didi

uml - UML 中的领域模型?

转载 作者:行者123 更新时间:2023-12-04 22:21:04 25 4
gpt4 key购买 nike

我阅读了域模型及其重要性,我有以下疑问:

  • 领域模型可以解决什么样的问题?换句话说,对于每个问题,我应该建立一个域模型吗?
  • 据我所知,领域模型使用类图表示。类图和领域模型之间没有区别吗?
  • 我也想了解词汇与领域模型有什么关系?
  • 最佳答案

    What kind of problems can one resolve with domain models?



    几乎任何您想要/需要为其提供软件解决方案的问题都适合建模。事实上:无论你怎么做,你都必须以某种方式、形状或形式“建模”你的问题域。如果您不以某种方式捕获软件中问题的规则和策略,则最终系统不太可能满足其预期要求。

    in other words,for each problem I should build a domain model?



    这取决于您所说的“构建域模型”是什么意思。见上面和下面...

    As far as I know, The domain models are represented using class diagrams .there is no difference between class diagram and domain model?



    类图是建模域的一种方式。实际上,它们是对域的一部分进行建模的一种方式。类图的主要优点是它明确而清晰地揭示了问题空间中的关系。有一种观点认为,域的语义主要是通过概念(类)之间的关系产生的——比类本身更重要。如果您接受该意见,那么您可能/很可能会发现类图很有用。

    但是请注意,类图仅捕获域的结构元素:类、属性和关系。 CD 不捕获行为。如果要以任何有用的方式对问题空间进行建模,领域模型就需要结构和行为。所以你需要用一些行为描述来扩充类图;例如状态模型和/或 Action 。

    还有其他方法可以对域进行建模。它可以是一组 java/c# 类。这种方法的主要缺点是减少了对关系的重视。与类图不同,OO 语言不提供关系作为第一类结构。优点是编程语言环境(编辑器/编译器/库/语言运行时)为定义域的行为方面提供了比大多数建模工具更好的支持。

    更一般地说,没有规定域模型必须遵循 OO 范式。它可以是 Haskell 或 OCAML 中的一组函数和类型。或者它可能是一些微分方程或其他数学结构。

    关键是模型——无论如何表达——提供了问题空间的描述。为了有用,该描述将不完整 - 它只会捕获与系统要求相关的问题空间中的属性子集。有用但它应该是正确的 - 捕获的概念和行为应该准确地反射(reflect)正在建模的世界。

    I also would like to understand In which way is vocabulary related to a domain model?



    您可以将领域模型视为生成形式化且高度结构化的词汇表的一种方式。实际上,它也捕获了一些语法;例如它说“所有权”关系的参与者必须是狗和人;不是两只狗,或一个人和一个勺子。

    这就是 Eric Evans 在 Domain Driven Design 中所说的“无处不在的语言”。这意味着模型中使用的术语应准确反射(reflect)建模问题的术语。因此,如果现实世界的领域专家使用“人”和“狗”这两个词,则模型不应使用“智人”和“犬”。理由很简单:如果开发人员(建模人员)使用与领域专家相同的术语,那么误解的可能性就会小得多。由于每个人都使用具有共同含义的熟悉词,因此它还可以带来更富有成效和更愉快的对话。

    摘要
  • 领域模型是一种抽象。它代表了系统解决的实际问题所固有的概念、规则和策略的子集。
  • 类图是表示领域模型结构方面的一种方式。它没有捕捉动态方面。这些同样重要。
  • 还有其他方法可以对域进行建模。它们不限于面向对象的范式。
  • 领域模型应该是问题空间的结构化词汇。它应采用该领域专家使用的术语。

  • 嗯。

    关于uml - UML 中的领域模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20529071/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com