部分和端口的含义?

时间:2018-12-03 09:05:36

标签: uml enterprise-architect

我有一个.lib文件,其中包含内部C ++类,一些C ++类是软件库提供的功能的接口。

我应该如何用UML进行说明?

我使用Enterprise Architect,尝试输入了'Component'类型(作为简单链接粘贴到组件图中),然后将该库的内部类从模型树拖放到该组件矩形中,作为元素类型Composite部分,然后该库的接口类作为Port。现在,奇怪的是发生了什么事情,模型树包含了类的对象实例,这些类称为Part1和UML类型'class'的Port1,这是无意义的,因为软件库没有实例化,它只是通过.lib文件提供了其类。 ,就像一个游泳池。我认为UML元素类型'component'在这里不正确,是吗? 如果我使用“ Package”,也会发生同样的情况,尽管库中的类不是,但是零件和端口在这里也变成了对象实例之类的东西。

2 个答案:

答案 0 :(得分:3)

这并不奇怪。您碰巧放弃了一个部分(按EA条款)。

enter image description here

这实际上是一个财产。只需打开其属性:

enter image description here

请参阅第39页的UML 2.5。 147:

  

9.9.17属性[类]

     

9.9.17.1说明

     

属性是一种结构特征。由ownedAttribute与分类器(关联除外)相关联的属性表示一个属性,也可能表示关联结束。 ...

我可能只是将它们作为链接放在放大的组件YMMV中作为类出现

删除为端口的类将显示为名称所显示的内容。因此,这里没有混乱。无论如何,我也将其作为链接只显示其中的内容。此外,我可能会用<<lib>>之类将组件本身定型。那是因为您实际上在编译时使用了一个lib来提取所需的部分,而它本身不能作为组件工作。一个库虽然有一个接口,即提取其内部具有的已编译类模块。

啊,就像@muszeo所说的那样:使用ctrl-drag来显示上面的对话框。

答案 1 :(得分:3)

在对O / P发表评论之后,我将执行以下操作。请注意,我可能不会在同一张图上描述所有这些内容,例如,我可能会在单独的图上显示该包的类内容,以免造成混乱。但是逻辑是一样的。

enter image description here

更新:在下面的评论之后,我添加了此图,该图说明了表示此图的另一种方法。我认为在某些情况下,我也看到委托代表的是依赖关系,而不是引用关联。但是,嘿。在内部,组件表示为通过所需/提供的接口彼此交互(尽管未在下面的模型中显示,我们仅说明了一个内部组件)。

enter image description here