多次使用 class 实例的模型组合

Model composition where instance of class is used multiple times

我想模拟以下场景:


示例:

留言位置

消息移动


到目前为止,这是我在 Sirius 中建模的内容

这里的问题是我不能link消息位置两次到消息移动。您能否提供一种对此问题建模的方法?

您的模型缺少一个 "layer" 来表示您的 "message type" / "message instance" 结构。

我认为你需要做的事情有点像这样:

  • Class MessageTypeBaseType 的遏制(IMO 应该重命名为 MessageDataType
  • Class MessageInstance 包含对自身的包含和对 MessageType.
  • 的引用

然后您的最终用户必须首先创建一个名为 "position" 的 MessageType 实例和另一个名为 "movement" 的实例。然后创建三个 MessageInstance 个实例,两个指向 MessageType "movement",一个包含前两个 MessageInstance 个实例。

我还建议您认真考虑如何命名您的概念,因为您的 EClass 之一的 Ecore 实例与您正在有效地建模 [= =39=]结构。