是否可以在EA类图中使用球和套接字表示法?

Seb*_*n K 5 uml enterprise-architect

球和插槽符号是合法的UML 2.0,但我找不到强制EA在图上绘制它的方法.它拒绝允许套接字和球之间的依赖.有没有办法实现它,如下图所示(小ms画魔术):

在此输入图像描述

另外,一个附带问题,你可以让球或插座出现在元素的另一侧吗?

Uff*_*ffe 5

在 EA 中显示球窝有两种不同的方式。

通过您所使用的接口,您已经从 Consumer 类和 Producer 类到 IProducer 接口(分别是依赖项和实现)绘制了连接器。然后,您就可以在类上打开依赖接口和已实现接口的显示。

这样做意味着球和插座被固定。您无法选择它们(而是选择类),无法将它们移动到其父类,并且它们不能成为连接器的端点。

另一种方法是使用 Expose Interface。

使用此方法,您不需要从类到接口绘制任何连接器。相反,您可以使用 Expose Interface 在每个类中创建一个嵌入元素,该元素将接口作为其分类器。

这些公开的接口本身就是元素,按照您希望的方式运行:您可以将它们移动到各自类的周围,并且可以在它们之间绘制连接器。

在示例中,请注意 IProducer 接口元素没有任何连接器。公开接口的使用示例

为了公开接口,有两种方法可以实现。您可以在图表工具箱中选择“公开接口”,但请注意,这仅在“组件”工具箱中可用,而在“类”工具箱中不可用。这就是我在本例中对 Producer 所做的事情。

另一种方法是右键单击该类并选择“新建元素”->“端口”。这将创建一个端口,您可以为其指定任何名称。然后右键单击该端口并选择“新元素”->“提供的/所需的接口”。

无论哪种方式都会弹出“公开接口”对话框,您可以通过使用省略号按钮 (...) 并浏览接口的项目树来选择应公开的接口元素。

使用端口可能看起来有点麻烦,但严格来说,它是更正确的 UML。另请注意,单个端口可以公开多个接口(提供的和必需的),从而允许您对形成某种逻辑单元的接口进行分组。可能您有多个接口,它们形成一项服务,因此组合在一起,但该类提供并需要多个服务。

当您讨论的不是单个类而是组件时,这(对我来说)更有意义,并且我通常在对类进行建模时使用实现/依赖项,在对组件进行建模时使用端口和公开的接口。