UML2.0组件图中的委托和组装连接器

UML2.0组件图中的委托和组装连接器,uml,components,diagram,Uml,Components,Diagram,我试图理解如何创建一个符合UML2.0的组件图,我发现不同的来源建议了不同的方法来显示组件的内部结构——特别是,使用什么样的线来委派和组装连接器 我查了4个不同的来源: 马丁·福勒的《UML蒸馏》一书 Scott Amber在“敏捷建模”网站上关于组件图的部分 IBM developer works网站上关于组件图的部分- 关于uml图上的组件图的部分 我发现这四种资源以不同的方式绘制连接器: 对于“委派”连接器: 虚线,开放箭头 实线、开放箭头、“委托”原型 实线、开放箭头、“委托”原型 实线

我试图理解如何创建一个符合UML2.0的组件图,我发现不同的来源建议了不同的方法来显示组件的内部结构——特别是,使用什么样的线来委派和组装连接器

我查了4个不同的来源:

  • 马丁·福勒的《UML蒸馏》一书
  • Scott Amber在“敏捷建模”网站上关于组件图的部分
  • IBM developer works网站上关于组件图的部分-
  • 关于uml图上的组件图的部分
  • 我发现这四种资源以不同的方式绘制连接器:

    对于“委派”连接器:

  • 虚线,开放箭头
  • 实线、开放箭头、“委托”原型
  • 实线、开放箭头、“委托”原型
  • 实线,无箭头
  • 对于“组装”连接器:

  • 实线,无箭头,无注释
  • 虚线,开放箭头
  • 球窝
  • 球窝
  • 为什么四个著名的来源以如此不同的方式解释标准图? 有人知道这些连接器是否标准化了吗?标准对此有何规定

    谢谢

    简短回答 对于委托连接器,以下符号是正确的:

  • 实线连接端口
  • 以球/承插符号表示的接口与端口之间的实线
  • 规范没有给出关于使用箭头的可能性的明确答案。没有箭头肯定是正确的。使用开放箭头可能是正确的(有关详细信息,请参阅长答案)。 没有什么关于“代表”的刻板印象,然而,无论在什么地方都可以使用定型,所以我认为它是可接受的,但不是强制性的。 带开放箭头的虚线显示任何依赖项。当然,委托是一种依赖关系,但符号不能清楚地表示委托。它也可以是一种不同类型的依赖关系。因此,除非你知道自己在做什么,否则不应该使用它

    对于装配连接器,以下通知是正确的:

  • 类间实线
  • 端口之间的实线(如果接口可见也可以)
  • 球窝接口符号中接口之间的实线
  • 简单端口之间的球/插座连接器符号
  • 以球/插座接口符号表示的接口之间带有开放箭头(依赖项)的虚线
  • 对于实线上的箭头,与委托部分中的陈述相同

    详细回答(解释/链接) 我相信在这种情况下,最好是访问最官方的源代码,即UML规范。棘手的是,这些信息在很多地方传播。以下是我发现的证实上述陈述的一些提及:

    11.2.4

    连接器使用与关联类似的符号绘制 (见11.5.4)

    另外,“连接简单端口时,使用普通连接器符号 对于装配或委托,可显示连接到球或 套接字符号,而不是端口符号本身。“

    11.2.5(图11.4)

    11.2.3.3

    连接器有一种类型,其值为assembly或delegation。这个 委托连接器的语义仅与端口和 在端口下描述(见11.3)。所有其他连接器均为装配式 连接器

    11.6.5(图11.47)(图11.48)


    至于箭头的用法,规范没有明确说明连接器的箭头用法(示例也没有包含任何箭头)。然而,由于箭头表示关联的可导航端,并且连接器并没有这样的概念,所以我假设连接器不应该有箭头。然而,由于这并没有明确禁止,并且最终也可以考虑连接器的可导航性,至少理论上可以接受箭头的使用。

    这些差异主要是由不同的最后更新日期和作者使用的不同版本的
    UML
    造成的。您可以自己回答问题的最后一部分,在最新批准的规范或最新的规范草案中查找单词
    delegation
    ,这听起来很合理。谢谢最后,这并不重要。如果你在项目中以任何一种方式(一致地)进行沟通,都可以。就我个人而言,我看到一个代表团总是从外部到内部(为我做,我有更重要的事情要做)。