fUML、Papyrus 和基本操作
fUML, Papyrus and Basic Operations
我们的目标是使用 fUML 参考实现来执行用 Papyrus 编写的 fUML 规范。这并不具有挑战性,因为包含单个 Class 图和一个或多个 Activity 图的 UML 模型可以通过调用 fUML 构造函数直接执行:
new Fuml(File);
但是,如果没有基本的整数运算,很难指定复杂的行为。例如,'equals'、'greater'...
我知道有一些此类函数的库可以使用 OpaqueBehaviors 选择。因此,我的问题是:在哪里以及如何找到这样的 "basic operations"?
抱歉,这个问题是最近才向我指出的。但是,如果你还没有弄明白,我确实有一个答案给你。
您要查找的库是基础模型库,其中包含 IntegerFunctions、BooleanFunctions 等包。规范的 fUML 规范包括此库的标准 XMI 文件(位于 http://www.omg.org/spec/FUML/20121019/fUML_Library.xmi,用于 fUML 1.1).但是,要在 Papyrus 中使用该库,您需要一个 Eclipse .uml 版本。
如果需要,您可以自己转换规范的 XMI:下载文件并在 Eclipse UML 编辑器(不是 Papyrus)中打开它。 Select 文件 > 另存为并使用 .uml 扩展名保存文件 (fUML_Library.uml
)。然后您应该能够将此 .uml 文件导入 Papyrus 并从您的 activity 模型中引用其中的函数。只要您维护原始 XMI 文件中的规范元素 ID,参考实现就会知道这些是标准库函数,它有 built-in 个实现。
但是,实际上这个库的 .uml 版本已经可用于 Papyrus。它包含在用于 Papyrus 的附加 Moka 模型执行组件中。如果您安装此组件,则 fUML 模型库将作为 "registered library" 可用,您可以将其导入到您的模型中并按上述方式使用。
请注意,Moka 还包括一个 fUML 执行引擎,您可以使用它直接在 Papyrus 中执行 activity 模型(参见 https://wiki.eclipse.org/Papyrus/UserGuide/ModelExecution)。但是,在 Papyrus 中创建的任何模型都可以使用 Moka 执行,也可以使用参考实现从 Papyrus 外部执行,就像您之前所做的那样。
我们的目标是使用 fUML 参考实现来执行用 Papyrus 编写的 fUML 规范。这并不具有挑战性,因为包含单个 Class 图和一个或多个 Activity 图的 UML 模型可以通过调用 fUML 构造函数直接执行:
new Fuml(File);
但是,如果没有基本的整数运算,很难指定复杂的行为。例如,'equals'、'greater'...
我知道有一些此类函数的库可以使用 OpaqueBehaviors 选择。因此,我的问题是:在哪里以及如何找到这样的 "basic operations"?
抱歉,这个问题是最近才向我指出的。但是,如果你还没有弄明白,我确实有一个答案给你。
您要查找的库是基础模型库,其中包含 IntegerFunctions、BooleanFunctions 等包。规范的 fUML 规范包括此库的标准 XMI 文件(位于 http://www.omg.org/spec/FUML/20121019/fUML_Library.xmi,用于 fUML 1.1).但是,要在 Papyrus 中使用该库,您需要一个 Eclipse .uml 版本。
如果需要,您可以自己转换规范的 XMI:下载文件并在 Eclipse UML 编辑器(不是 Papyrus)中打开它。 Select 文件 > 另存为并使用 .uml 扩展名保存文件 (fUML_Library.uml
)。然后您应该能够将此 .uml 文件导入 Papyrus 并从您的 activity 模型中引用其中的函数。只要您维护原始 XMI 文件中的规范元素 ID,参考实现就会知道这些是标准库函数,它有 built-in 个实现。
但是,实际上这个库的 .uml 版本已经可用于 Papyrus。它包含在用于 Papyrus 的附加 Moka 模型执行组件中。如果您安装此组件,则 fUML 模型库将作为 "registered library" 可用,您可以将其导入到您的模型中并按上述方式使用。
请注意,Moka 还包括一个 fUML 执行引擎,您可以使用它直接在 Papyrus 中执行 activity 模型(参见 https://wiki.eclipse.org/Papyrus/UserGuide/ModelExecution)。但是,在 Papyrus 中创建的任何模型都可以使用 Moka 执行,也可以使用参考实现从 Papyrus 外部执行,就像您之前所做的那样。