fUML, Papyrus и основные операции

Мы стремимся выполнить спецификации fUML, написанные на Papyrus, используя эталонную реализацию fUML. Это не составило труда, поскольку модель UML, содержащая одну диаграмму классов и одну или несколько диаграмм действий, можно выполнить напрямую, вызвав конструктор fUML:

new Fuml(File);

Однако сложно указать сложное поведение без базовых операций с целыми числами. Например, "равно", "больше"...

Я знаю, что есть некоторая библиотека таких функций, которые можно выбрать с помощью OpaqueBehaviors. Поэтому мой вопрос: где и как можно найти эти самые "базовые операции"?


person AntMor    schedule 17.07.2015    source источник


Ответы (1)


Извините, мне недавно задали этот вопрос. Но, если вы еще не поняли, у меня есть ответ для вас.

Библиотека, которую вы ищете, — это Foundational Model Library, которая содержит такие пакеты, как IntegerFunctions, BooleanFunctions и т. д. Стандартная спецификация fUML включает стандартный XMI-файл для этой библиотеки (по адресу http://www.omg.org/spec/FUML/20121019/fUML_Library.xmi, для fUML 1.1). Однако для использования библиотеки в Papyrus вам потребуется версия Eclipse в формате .uml.

При желании вы можете преобразовать нормативный XMI самостоятельно: Загрузите файл и откройте его в редакторе Eclipse UML Editor (не Papyrus). Выберите «Файл» > «Сохранить как» и сохраните файл с расширением .uml (fUML_Library.uml). Затем вы сможете импортировать этот файл .uml в Papyrus и ссылаться на функции в нем из ваших моделей действий. Пока вы сохраняете нормативные идентификаторы элементов из исходного файла XMI, эталонная реализация будет знать, что это стандартные библиотечные функции, для которых у нее есть встроенные реализации.

Однако на самом деле уже существует версия этой библиотеки в формате .uml, доступная для Papyrus. Он включен в дополнительный компонент Moka Model Execution для Papyrus. Если вы устанавливаете этот компонент, библиотека модели fUML становится доступной как «зарегистрированная библиотека», которую вы можете импортировать в свою модель и использовать, как указано выше.

Обратите внимание, что Moka также включает механизм выполнения fUML, который можно использовать для выполнения моделей действий непосредственно в Papyrus (см. https://wiki.eclipse.org/Papyrus/UserGuide/ModelExecution). Тем не менее, любые модели, созданные в Papyrus, которые могут быть выполнены с помощью Moka, также могут быть выполнены из Papyrus извне с использованием эталонной реализации, как вы делали это раньше.

person Ed Seidewitz    schedule 05.01.2016