1

我有一个基于 UML2 版本 2.0.0 的 UML 模型(xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML")。在 Eclipse 中,我安装了 Papyrus 的最新版本,它带有 UML2 版本 2.5.0。

我拥有的模型是从 Rhapsody 生成的一个非常简单的模型,其中我在 Block 中有一个Requirement(requirement_1),一个Block和一个Operation(test_req())。在模型中,test_req() 操作验证了 requirements_1,如下图所示: 在此处输入图像描述

使用 Rhapsody XMI 工具包,我将模型导出为 XMI 格式并尝试将其作为 Papyrus Project 导入到 Eclipse。当我将模型导入 Papyrus 项目时,未检测到应用于 test_req() 和 requirements_1 之间依赖关系的 Stereotype( verify ):在此处输入图像描述

从图像中可以看出,<<verify>>刻板印象不适用于requirement_1.

谁能解释为什么缺少刻板印象?是因为 UML2 的版本不同吗?我怎样才能解决这个问题?

我也在此处发布我的 UML 模型以供参考

4

2 回答 2

1

这里的主要问题是我拥有的模型基于 UML2 版本 2.0.0,在 eclipse 中,我安装了最新版本的 UML,即 UML 2.5.0。因此,当我尝试将模型导入 Papyrus 项目时,它使用 UML2 版本 2.5.0 而不是 2.0.0,因此无法识别一些刻板印象。

我可以通过添加以下代码来修复我的代码,该代码在模型中找到现有关系,以确保使用 UML2 版本 2.0.0:

ResourceSet set = new ResourceSetImpl();
UMLResourcesUtil.init(set);
set.getResourceFactoryRegistry().getExtensionToFactoryMap()
    .put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);

set.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);

Map<URI, URI> uriMap = set.getURIConverter().getURIMap();
URI uri = URI.createURI("jar:file:/home/jars/org.eclipse.uml2.uml.resources_2.0.3.v200707131442.jar!/"); // for example
uriMap.put(URI.createURI(UMLResource.LIBRARIES_PATHMAP), uri.appendSegment("libraries").appendSegment(""));
uriMap.put(URI.createURI(UMLResource.METAMODELS_PATHMAP), uri.appendSegment("metamodels").appendSegment(""));
uriMap.put(URI.createURI(UMLResource.PROFILES_PATHMAP), uri.appendSegment("profiles").appendSegment(""));
于 2016-06-21T22:43:43.950 回答
0

我在 Rhapsody 之前使用过从 sysml 图生成代码到基于 eclipse 的 Windriver 工作台。我不知道 xml 导入/导出,但是当我们将配置更改为 eclipse 样式并在 CPP_CFG 部分设置编译器设置时,rhapsody 能够直接在 eclipse 环境中生成代码。也许这对你也有用。

于 2016-06-18T07:46:37.253 回答