1

我有一个类似下一个的 EMF 模型:

HardwareVerification -1-*-> Driver 
HardwareVerification -0-*-> Environment
Environment -1-1-> Driver

每次创建 EMF 模型的实例时,我都必须在环境中创建一个驱动程序,并在 HardwareVerification 中创建另一个驱动程序,但我需要在两个地方都有相同的驱动程序。

例如:

h1 -> driver 1
h1 -> env1
env1 -> driver1

我的问题是:我应该如何建模?* 我读到要管理 EMF 中的链接,您可以使用另一个具有目标属性的 EClass。

4

2 回答 2

1

EReference 可以建模为包含或非包含引用。如果您使用非包含引用,那么您可以在其他地方引用模型中包含的相同对象。

假设环境“拥有”驱动程序,那么这将是包含引用。并且 HardwareVerification 只会“使用”驱动程序,那将是非包含引用。文本“UML”图可能如下所示(< x > 表示包含,<> 表示非包含引用。

env1 <x>-----> driver1
                        ^
                        |
h1 <>--------------
于 2011-03-07T21:21:06.467 回答
0

我相信您正在谈论的链接是 EReference。

当您将 EReference 添加到 ecore 文件中的 EClass 时,您可以使用 EReference 的 Lower Bound 和 Upper Bound 属性指定基数。

在您的情况下,您可以设置 LowerBound = 1, UpperBound = -1 (infinite) 来表示 -1-*->

于 2011-01-04T08:57:57.493 回答