MagicDraw中用OCL初始化仿真变量无效问题咨询
问题解答
首先明确:OCL2.0本身是支持变量/参数初始化的,你写的context Test::myVariable: Integer init 1语法也没问题。问题出在Cameo Simulation Toolkit的仿真引擎对testcase构造型活动里的OCL init约束的支持局限性上——这种场景下,它会忽略OCL的初始化约束,而Python约束则能被正常识别执行。
如果想继续用OCL实现初始化,可以换个方式:
- 在活动图的初始节点后添加一个动作节点,在该节点的行为里用OCL赋值语句
Test::myVariable := 1,仿真时这个动作会被执行,完成变量初始化。 - 或者保持用Python约束,毕竟它在testcase场景下的初始化支持更稳定。
内容的提问来源于stack exchange,提问作者flaviusaetius
相关产品推荐
相关产品推荐

