EA&UML日拱一卒-活动图::活动(续)
上一篇文章中我们以解一元二次方程为例说明了活动动作的机制。今天继续这个话题,说明EA中定义活动,使用活动的方法。
定义活动
定义活动有两种方式,直接定义和定义结构化活动。我们继续以定义一元二次方程为例说明定义活动,使用活动的方法。
直接定义
直接定义按照以下步骤进行:
拖动活动图工具条中如下Activity图标到活动图画面中。
打开活动的上下文菜单选择【New Child Element】-【Activity Parameter】项目增加活动参数并设定其属性。
在活动的圆角矩形框内直接设计活动的内部逻辑。
根据需要调整活动矩形框的大小,设定各个元素的属性。
这种方法的例子就是上一篇文章中的SolveEquation活动。
定义复合结构图
-
拖动活动图工具条中如下Activity图标到活动图画面中。
-
打开活动的上下文菜单选择【New Child Element】-【Activity Parameter】项目增加活动参数并设定其属性。
-
打开活动的上下文菜单选择【New Child Diagram】-【Composite Structure Diagram】创建复合结构图。这时该活动表示如下:
-
可以看到圆角矩形的右下角增加了一个【⚯】符号。这表明该活动包含一个复合结构图。
-
双击活动打开内部的复合结构图。
-
设计活动的内部逻辑。
-
使用ReadVariable动作读取输入参数的值,使用AddVariable动作写入输入参数的值。
所有的操纵结束以后,我们得到以下的复合结构图。
使用活动
直接使用
直接定义活动以后,可以像输入输出管脚一样在参数节点上连接控制流,对象流。这就是上一篇文章中的场景。
调用活动
无论哪种方式定义的活动,在EA的ProjectBrowser中的表示都是一样的。
上图中红框中的是直接定义的活动,蓝框中的是复合结构图方式定义的活动。二者不光表示方式相同,调用方式也相同:
-
将对应节点拖动到调用侧的活动图中。
-
在出现的【Paste Activity】中,进行基本的设定。
Drop as:选择Invacation(Action)。
Name:输入调用的名称,此处相当于别名。
Structual:共有三个选项
Select:EA会接着显示如下【Strutual Element】对话框,可以从里面选出想要的管脚。
None:不复制输入/输出管脚。
All:复制全部的输入/输出管脚。
上述操作完成后,可以得到下面的活动调用操作。注意红圈中的图形。
两种定义方式生成的活动被调时的表示都是一样的,但是双击复合调用活动符号时,定义复合结构图的活动会表示下一层次的活动图。而直接定义的活动只会显示属性对话框。
差不多十年之前,第一次带一个规模比较大,严格按照开发流程进行的项目时,就用到了流程图,那时候给大家讲动作和活动的区别时是这样说的:
如果表现的是函数(含操作,方法)调用,就用活动,如果是简单的处理就用动作。
今天从UML活动图的观点看来,这并不是一个准确的说法。
函数调用在活动图中是动作,不是活动,函数定义那部分才是。
以上就是今天的文章,如果它能给您带来些许收获,欢迎推荐给您的朋友!
阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】!