UML2:组件图中的端口和接口

时间:2015-07-29 16:07:15

标签: interface uml components port

由于我还没有完全理解组件图中端口和接口符号的正确用法,所以有几个问题:

予。 想象一下,希望通过网络(TCP)使用非常特殊的远程记录器服务的软件。消息可以是一些XML。因此,记录器公开了一个接口,该接口指定握手,XML结构,XML元素等内容,以便记录器接受消息。

enter image description here

a)我是否认为此接口可能被称为“ILoggerProtocol”,端口可能以它提供的服务命名(“日志记录”)?

b)因此,我的应用程序中的组件实现了该接口,以便为服务器生成兼容的消息?

c)现在一个有趣的事情:对于通信,有一个额外的库“网络”提供简单的TCP东西,所以它做TCP连接,发送消息,处理错误等。我只需要这个类想强调从生成的消息到服务器的方式?那么MY端口是TCP接口吗?

d)当我想绘制完整的图片时,如何正确地将网络组件添加到图表中,指出使用ILoggerProtocol并通过网络组件通过TCP?

II。我的应用程序中的端口:现在有两个库,其中一个只使用另一个;基本上,在C / C ++中,它会#include对方的头文件:

enter image description here

e)这是正确的图表吗?

f)我需要端口吗?如果是的话,它们实际上代表什么呢?你会给他们什么名字?

g)或者棒棒糖在没有端口符号的情况下是否足够?

III。关于棒棒糖:

enter image description here

h)那两个符号基本相同且可以互换吗?我已经为组合版本找到了名称“assembly”,所以可能存在差异......

1 个答案:

答案 0 :(得分:6)

首先简短回答(稍后试图破解其余部分):端口是一个嵌入式元素,允许对多个接口进行分组。我能举出一个最好的例子就是一个复杂的插座(端口),它捆绑了电源,通信线路等名称(接口)。

现在了解详情。

a)是的,这是正确的。您通常会使用<<delegate>>原型关联来显示在内部某处使用外部接口(/如果它是棒棒糖)。

b)否。这是必需的界面。它在内部使用但在外面实现(棒棒糖所在的地方)。

c&amp; d)我会使用<<use>> MyApplicationNetworking展示<<use>>。通常你不会详细说明(除非它是必不可少的)。使用<<include>>

清楚地描绘了TCP之类的明显事物

e)您可以(/应该)使用<<use>><<delegate>>代替。

f&amp; g)见上面的一般答案

h)是的。第一个是第二个灵活的符号。

P.S。再看看这个,我注意到在顶部图片中,内部定向关联应该指向另一个方向并且是刻板的foo bar Tests run: 729, Failures: 0, Errors: 253, Skipped: 0 baz