使用OCL初始化变量,以便使用MagicDraw进行模拟

问题描述 投票:0回答:1

我有一个活动图,想使用 Cameo 模拟工具包对其进行模拟。 模拟活动后,我想检查是否使用了某些特定操作(即使用了活动图的哪个场景或路径)。

检查执行了哪种场景后,我想收到一条消息,告诉我测试是否通过或失败。因此,我将“测试用例”构造型设置为活动的应用构造型。 为了初始化变量,我尝试使用 OCL2.0 设置约束,例如这个命令,然后我触发模拟:

context Test::myVariable: Integer init 1

不幸的是,当我使用 OCL 时,此初始化似乎被忽略,但当我使用 python 作为约束语言时,它似乎有效。

我在这里做错了什么,还是不支持OCL初始化变量/参数?

ocl magic-draw
1个回答
0
投票

当然应该有效。我了解 MagicDraw 使用 Eclipse OCL,尽管他们从未请求许可/建议或提供任何支持。

使用 Eclipse OCL 编辑器对 RoyalAndLoyal.ocl 进行以下解析即可。

context LoyaltyAccount::points : Integer init : 0

但是,如果删除最后一个 : 来模仿您的示例,编辑器会报告“不匹配的输入 ':' 期望 '('”

您的示例似乎有拼写错误,或者您没有使用足够的 OCL,或者您的 OCL 没有充分嵌入 MagicDraw 中。

尝试添加缺少的“:”,如果有效,请了解如何在 MagicDraw 中使用 Eclipse Complete OCL 编辑器,以便获得更好的诊断。

© www.soinside.com 2019 - 2024. All rights reserved.