架构真意:企业级应用架构设计方法论与实践
上QQ阅读APP看书,第一时间看更新

2.1.4 事件流

如果用例类型是“业务功能”,那么在用例编写的时候,最主要的工作就是编写“事件流”,也就是去描述那个业务流程。在编写事件流的时候,通常将事件流分为三个部分:基流、分支流和替代流。基流又称为“主流程”或“成功流”,这里的“成功流”最能体现基流的基本特征,也就是,在所有流程的成功操作的情况下,整个流程是怎样走下来的。所以,基流实际上是一条不带任何分支的流程,通过编号来描述它们的顺序。

分支流与替代流都是基流的分支,它们的区别如下。分支流从基流分支出来,经过一个流程以后,最终还会回到基流,因此分支流实际上是一段“可走可不走”的流程。替代流又称为“异常流”,但这里的异常不是技术的异常,而是业务的异常,即用户进行了错误的操作,或进入某种错误的状态,因此分支出来,经过一段处理就直接结束了,而不会回到基流。也就是说,替代流分支出来以后,就直接将基流后面的流程给替代了。

分支流与替代流在编写的时候,通过编号来表示该分支是从基流的哪个步骤分支出来的。替代流在分支出来的时候,还要描述是什么条件触发的分支。而当分支流与替代流分支出来以后,如果还有多个操作步骤,也要用编号来描述顺序,如表2-2所示。

表2-2 带分支流程的事件流举例

在编写事件流时应当注意,每个用例的事件流不要过于复杂,流程不宜过多,因为这样不利于阅读和理解。用例描述应当清晰明了、易于阅读,这是用例描述的初衷。但是,要编写的流程特别复杂时,该怎么办呢?可以将其拆分为多个子用例。例如,医生问诊是一个非常复杂的过程,为了让这个过程能够更加清晰地展现出来,我们将问诊分为“主述问诊”“序列问诊”“联想问诊”与“补充问诊”几个子用例,如表2-3所示。

表2-3 对子用例的引用

在该用例中,为了简化事件流,将复杂但相对独立的一些流程封装在一个子用例中,然后,该用例通过类似“进入‘主述问诊’用例”的描述来完成对子用例的引用,不需要在该用例中描述这些复杂的过程。

然而,如果用例类型是“查询报表”,那么整个用例描述的格式就完全不一样了,它关注的重点不再是那个流程,而是过滤条件、输出字段、计算公式、数据链接等内容,如表2-4所示。

如果用例类型是“图表展示”,那么整个用例描述关注的是图表内容、展现形式、数据频率与数据来源等信息,如表2-5所示。

表2-4 查询报表的用例描述

表2-5 图表展示的用例描述