他和流程图flowchart类似,但不同是他们支持并行行为parallel bahavior。
见图11.1
完毕后遇到一个fork分叉。一个分叉fork有一个收入流incoming flow和一些外出的并行流outgoing concurrent flow。
图中fill order、send invoid和兴许的动作都并行出现。这意味着他们间的顺序是不相干的。
活动图非常少描写叙述我必须尾随的顺序相关的规则,这对于业务模型businessmodeling非常重要,由于这些过程常常并行出现。这在并行算法concurrent algorithm中也非常重要。
当你有并行动作,你须要同步。我们使用join结合。
对于一个join结合,输出的流仅仅在全部输入的流都到达reach这个join时才进行。
你会发现活动图中的节点叫做action动作。不是活动activity。
严格讲一个活动值的是一系列动作。所以活动图是由一些动作组成的。
条件行为是由decisions决策和merge合并描写叙述。
一个决策decision叫做分支branch。有一个输入流和一些守卫的输出流。
每一个输出流有一个守卫:一个放在方括号中的布尔表达式。
每次你遇到一个决策时。你仅仅能选择一个输出流,所以这些守卫必须相互排斥。使用[else]作为守卫表示当该决策的全部其它守卫都是false的时候就使用它。
一个merge合并有多个输入流和一个输出流,表示条件行为的结束。
【分解一个动作decompose an action】
动作可被分解为子活动subactivity。
见图11.2
见图11.3
也可用class-name::method-name表示一个方法的调用。你也能够写一个代码片段到动作符号去。假设引入的行为不仅仅是一个调用的话。
【分开partition】
见图11.4
【信号signal】
动作也能够回应信号。一个时间信号time signal出现因为时间的通路passage。
一个信号表示这个活动收到一个来自外部进程的事件。
这意味着活动连续的监听那些信号。活动图定义了活动怎样反应。
见图11.5
见图11.6
见图11.7
【栓和变换pins and transformations】
动作能够有參数。假设你希望展示參数则能够用pins。你须要确认输出的參数和还有一个输入的參数是否一致,假设不一致则须要转换transformation。
见图11.8
见图11.9
见图11.11
一个合并说明是附加到一个合并的布尔表达式。每次一个记号token到达一个合并的时候,合并说明会被检測,假设为真,则输出记号被发射emit。
见图11.12
【uml精粹 读书笔记分享】
原文:http://www.cnblogs.com/gcczhongduan/p/5066883.html