【问题标题】:Importing a UML model based on UML2 version 2.0.0 in eclipse在eclipse中导入基于UML2 2.0.0版本的UML模型
【发布时间】:2016-10-19 19:48:13
【问题描述】:

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

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

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

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

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

我还发布了我的 UML 模型以供参考 here

【问题讨论】:

  • 怎么可能有依赖呢? test_req()block_2 中的一个操作。
  • 我在需求图中添加了test_req()(如第一张图所示),并在test_req和requirement_1之间创建了依赖关系
  • 你展示的是一个SysML模型,你安装了Papyrus SysML可选组件吗?

标签: eclipse uml emf papyrus rhapsody


【解决方案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(""));

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-18
      • 2012-02-26
      • 2020-12-02
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      相关资源
      最近更新 更多