在Enterprise Architect中,泳道图应当如何绘制,泳道图中的元素跨过泳道之后又应当如何调整,处理这些事项之前,需要先分清楚两种做法:一种是普通的Swimlanes,它仅仅是用线条将图划分成纵向或横向的若干区域;另一种则是Activity Partition,它在活动图里更接近于一种带有建模含义的分区。EA的官方文档中曾提到,Swimlanes可以被用在所有图类型当中,用来把图划分成不同的逻辑区域;而Activity Partition则是专门用在活动图里,用来表达分区的。
一、Enterprise Architect泳道图怎么绘制
在EA里面绘制泳道图,不太建议一上来就直接往图中拖进大量的活动元素。比较稳妥的做法是先确定泳道本身代表什么,然后再去绘制流程。泳道可以用来表示部门、角色、系统、流程阶段,也可以用来表示前台、后台、外部系统这类责任边界。
1、先选择一种合适的图类型
如果只是做业务流程的说明,可以在活动图、BPMN图或者其他流程图当中加入Swimlanes;如果要表达的是UML的活动分区,那还是建议去用Activity Partition。这两样东西看上去都很像泳道,但它们的用途并不相同。普通的Swimlanes更偏向图形上的划分,适合把流程按照责任区域排布开来;Activity Partition则更适合在活动图里表示某个动作到底属于哪一个分区。如果后续还要做模型追踪、语义表达或者规范评审,那就不能只为了外观上看着像泳道,便随意地去使用图形泳道。
2、用Swimlanes and Matrix把区域划分出来
通过【Swimlanes and Matrix】这一项,去设置泳道的方向、名称,还有数目。
EA的Swimlanes Matrix是可以把一张图划分成一个一个的行列单元格的,顶部可以放置列的标题,左边则可以放置行的标题,这种形式比较适合用来做那种角色和阶段相互交叉的流程图。如果只是需要简单的角色划分,那用单一方向的泳道也就足够了;如果既想把部门表达出来,又想着把阶段也表达出来,那就可以去考虑矩阵的方式,不过,也不要把图拆得太过细碎,否则往后面,元素会变得很难摆放。
3、按照流程的顺序去放置元素
等到泳道都建好了之后,再去放置像是Action、Activity、Decision、Merge、Start、End这一类的流程元素,并且用Control Flow来把它们连接起来。放置元素的时候,要能让看图的人顺着流程一路看下去。一般来说,不是从左往右,就是从上往下去排布,不要弄得一会儿是横向流动,一会儿又跳到纵向去。碰到需要跨角色协作的情况,流程线是可以跨过泳道的,但是活动本身,还是应当尽量放在真正去执行它的那一条泳道里面。
二、Enterprise Architect泳道图元素跨泳道后怎么调整
元素跨在泳道上面,比较常见于这么两种情况:一种是元素在被拖动的时候没有与边界对齐,另一种则是泳道的宽度被调整过之后,原来那些元素的位置遭到了挤压。处理的时候,不能只看元素是不是还在那个框的里面,还要去看它表达出来的责任归属到底对不对。
1、先去判断这个元素应该属于哪一条泳道
对照【元素名称】、【责任角色】还有【流程含义】,去确认清楚这个动作到底是由谁来执行的。
就比如,“提交申请”应当放在申请人的泳道里面,“审批申请”则应当放在主管的泳道里面,而“写入系统记录”这一项,就可能是要放在系统的泳道里面。如果那个元素正好压在两条泳道之间的分界线上,看图的人就不容易弄清楚责任到底归谁。碰到这种情况,就应当把元素整个地移动到对应泳道的内部去,而不是让它就那样停在分界线上。
2、去调整泳道的宽度和元素的位置
如果元素本身太宽了,那就可以先把对应的那一条泳道给拉宽一些,然后再去移动那个元素。不要只为了把它硬塞进泳道里面,就把元素挤压得特别窄,结果弄得里面的文字频繁换行。在EA当中,Activity Partition这一项,它支持通过一个Dockable选项,让各个分区能够更加整齐地去对齐和连接,官方的文档也提到过,这个选项就是用来让Activity Partitions在图中能够排列得整整齐齐的。如果用的是普通的Swimlane,那就要主要靠泳道的设置,再加上在图面上手动拖动,来把布局给恢复过来。调整的时候,是可以先把承载着最多元素的那一条泳道给放大,然后再去处理零散的几个跨界元素的。
3、把跨泳道的流程线给整理清楚
等元素都被移回到正确的泳道之后,还要再去看看那些连接线是不是已经被弄乱了。跨泳道的连接线,是可以存在的,但是不要让线条从太多不相干的元素中间穿过去。到了必要的时候,可以使用直角线、自动布局,或者自己去手动调整一下折点,好让流程之间的关系能显得更清楚一些。
三、泳道图调整后怎么避免再次错乱
泳道图到了后期,最容易乱在这么两个地方:一个是新增元素的时候随手就往里头放,另一个则是在调整完泳道的宽度之后,没有同步去检查那些流程线。特别是那种有多个人一同维护一个模型的情况,就更需要有固定的画法了。
1、把泳道的含义统一起来
在同一张图里面,泳道最好只用来代表一种分类的方式。不要弄得上半部分是按部门来划分,下半部分又换成了按系统模块来划分。如果确实有这两个维度都需要表达出来,那就可以去用Swimlanes Matrix,或者干脆拆成两张图来分别表达。
2、重要的图在保存之前要先检查一遍布局
在保存之前,先去整体看上一遍,那些元素是不是压在了线上,连接线是不是交叉得太过厉害,标题是不是完整的,泳道的排列顺序是不是符合业务流程。在EA里面,也还是可以再去创建子泳道的,它就是用来在一个大的泳道里面,再去做进一步的分组,就比如,把一个流程再细分成输入、处理中,还有已经完成这些状态。但是这个子泳道也不能用得太过头了,层级一旦多起来,整张图就会显得非常拥挤。
3、不要拿泳道去替代模型当中的关系
泳道只是帮助读图的一种手段。如果想要去表达责任、系统的归属,或者是需求的追踪,那最好还是通过元素自身的属性、连接的关系,或者是模型的结构,来把意思补充说明清楚。光靠着把元素放在某一条泳道里面,到了后面要去查询和追溯的时候,那个能力是会比较弱的。
总结
Enterprise Architect泳道图怎么绘制,以及元素在跨过泳道之后又该怎么去调整,这件事情的关键,是先要选对到底是用Swimlane还是Activity Partition,然后再按照角色、系统或者阶段去把区域划分出来。在绘制的时候,先把泳道的含义确定下来,然后再去放置流程元素;元素跨过泳道之后,要先判断责任的归属,然后再去调整泳道的宽度、元素的位置,还有那些连接的线条。泳道图并不是弄得越复杂就越好,边界清楚、流程顺畅、责任明确,这样的图到了后面评审和沟通的时候,才是更加好用的。
