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


85

我现在使用NetBeans作为我的选择,并且它具有用于UML建模的插件。在类图,有被称为模型元素Boundary ClassControl ClassEntity Class。但是,我找不到它们的良好定义,但是我确实在UML类图上找到此站点

Answers:


23

通常与OOAD和业务建模一起使用或作为其一部分。Neil的定义是正确的,但它与MVC基本相同,只是为业务而抽象。“好的摘要”做得很好,因此我将不在这里复制它,因为它不是我的工作,更详细,但与Neil的要点一致。

好的摘要-Conceito:实体-控制-边界模式

OOAD


3
但是MVC仅用于视图层。
Alex78191 '16

2
答案应该包含信息,而不仅仅是链接。不幸的是,链接已死。
约翰

2
@ ted-johnson是否有机会更新链接?谢谢!
Narshe

更新了指向具有内容的类似网站的链接。
泰德·约翰逊

196

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

它们涉及:

  1. 演员们
  2. 用例
  3. 实体
  4. 界线
  5. 控制项

尽管Model-View-Controller模式用于用户界面,但是Entity-Control-Boundary模式(ECB)用于系统。如果有帮助,可以将ECB的以下方面比作MVC的抽象版本:

UML表示法

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

边界 (视图/服务协作者)
与系统参与者(例如,用户外部服务)交互的对象。Windows,屏幕和菜单是与用户进行交互的边界的示例。

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

交流有四个规则:

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

允许交流:

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

12
从评论来看,这个答案并不能帮助人们理解“实体边界控制”和MVC之间的区别。其中之一是边界不是视图。它是系统的一个元素,用于管理与正在设计区域之外的元素的通信,无论该区域可能是什么。例如,系统内部的PayPal REST API门面可能是边界元素。此外,您的子系统可能有自己的界限。将此视图与一个视图进行比较,从任何角度看,该视图始终是视图,并且始终面向用户。
DavidS

2
这个答案确实包含了同样的意思:“边界:与系统参与者(例如,用户或外部服务)交互的对象”。无论如何,我的观点是它们是不同的:ECB并不是MVC的“简化”。
DavidS

一点,这些刻板印象似乎未在UML规范中定义...
granier

16

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

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

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

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


5

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


作为对象模式:
-边界是“ “其他世界”
-在任何内部逻辑中进行控制(例如DDD模式中的服务)
-实体是对象的持久性服务(例如DDD模式中的存储库)。
所有类都有操作(请参阅Fowler贫血领域模型反模式),
所有这些都是MVC模式中的Model组件。规则:
-只有边界为“其他世界”提供服务
-边界只能呼叫Controll-
控件可以呼叫任何人
-实体不能呼叫任何人(!),只能被呼叫。

z


4

实际上,稳健性图(有时也称为分析图)只是专门的类图。它们是UML的一部分,并且从一开始就已经存在(请参阅Jacobson的书,统一软件开发过程,这是“三友”系列丛书的一部分)。前面提到的书在pp 183-185上对这三个类别有很好的定义。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.