在UML类图中,什么是边界类、控制类和实体类?

在UML类图中,什么是边界类、控制类和实体类?,uml,class-diagram,Uml,Class Diagram,我现在选择使用NetBeans作为IDE,它有一个用于UML建模的插件。在类图中,有称为边界类、控制类和实体类的模型元素。然而,我找不到它们的好定义,但我在UML类图上找到了它们。这些是分析中使用的类原型 边界类是位于系统边界的类,即您或其他系统与之交互的类 实体类是典型的业务实体,如“个人”和“银行账户” 控制类实现一些业务逻辑或其他 通常与OOAD和业务建模一起使用/作为OOAD和业务建模的一部分。Neil的定义是正确的,但它基本上与MVC相同,只是针对业务进行了抽象。“很好的总结”做得很

我现在选择使用NetBeans作为IDE,它有一个用于UML建模的插件。在类图中,有称为
边界类
控制类
实体类
的模型元素。然而,我找不到它们的好定义,但我在UML类图上找到了它们。

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

  • 边界类是位于系统边界的类,即您或其他系统与之交互的类

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

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


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


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

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

它们涉及:

  • 演员
  • 用例
  • 实体
  • 边界
  • 控件
  • 该模式用于用户界面,而实体控制边界模式(ECB)用于系统。如果有帮助的话,ECB的以下方面可以比作MVC的抽象版本:

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

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

    控制(控制器)
    在边界和实体之间进行调解的对象。它们充当边界元素和实体元素之间的粘合剂,实现管理各种元素及其交互所需的逻辑。重要的是要理解,您可能会决定在设计中实现控制器,而不是对象——例如,许多控制器非常简单,可以实现为实体或边界类的方法

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

  • 参与者只能与边界对象对话
  • 边界对象只能与控制器和参与者对话
  • 实体对象只能与控制器对话
  • 控制器可以与边界对象和实体对象以及其他控制器对话,但不能与参与者对话
  • 允许通信:

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

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


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


    jz

    从评论判断,这个答案并没有帮助人们理解“实体边界控制”和MVC之间的区别。其中之一是边界不是视图;它是系统的一个元素,管理与设计区域之外的元素的通信,无论该区域可能是什么。例如,系统中的PayPal REST API外观可能是一个边界元素。此外,子系统可能有自己的边界。将其与视图进行比较,视图始终是从任何角度来看的视图,并且始终面向用户。这个答案确实包括说同样的话:“边界:与系统参与者(例如,用户或外部服务)交互的对象”。无论如何,我的观点是它们是不同的:ECB不是MVC的“简化”。有一点,这些原型似乎没有在UML规范中定义……但MVC仅用于视图层。答案应该包含信息,而不仅仅是链接到它。很遗憾,链接已失效。@ted johnson有机会更新链接吗?谢谢更新了指向包含内容的类似网站的链接。