大家好,又见面了,我是你们的朋友全栈君。
事件流除了用文本形式来表示外,还经常用活动图来表示。为什么有了文本形式以后还要开发这种框图形式呢?这是因为利用文本形式虽然很有用,但是如果事件流逻辑复杂,则文本形式比较难阅读和理解,利用框图将比文本形式来得更加有效。
活动图显示与文本事件流相同的信息。我们在业务模型中用活动框图描述业务过程的工作流。
活动图的组成要素主要有:起始点和终止点、活动、迁移、决策框、分支和汇聚。
用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终点。起始点和结束点都是特殊的活动节点。如下图所示。
活动是活动图的基本组成部分,一个活动图至少应该包括一个活动。活动用以下符号表示。
另外,可以在活动中增加更多详细的步骤,并且我们通常在这些操作前面加上一些标记字样。如进入活动室发生的操作,标有entry字样;活动进行时发生的操作,直到离开活动,标有do字样;离开活动时发生的操作,标有exit字样;特定事件发生时的操作,标有event字样和事件名。如下图所示。
迁移指定某活动完成后下一个即将执行的活动。迁移可描述活动的执行顺序。迁移又称控制流。迁移标记格式为<事件>[<守护条件>],如下图所示。
语义:当活动1结束时,发生了事件,且守护条件成立,则进入活动2。
约束规则:不允许在一个活动图中出现两个标记完全相同的迁移。如果一个活动有多个事件相同的迁移出口,则必须用守护条件进行区分。
举例:如,在一个有红绿灯的人行道口,汽车在等待绿灯。司机先准备好启动,待绿灯变亮且观察到无行人过马路情况下开动汽车。如下图所示。
迁移的两种类型:
事件和分支:
定义:决策框是一个无动作的特殊活动框。它仅仅是根据上一个活动执行后产生的条件判断,决定执行哪一条转换,而不做任何实际动作。因此,它是一种无动作节点,仅仅是用于描述某个执行流程的语法/语义结构。
决策框又称决策点
守护条件和决策框分别称为控制点和决策点,它们有什么区别呢? 守护条件可以增强活动图,使用控制点和决策点可以建模修改活动图流程的条件
简单来说,守护条件中的条件可以是无关系的,而决策框中的分支条件必须是有关系的。
定义:一种用于标识可并发活动的语法/语义符号
语义:分叉没有任何动作,仅仅表明分叉后变迁流入的活动没有执行顺序依赖关系,可以并行执行。如下图中,活动2与活动3可以并行执行,但它们都必须在活动1完成之后才能执行
约束规则:只允许一个活动引发分叉
定义:一种用于标识需同步活动的语法/语义符号。
语义:汇聚也没有任何动作,仅仅表明汇聚前变迁流出的活动必须全部执行完才能执行汇聚后变迁指向的 活动。如下图中,活动2与活动3同步执行完成后,活动4才能执行。
约束规则:只允许汇聚到一个活动。
“活动图” 比较直观易懂;与传统的流程图十分的相近,只要能够读懂活动图,就不难画出活动图。 绘制时首先决定是否采用泳道:主要根据活动图中是否要体现出活动的不同实施者。 然后尽量使用分支与汇聚等基本的建模元素来描述活动控制流程。 如果需要,加入对象流以及对象的状态变化来表示更多的信息。但是,需要注意活动图的建模关键是表示出控制流,其它的建模元素都是围绕这一宗旨所进行的补充。
对工作流建模:用于业务建模的时候,每一条泳道表示一个职责单位,该图能够有效地体现出所有职责单位之间的工作职责,业务范围及之间的交互关系、信息流程。
建模时应遵循以下策略:
对操作建模:每一个对象占据一个泳道,而活动则是该对象的成员方法。
建模时应遵循以下策略:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135187.html原文链接:https://javaforall.cn