我可以在组件图上使用定向命名关联来显示“sys A”将数据发送到“sys B”的事实吗?
例子:
不,您应该改用通用依赖项,并带有可选标题。
但是,在这种情况下,标题并不常见。最好使用其他一些图表(例如序列)来显示通信细节(例如打开连接、发送数据、关闭连接等)。
如果这些系统之间有明确定义的接口,您也可以这样表示:
两个类之间使用关联来表明它们的实例可能是连接的(同样,不是用于数据流指示)。
在 UML 2.0 中,关联背后的概念很模糊,请阅读这篇文章:http ://www.uml-diagrams.org/uml-core.html(搜索“语义关系”)。关联表示两个组件之间的“语义关系”,我认为它不适合数据流。我认为即使依赖也不适合数据流:也许客户端依赖于供应商,也许相反……所以箭头可能会非常混乱。棒棒糖符号是最好的,恕我直言:它清楚地表明有一个组件提供接口,而另一个需要它。您可以在界面上使用构造型来显示通信/数据传输的类型,并使用标签来明确传输的数据。“Documenting Software Architectures”一书采用了另一种风格,主要使用关联:参见第 145 页。它类似于您最初的提议,但具有明确的角色并且没有箭头。
如果sys A
将信息发送到sys B
并且您对传输的确切方式不感兴趣,那么这就是信息流连接器的经典应用。
在这种情况下,依赖关系会说sys A
需要(依赖于)sys B
某物。信息流经常(但不总是)与依赖关系相反,因为它通常是需要发送者的接收者。
有许多不同的方式来展示这些类型的关系,最好的方式取决于具体情况。如果您的重点是传输的信息类型,那么信息流是最合适的。如果您的重点是传输发生的方式,那么带有接口(可能是程序集)的东西会更好。
EA 实际上允许您在程序集上指定信息流,因此您甚至可以将两者结合起来。这完全取决于您想要表达的内容。