小编给大家分享一下EA画UML活动图中活动是什么意思,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
语义
活动是对行为的说明,它描述了计算过程顺序和并发的步骤。状态机和活动有相似之处,它们都描述了一段时间中出现的状态序列以及引起状态之间改变的条件。两者的不同点在于状态机关注的是执行或者经历一次计算的单个对象的状态,而活动关注的则是计算本身的状态,它可能跨越多个对象,并且显式地对活动节点之间的控制流和信息流建模。
活动具有输入和输出参数,分别代表了提供给活动执行所需的值以及执行活动所产生的值。活动可以作为参数化的行为(behaviour)附加到其他各种行为上。
动作(活动也一样)要求其所有的输入上都出现令牌,并且会在所有的的输出上都产生令牌。
执行规则基本上是并发的。如果两个活动节点被不同的令牌集合激活,那么它们可以并发执行。这意味着节点之间没有内在的执行顺序。
—-UML参考手册(第二版)
示例
上面的内容来自UML参考手册,理解中文本身没有问题,但是和实际结合起来就没有那么容易了。我们以前一篇文章中那个解一元二次方程流程为例进行说明。这部分就来就是原创了。先上图。
中间的圆角方框SolveEquation中的内容就是活动。该活动是对解一元二次方程的说明,它描述了计算过程顺序和并发的步骤。
SolveEquation活动具有3个输入参数(系数a,b,c)和1个输出输出参数solution,分别代表了提供给活动执行所需的值以及执行活动所产生的值。
SolveEquation的执行是并发的。如果两个活动节点被不同的令牌集合激活,那么它们可以并发执行。这节点之间没有内在的执行顺序。
当InputA动作(这里假设得到的a!=0)完成以后,执行令牌转移到InputB的同时,SolveEquation的输入a也得到执行令牌,SolveEquation内部使用a变量的节点的输入pin也同时得到令牌。
这里也包含判断a是否为0的判断节点。判断节点只有一个输入,已经具备了执行条件,因为a不等于0,所以计算delta值的动作的a管脚的得到令牌。
参见下图中红线部分。这一切可以认为是和InputB并发执行的。
在a!=0这个分支中一共有四个处理,下面3个处理需要等待delta的计算结果。而计算delta的处理需要等待b, c两个输入管脚上的令牌。
InputB处理结束以后,InputC处理的同时,b管脚得到令牌,同时分发给SolveEquation处理内部各个Action的b管脚。参见下图中蓝线部分。
这时计算delta的处理还差c管脚上的令牌没有到达,所有处理继续等待。
InputC处理结束后,c管脚得到令牌,分发给所有粉色线相连的管脚。终于可以计算delta值了。
delta值计算完成以后,根据判断结果,执行令牌被传送到适当的处理。该处理结束后,在输出管脚生成计算结果并随着令牌转移给SoloveEquation活动的输出管脚上。
以上是“EA画UML活动图中活动是什么意思”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/225780.html