多次使用类实例的模型组成

时间:2018-11-05 11:05:58

标签: class-diagram emf eclipse-emf eclipse-emf-ecore ecore

我想为以下情况建模:

  • 消息a由一种或多种基本类型组成。
  • 基本类型为uint8 .. uint64和int8 .. int64。
  • 一条消息还可以包含其他消息。

示例:

邮件位置

  • uint8 x
  • uint8 y

消息移动

  • 职位开始
  • 位置结束
  • uint8速度

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

这里的问题是我不能两次将消息位置链接到消息移动。您能提供一种模拟此问题的方法吗?

1 个答案:

答案 0 :(得分:2)

您的建模缺少一个“层”来表示您的“消息类型” /“消息实例”结构。

我认为您需要做的是这样的:

  • 带有对MessageType的约束的BaseType类(应该将IMO重命名为MessageDataType之类的东西)
  • MessageInstance,其中包含对自身的约束和对MessageType的引用。

然后,您的最终用户必须首先创建一个MessageType实例,称为“ position”,再创建一个实例,称为“ motion”。然后创建三个MessageInstance实例,其中两个指向MessageType“运动”,另一个包含前两个MessageInstance实例。

我还建议您认真考虑如何命名概念,因为您的一个EClass的Ecore实例与您正在有效地建模类型/实例结构这一事实之间可能存在混淆。