1

我想知道一些关于如何计算(设置?)两个 UML 模型之间差异的参考和想法。基本上,我有一个系统(以 UML/xmi 表示),并且可以对这个系统应用几种模式(也以 UML/xmi 表示)。

例如,我们可以将模式 a 应用于将模式 b 应用于系统的结果 - Pa(Pb(S))。然后我想计算dif(Pb, S)然后dif(Pa, S),因为在应用模式之后,合并系统可以被视为原始系统。

我正在寻找参考资料(无论是否在文献中)和算法,因为我不想重新发明轮子。最后我会用 Java 编写代码。

提前致谢,

佩德罗

4

2 回答 2

2

使用Eclipse EMF Compare,您可以比较两个不同的 EMF 模型实例。由于 UML 在 Eclipse 中表示为 EMF 模型实例,因此您可以使用它来比较您的 UML 模型。只需安装 EMF Compare,在包资源管理器(或您使用的任何视图)中标记您的 UML 模型,然后从上下文菜单中选择 Compare -> With each other...。比较编辑器可让您将差异保存为 .emfdiff 文件。

于 2013-01-21T09:59:50.637 回答
2

我不能为您指出确切的文献,但是如果您不/不能选择上面的 EMF 解决方案,请考虑一下:UML 模型是图形(我需要一些思考才能弄清楚边和顶点是什么,但不管怎么说)。要获得差异,您需要顶点集和边集的对称差异。这样,您就可以获得仅在一张图中的所有内容。如果您使用应用的模式计算原始模型和模型之间的对称差异,那将准确地告诉您该模式对模型的作用。

于 2013-01-21T10:03:06.763 回答