EA&UML日拱一卒-活动图::CallOperationAction

来源:互联网 发布:淘宝贷款还不起怎么办 编辑:程序博客网 时间:2024/05/24 00:59

还是老套路,先介绍本篇文章的主角:CallOperationAction。在《GB/T 28174.2-2011 统一建模语言(UML) 第2部分:上层结构》中是这样描述的:


调用操作动作(CallOperationAction)


CallOperationAction 是一个动作,它传送一个操作调用请求到目标对象,目标对象可以引起关联活动的调用。动作的参数值对于被调用的执行有效,如果动作被标记为同步的,调用操作 的动作的执行一直等待,直到被调用的行为执行结束,并且ReplyAction传输返回值给调用者。如果操作是异步的,则当操作的调用被确立后,被调用的 操作的执行和调用侧活动的执行并发执行。任何作为应答传输返回的值被放置在输出引脚上。接受到应答传输后,调用操作动作的执行结束。


CallOperationAction除了有一个输入引脚用于接受操作的目标对象以外,还应有和被调用操作的参数相同数量,相同类型的输入引脚,以及和被调用操作的返回值相同数量,类型的输出引脚。


示例


我们继续使用昨天的例子说明CallOperationAction的用法,先来回忆一下昨天的状态。


在这个例子中,我们已经得到了后续流程中将会用到的panel和calculator对象。


取得一元二次方程的系数a


  1. 从工具栏拖动Action图标到流程图,选择Action类型为CallOperation。

  2. 打开CallOperaiton的属性设定对话框

  3. 进入【General】属性页,指定Action名称为Get a

  4. 进入【Call】属性页


  5. 选择Behavior为CalculatorPanel::getInput方法

  6. 按下【Synchronize with Parameters】将CalculatorPanel::getInput方法的参数同步到CallOperationAction中来。

  7. 按下【Add】按钮,在出现的【Select Pins】对话框中按下【Add New】按钮和【确定】按钮添加Result引脚。




  8. 经过对上述操作以后,我们得到上图红框中的内容。按下【确定】按钮关闭对话框。这时【Project Browser】中的Get a动作的状态如下图。



  9. 修改OutputPin1的名称为a。



  10. 右键打开活动图中CallOperationAction的上下菜单并选择【Structural Elements】,在出现的对话框中选择显示所有引脚。


  11. 调整活动图中CallOperationAction各引脚的位置。


  12. 用对象流连接ReadStructuralFeatureAction的panel引脚到接CallOperationAction的target引脚。


  13. 打开CallOperationAction的Index引脚的属性对话框,在Pin属性页中指定参数值PARA_A。



取得系数b,c


同样方法添加名称为Get b,Get c的CallOperationAction,增加分叉节点并连接数据流以后得到下图。



调用解方程操作


继续添加调用Calculator::solveEquation的CallOperationAction并连接数据流。

添加终止节点。


明天文章对今天得到活动图进行说明。


以上就是今天的文章,拜托点赞并推荐给您的朋友!
阅读更多更新文章,请扫描下面二维码,关注公众号【面向对象思考】