【问题标题】:UML component diagram named association to show dependency between componentsUML 组件图命名关联以显示组件之间的依赖关系
【发布时间】:2014-07-17 08:19:11
【问题描述】:

我可以在组件图上使用定向命名关联来显示“sys A”向“sys B”发送数据的事实吗?

示例:

【问题讨论】:

    标签: uml associations component-diagram


    【解决方案1】:

    不,您应该改用通用的dependency,并带有可选的标题。

    但是,在这种情况下,标题并不常见。最好使用其他一些图表(例如序列)来显示通信细节(例如打开连接、发送数据、关闭连接等)。

    如果这些系统之间有明确定义的接口,您也可以这样表示:

    关联用于两个类之间,以表明它们的实例可能是连接的(同样,不是用于数据流指示)。

    【讨论】:

    • 将关联更改为具有相同标题的依赖项将使此示例正确吗?
    • 重要的是我要表明 sys A 向 sys B 做了一些事情(在本例中是“发送数据”)。我必须为这个操作命名。
    • 投反对票。对于提出的问题,依赖关系是完全错误的,第二个示例没有使用 EA 的实际球窝表示法,而是手动构建的。
    • @Uffe,在这种情况下依赖是完全有效的。现在我注意到了你的回答,你也使用了依赖,只是刻板印象。我不喜欢使用这些依赖刻板印象(个人品味),而是更喜欢其他机制(如交互或序列图)来显示数据流。关于球窝符号,首先不是“EA的实际符号”,而是UML形式符号。我的示例完全正确地表示了组件和接口之间的依赖关系,而您的示例在语法上是错误的。我将在那里作为评论进一步解释。
    【解决方案2】:

    在 UML 2.0 中,关联背后的概念是模糊的,请阅读这篇文章:http://www.uml-diagrams.org/uml-core.html(搜索“语义关系”)。关联表示两个组件之间的“语义关系”,我认为它不适合数据流。 我认为即使依赖也不适合数据流:也许客户依赖于供应商,也许相反……所以箭头可能会很混乱。 棒棒糖符号是最好的,恕我直言:它清楚地表明有一个组件提供接口,而另一个需要它。您可以在界面上使用构造型来显示通信/数据传输的类型,并使用标签来明确传输的数据。 “Documenting Software Architectures”一书采用了另一种风格,主要使用关联:参见第 145 页。它类似于您最初的提议,但具有明确的角色并且没有箭头。我认为这不是一个真正令人满意的解决方案,没有刻板印象......

    【讨论】:

      【解决方案3】:

      如果sys Asys B 发送信息,而您对传输的具体方式不感兴趣,那么这就是信息流连接器的经典应用。

      在这种情况下,依赖关系会说sys A 需要(依赖于)sys B 某事。信息流经常(但不总是)与依赖项的方向相反,因为它通常是需要发送者的接收者。

      有许多不同的方式来展示这些类型的关系,最好的方式取决于具体情况。如果您的重点是传输的信息类型,那么信息流是最合适的。如果您的重点是传输发生的方式,那么带有接口(可能是程序集)的东西会更好。

      EA 实际上允许您在程序集上指定信息流,因此您甚至可以将两者结合起来。这完全取决于您想要表达的内容。

      【讨论】:

      • 很好地解释了信息流。会有用,但我不想显示数据流,而是依赖关系,在我的示例中是“发送数据”(A 将数据发送到 B),但它也可能是“提供任务”等,所以我仍然认为 Aleks 的带有命名依赖的答案更正确。
      • 下图在语法上不正确。它使用两种相关但非常不同的连接器类型之间的混合:依赖和组装(所谓的“球窝”)。两个组件的必需接口和提供接口之间的有效关系是依赖关系,而不是组装关系。反过来,组装在组件的两个实例之间使用,以通过接口说明它们的运行时链接。有关示例,请参见 UML 规范的第 196 页。
      猜你喜欢
      • 2014-07-04
      • 2013-07-28
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      相关资源
      最近更新 更多