![架构真意:企业级应用架构设计方法论与实践](https://wfqqreader-1252317822.image.myqcloud.com/cover/444/39427444/b_39427444.jpg)
2.1.4 事件流
如果用例类型是“业务功能”,那么在用例编写的时候,最主要的工作就是编写“事件流”,也就是去描述那个业务流程。在编写事件流的时候,通常将事件流分为三个部分:基流、分支流和替代流。基流又称为“主流程”或“成功流”,这里的“成功流”最能体现基流的基本特征,也就是,在所有流程的成功操作的情况下,整个流程是怎样走下来的。所以,基流实际上是一条不带任何分支的流程,通过编号来描述它们的顺序。
分支流与替代流都是基流的分支,它们的区别如下。分支流从基流分支出来,经过一个流程以后,最终还会回到基流,因此分支流实际上是一段“可走可不走”的流程。替代流又称为“异常流”,但这里的异常不是技术的异常,而是业务的异常,即用户进行了错误的操作,或进入某种错误的状态,因此分支出来,经过一段处理就直接结束了,而不会回到基流。也就是说,替代流分支出来以后,就直接将基流后面的流程给替代了。
分支流与替代流在编写的时候,通过编号来表示该分支是从基流的哪个步骤分支出来的。替代流在分支出来的时候,还要描述是什么条件触发的分支。而当分支流与替代流分支出来以后,如果还有多个操作步骤,也要用编号来描述顺序,如表2-2所示。
表2-2 带分支流程的事件流举例
![](https://epubservercos.yuewen.com/262533/20620328401733906/epubprivate/OEBPS/Images/2b2.jpg?sign=1738955146-7aV22B4tQ1WVqVvXcrvb9ioprs01xXMG-0-571910f4b81f575b6677c50bb2224856)
在编写事件流时应当注意,每个用例的事件流不要过于复杂,流程不宜过多,因为这样不利于阅读和理解。用例描述应当清晰明了、易于阅读,这是用例描述的初衷。但是,要编写的流程特别复杂时,该怎么办呢?可以将其拆分为多个子用例。例如,医生问诊是一个非常复杂的过程,为了让这个过程能够更加清晰地展现出来,我们将问诊分为“主述问诊”“序列问诊”“联想问诊”与“补充问诊”几个子用例,如表2-3所示。
表2-3 对子用例的引用
![](https://epubservercos.yuewen.com/262533/20620328401733906/epubprivate/OEBPS/Images/2b3.jpg?sign=1738955146-vvU1cTzdjtxq3Ymyk5xiOvn4nGopm7mm-0-1a216306a2fbb06f175513a676ea9d11)
![](https://epubservercos.yuewen.com/262533/20620328401733906/epubprivate/OEBPS/Images/037-i.jpg?sign=1738955146-nPcfkvOIIvKF8Qz5nfxAtUHl7Awsr5Ah-0-e7174f7d295803c17efb1e5b5a7c92ce)
在该用例中,为了简化事件流,将复杂但相对独立的一些流程封装在一个子用例中,然后,该用例通过类似“进入‘主述问诊’用例”的描述来完成对子用例的引用,不需要在该用例中描述这些复杂的过程。
然而,如果用例类型是“查询报表”,那么整个用例描述的格式就完全不一样了,它关注的重点不再是那个流程,而是过滤条件、输出字段、计算公式、数据链接等内容,如表2-4所示。
如果用例类型是“图表展示”,那么整个用例描述关注的是图表内容、展现形式、数据频率与数据来源等信息,如表2-5所示。
表2-4 查询报表的用例描述
![](https://epubservercos.yuewen.com/262533/20620328401733906/epubprivate/OEBPS/Images/2b4.jpg?sign=1738955146-6I00dwWZuBmtV64WuOdz8CF0WLst54HW-0-87f44eb78a439d073910769034750df9)
表2-5 图表展示的用例描述
![](https://epubservercos.yuewen.com/262533/20620328401733906/epubprivate/OEBPS/Images/2b5.jpg?sign=1738955146-SKFtoe6EebxTgKwCpeofNETXAYnNoLrY-0-132581f9cb4575678d030c4e0e5ccf7f)
![](https://epubservercos.yuewen.com/262533/20620328401733906/epubprivate/OEBPS/Images/039-i.jpg?sign=1738955146-zxzZ2za2kMem74iq6DWdfka9E12bHT9l-0-ddebc3868dddf4ea913a5c4703a8f29d)