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

时间:2013-02-08 01:32:50

标签: uml enterprise-architect

球和插座符号是合法的UML 2.0,但我找不到强制EA在图上绘制它的方法。它拒绝允许套接字和球之间的依赖。是否有任何方法可以实现它,如下图(小ms画魔术):

enter image description here

另外,一个附带问题,你能否让球或插座出现在元素的另一边?

3 个答案:

答案 0 :(得分:4)

在EA中有两种不同的方式来显示球和插座。

使用您使用的那个,您已经将Consumer和Producer类中的连接器绘制到IProducer接口(分别是依赖项和实现)。 然后,您已经在类上打开了Dependent和Realized接口的显示。

这样做意味着球和插座是固定的。你不能选择它们(改为选择类),你不能用它们的父类移动它们,它们不能是连接器的端点。

另一种方法是使用Expose Interface。

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

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

在示例中,请注意IProducer接口元素没有任何连接器。Sample use of Exposed Interfaces

为了公开接口,有两种方法可以解决。您可以在图工具箱中选择Expose Interface,但请注意,这仅在Component工具箱中可用 - 而不是Class工具箱。这就是我在这个例子中对制作人所做的。

另一种方法是右键单击该类并选择New Element - >港口。这将创建一个端口,您可以为其指定任何名称。然后右键单击该端口并选择New Element - >提供/必需的界面。

无论哪种方式都会显示Exposed Interface对话框,该对话框允许您使用省略号按钮(...)选择应公开的界面元素,并浏览界面的项目树。

使用端口可能看起来有点麻烦,但严格来说,它是更正确的UML。另请注意,单个端口可以显示提供和需要的多个接口,允许您对形成某种逻辑单元的接口进行分组。可能是你有几个接口组成一个服务,所以一起去,但是这个类提供并需要多个服务。

当你讨论的不是单个类而是组件时,这对我来说更有意义,而且我通常使用实现/依赖,因为我在建模组件时建模类,端口和公开接口。< / p>

答案 1 :(得分:1)

球和套接字是合法的UML 2.0表示法是对的,但它们不是UML元素,它们描述了元素关系。所以我想根据您使用的工具,它将(或不会)允许您在它们之间创建依赖关系。根据UML规范,应该在至少两个NamedElements之间创建UML依赖。

答案 2 :(得分:1)

在EA球和插座中,可以(仅)在端口之间绘制连接。使用“组件”连接器类型。