【问题标题】:In UML class diagrams, what are Boundary Classes, Control Classes, and Entity Classes?在 UML 类图中,边界类、控制类和实体类是什么?
【发布时间】:2010-10-15 14:11:55
【问题描述】:

我现在使用 NetBeans 作为我的首选 IDE,它有一个用于 UML 建模的插件。在类图中,有称为Boundary ClassControl ClassEntity Class 的模型元素。但是,我找不到它们的好定义,但我确实在 UML 类图上找到了this site

【问题讨论】:

  • 维基百科解释了您需要了解的有关Entity-Boundary-Control pattern 和相关概念的所有信息。如果您需要了解更多信息,它提供了许多额外阅读资源。

标签: uml class-diagram ecb-pattern


【解决方案1】:

稳健性图是在用例之后和类图之前编写的。它们有助于识别用例步骤的角色。您可以使用它们确保您的用例足够健壮来代表您正在构建的系统的使用要求。

它们涉及:

  1. 演员
  2. 用例
  3. 实体
  4. 边界
  5. 控件

Model-View-Controller 模式用于用户界面,而实体控制边界模式 (ECB) 用于系统。如果有帮助,可以将 ECB 的以下方面比作 MVC 的抽象版本:

实体 (模型)
表示系统数据的对象,通常来自域模型。

边界 (查看/服务合作者)
与系统参与者交互的对象(例如用户外部服务)。窗口、屏幕和菜单是与用户交互的边界示例。

控件 (控制器)
介于边界和实体之间的对象。它们充当边界元素和实体元素之间的粘合剂,实现管理各种元素及其交互所需的逻辑。重要的是要理解,您可能决定在设计中将控制器实现为对象以外的其他东西——例如,许多控制器足够简单,可以作为实体或边界类的方法来实现。

四个规则适用于他们的沟通:

  1. Actor 只能与边界对象对话。
  2. 边界对象只能与控制器和参与者对话。
  3. 实体对象只能与控制器对话。
  4. 控制器可以与边界对象和实体对象以及其他控制器通信,但不能与参与者通信

允许通讯:

         Entity    Boundary   Control
Entity     X                     X
Boundary                         X
Control    X          X          X

【讨论】:

  • 从 cmets 来看,这个答案并不能帮助人们理解“实体边界控制”和 MVC 之间的区别。其中之一是边界不是视图;它是系统的一个元素,用于管理与设计区域之外的元素的通信,无论该区域可能是什么。例如,系统内的 PayPal REST API 外观可能是一个边界元素。此外,您的子系统可能有自己的边界。将此与视图进行比较,视图从任何角度来看始终是视图,并且始终面向用户。
  • 这个答案确实包括说同样的话:“边界:与系统参与者交互的对象(例如用户或外部服务)”。无论如何,我的观点是它们是不同的:ECB 不是 MVC 的“简化”。
  • 一点,UML 规范中似乎没有定义这些刻板印象...
【解决方案2】:

通常与 OOAD 和业务建模一起使用/作为其一部分。 Neil 的定义是正确的,但它与 MVC 基本相同,只是为了业务抽象而已。 “好的总结”做得很好,所以我不会在这里复制它,因为它不是我的工作,更详细但符合尼尔的要点。

Good summary - Conceito: Entity-Control-Boundary Pattern

OOAD

【讨论】:

  • 但是MVC只适用于视图层。
  • 答案应该包含信息,而不仅仅是链接到它。不幸的是,链接已失效。
  • @ted-johnson 有更新链接的机会吗?谢谢!
  • 更新了指向具有内容的类似网站的链接。
【解决方案3】:

这些是分析中使用的类原型。

  • 边界类是系统边界的类 - 您或其他系统与之交互的类

  • 实体类类是典型的业务实体,例如“个人”和“银行账户”

  • 控制类实现一些业务逻辑或其他

【讨论】:

    【解决方案4】:

    边界控制实体模式有两个版本:
    - 旧结构,在 127 中描述(实体作为数据模型元素,控件作为函数,边界作为应用程序接口)
    - 新的对象模式


    作为对象模式:
    - 边界是“另一个世界”的接口
    - 在任何内部逻辑中进行控制(如 DDD 模式中的服务)
    - 实体是对象的持久化服务(就像 DDD 模式中的存储库)。
    所有类都有操作(参见 Fowler 贫血域模型反模式)
    它们都是 MVC 模式中的模型组件。规则:
    - 只有边界为“另一个世界”提供服务
    - 边界只能调用 Controll
    - 控制可以呼叫任何人
    - 实体不能调用任何人(!),只能被调用。

    jz

    【讨论】:

      【解决方案5】:

      实际上,稳健性图(或分析图,有时被称为)只是专门的类图。它们是 UML 的一部分,并且从一开始就是(参见 Jacobson 的书,统一软件开发过程 - “三个朋友”系列书籍的一部分)。上述书在第 183-185 页对这三个类有很好的定义。

      【讨论】:

        【解决方案6】:

        据记录,Entity-Boundary-Control pattern 来自用例驱动的软件开发,比仅重用该概念的Scott Ambler's robustness diagrams 早得多。

        该模式不是 UML 的一部分,但与它密切相关,因为它是由 Ivar Jacobson(他于 1992 年发起)、Grady Booch 和 Jim Rumbaugh 推动的,他们是 UML 的创始人......过程(UP,RUP)。在 UML 中,它和其他任何东西一样只是刻板印象。

        Wikipedia 解释得最好,但控制类对应于用例,边界类对应于用例和参与者之间的关联,实体对应于被识别为参与用例。

        大多数 UML 工具与预定义的 BCE 构造型一起使用的循环符号也来自 Jacobson。稳健性规则只是上述用例映射的转置。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多