如何使用 UML notations/diagrams 表示复合图?
How to represent a compound graph using UML notations/diagrams?
我需要一个工具(最好是在线的,但在那个阶段我不在乎了)它允许我对可以表示为复合图的关系(类似于 BPMN)进行建模(尽管大多数时候,它将是一个更简单的嵌套图)。我似乎无法使用 BPMN 形式主义实现我的目标(泳道是最接近的,但它们不允许任意嵌套)。我正在考虑重用 UML 建模工具,但我对 UML 的了解还不够,无法确定 UML 是否涵盖我的用例。
想象一个集成电路,它是由用电线连接的芯片组成的。所以三个筹码:A,B,C
和 Chip A -> Chip B, Chip C
。每个芯片都有输入端口和输出端口,A的一些输出端口连接到B的输入端口,一些连接到C的输入端口。现在Chip A
本身可以认为是一个集成电路,并且这样可以在另一个图中分解:Chip A :: Chip A.1, Chip A.3 -> Chip A.2
。每个Chip A.1
还可以分解等等,这就是所谓的复合图。复合图的每个节点都可以有自己是图的子节点。
我知道 Harel 和 UML 的状态图形式主义,它允许层次图描述层次嵌套状态机(因此任何嵌套图都可以用状态图形式主义来表达),尽管我不知道任何在线工具允许绘制状态图。问题是UML是否有机制或工具允许指定复合图,如果有,嵌套机制是什么?
1 级
-------
---|ChipA|---ChipB---
| |---ChipC---
|-----|
放大芯片 A
-----ChipA.1---ChipA.2---- (...linked to ChipB input port
|--ChipA.3-| |-- (...linked to ChipC input port
文献中的复合图示例:
从 UML 中的组件图开始。
您的芯片可以被视为组件,端口将是……好吧,端口 ;-) 但您还应该定义某种接口(这些端口的功能 offered/needed)。据我了解,箭头方向描述了某种依赖性(因此带箭头末端的芯片提供了一些东西,因此将具有提供的接口,而另一端将具有所需的接口和它们之间的正确连接)。
如果使用内部结构实现特定端口,您将为此使用委托连接器。
针对您的评论,
The question is whether UML has a mechanism or tools which allow to specify a compound graph, and if so, what is the nesting mechanism?
在基础架构级别,它使用 Element::ownedElement 关联来表示包含。 Namespace::ownedMember 关联此关联的子集,类 与其成员、包和嵌套包、组件及其包含的项等之间的关联也是如此。所有这些在概念上都是复合图,但不会以与您的图表类似的方式呈现。
就您而言 'Chip made up of chips',UML 上层结构中的 CompositeStructures 包(2.4.1 superstructure 的第 9 节)使用这些关联来创建复合材料,或用于构建特定领域的示例在 UML 之上,SysML 是为系统工程创建的 UML 方言。
系统工程框图由使用端口和连接器创建的块组成;块可以具有进一步块网络的内部结构。连接器携带流量,可以是信息、能量或物质。
一些工厂的示例框图显示了用于在与其容器相同的图表中显示自有元素的自定义渲染:
有关详细信息,请参阅 http://www.omgsysml.org/ or http://sysmlforum.com/sysml-faq/。
sysml 工具列在 http://sysml.tools/ 站点上。
我需要一个工具(最好是在线的,但在那个阶段我不在乎了)它允许我对可以表示为复合图的关系(类似于 BPMN)进行建模(尽管大多数时候,它将是一个更简单的嵌套图)。我似乎无法使用 BPMN 形式主义实现我的目标(泳道是最接近的,但它们不允许任意嵌套)。我正在考虑重用 UML 建模工具,但我对 UML 的了解还不够,无法确定 UML 是否涵盖我的用例。
想象一个集成电路,它是由用电线连接的芯片组成的。所以三个筹码:A,B,C
和 Chip A -> Chip B, Chip C
。每个芯片都有输入端口和输出端口,A的一些输出端口连接到B的输入端口,一些连接到C的输入端口。现在Chip A
本身可以认为是一个集成电路,并且这样可以在另一个图中分解:Chip A :: Chip A.1, Chip A.3 -> Chip A.2
。每个Chip A.1
还可以分解等等,这就是所谓的复合图。复合图的每个节点都可以有自己是图的子节点。
我知道 Harel 和 UML 的状态图形式主义,它允许层次图描述层次嵌套状态机(因此任何嵌套图都可以用状态图形式主义来表达),尽管我不知道任何在线工具允许绘制状态图。问题是UML是否有机制或工具允许指定复合图,如果有,嵌套机制是什么?
1 级
-------
---|ChipA|---ChipB---
| |---ChipC---
|-----|
放大芯片 A
-----ChipA.1---ChipA.2---- (...linked to ChipB input port
|--ChipA.3-| |-- (...linked to ChipC input port
文献中的复合图示例:
从 UML 中的组件图开始。
您的芯片可以被视为组件,端口将是……好吧,端口 ;-) 但您还应该定义某种接口(这些端口的功能 offered/needed)。据我了解,箭头方向描述了某种依赖性(因此带箭头末端的芯片提供了一些东西,因此将具有提供的接口,而另一端将具有所需的接口和它们之间的正确连接)。
如果使用内部结构实现特定端口,您将为此使用委托连接器。
针对您的评论,
The question is whether UML has a mechanism or tools which allow to specify a compound graph, and if so, what is the nesting mechanism?
在基础架构级别,它使用 Element::ownedElement 关联来表示包含。 Namespace::ownedMember 关联此关联的子集,类 与其成员、包和嵌套包、组件及其包含的项等之间的关联也是如此。所有这些在概念上都是复合图,但不会以与您的图表类似的方式呈现。
就您而言 'Chip made up of chips',UML 上层结构中的 CompositeStructures 包(2.4.1 superstructure 的第 9 节)使用这些关联来创建复合材料,或用于构建特定领域的示例在 UML 之上,SysML 是为系统工程创建的 UML 方言。
系统工程框图由使用端口和连接器创建的块组成;块可以具有进一步块网络的内部结构。连接器携带流量,可以是信息、能量或物质。
一些工厂的示例框图显示了用于在与其容器相同的图表中显示自有元素的自定义渲染:
有关详细信息,请参阅 http://www.omgsysml.org/ or http://sysmlforum.com/sysml-faq/。
sysml 工具列在 http://sysml.tools/ 站点上。