Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uml 在EA类图中是否可以使用球窝符号?_Uml_Enterprise Architect - Fatal编程技术网

Uml 在EA类图中是否可以使用球窝符号?

Uml 在EA类图中是否可以使用球窝符号?,uml,enterprise-architect,Uml,Enterprise Architect,Ball-and-socket表示法是合法的UML2.0,但我找不到强制EA在图上绘制它的方法。它拒绝允许套接字和球之间存在依赖关系。有没有办法让它实现,如下图所示(小ms paint magic): 还有一个附带问题,你能让球或插座出现在元素的另一侧吗?球和插座是合法的UML2.0符号,但它们不是UML元素,它们描述元素关系。所以我想,根据您使用的工具的不同,它将(或不会)允许您在它们之间创建依赖关系。根据UML规范,至少应该在两个namedelement之间创建UML依赖关系。在EA中有两

Ball-and-socket表示法是合法的UML2.0,但我找不到强制EA在图上绘制它的方法。它拒绝允许套接字和球之间存在依赖关系。有没有办法让它实现,如下图所示(小ms paint magic):


还有一个附带问题,你能让球或插座出现在元素的另一侧吗?

球和插座是合法的UML2.0符号,但它们不是UML元素,它们描述元素关系。所以我想,根据您使用的工具的不同,它将(或不会)允许您在它们之间创建依赖关系。根据UML规范,至少应该在两个namedelement之间创建UML依赖关系。

在EA中有两种不同的方式来显示ball和socket

使用您所使用的接口,您已经绘制了从使用者类和生产者类到IProducer接口的连接器(分别是一个依赖项和一个实现)。 然后,在类上打开了依赖接口和已实现接口的显示

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

另一种方法是使用Expose接口

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

这些公开的接口本身就是元素,它们的行为符合您的要求:您可以在它们各自的类周围移动它们,并且可以在它们之间绘制连接器

在该示例中,请注意IProducer接口元素没有任何连接器

为了公开接口,有两种方法。您可以在图表工具箱中选择Expose Interface,但请注意,它仅在组件工具箱中可用,而在类工具箱中不可用。这就是我在本例中对生产者所做的

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

无论哪种方式,都会打开“公开接口”对话框,该对话框允许您使用省略号按钮(…)并浏览项目树中的接口来选择应公开的接口元素

使用端口可能看起来有点麻烦,但严格来说,它更正确。还要注意,一个端口可以公开多个接口,包括提供的接口和需要的接口,允许您对构成某种逻辑单元的接口进行分组。可能您有几个接口组成一个服务,因此一起使用,但该类提供并需要几个服务


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

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

我仍然认为,如果EA支持UML2.0,它应该允许它。这里有一些更有趣的信息:你是对的,它似乎是一个法律代表,如UML2.4.1规范(图8.14)所示,但我测试了我的常用工具,即,但没有一个支持这一点,但你可以使插座和球在所有方面出现:-)这似乎是EA中最好的可用工具。但是,为什么我们必须让依赖关系连接器从接口的提供和接口的需求之间分离/弥合鸿沟呢?也就是说,我可以在图表上创建一个“组装”连接器,但我不能将它与特定的接口类相关联,这使得它在语义上毫无意义,即使它按照预期呈现。。。没有办法做到这一点?换句话说,我想要这样的图表:但基于实际的接口类。。。如何?