2016-06-17 5 views
1

У меня есть модель UML, основанная на UML2 версии 2.0.0 (xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML"). В eclipse у меня установлена ​​последняя версия на Papyrus, которая поставляется с UML2 версии 2.5.0.Импорт модели UML на основе UML2 версии 2.0.0 в eclipse

модель у меня есть очень простая модель генерируется из Rhapsody, в котором у меня есть один Requirement (requirement_1), один Block и один Operation (test_req()) в блоке. В модели, test_req() операция проверяет requirement_1, как показано на рисунке ниже: enter image description here

Использование Rhapsody XMI инструментарий, я экспортировать модель в формат XMI и пытается импортировать его затмить, как папирус проекта. Когда я импортировать модели в Papyrus Project, стереотип (проверить) применяется на зависимости между test_req() и requirement_1 не обнаружено: enter image description here

Как видно на изображении, <<verify>> стереотипа не применяются к requirement_1.

Может ли кто-нибудь объяснить, почему отсутствует стереотип? Это из-за различия в версиях UML2? Как я могу это исправить?

Я также разместить свою модель UML для справки here

+0

Как может быть зависимость вообще? 'test_req()' - операция в 'block_2'. –

+0

Я добавил test_req() в диаграмму Требование (как показано на первом рисунке) и создал зависимость между test_req требование_1 – user2888308

+0

Что вы показываете - это модель SysML, вы установили дополнительный компонент Papyrus SysML? – CharlesRivet

ответ

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("")); 
0

я использовал до того Rhapsody для генерации кодов из SysML диаграмм затмения на основе WinDriver верстак. Я понятия не имею о XML-импорте/экспорте, но когда мы меняли конфигурацию на стиль eclipse &, заданный параметр компилятора в разделе CPP_CFG, рапсодия могла генерировать коды непосредственно в среде eclipse. может быть, это сработает и для вас.

 Смежные вопросы

  • Нет связанных вопросов^_^