本节向大家介绍一下如何用在UML序列图中表示分支,引起分支的原因主要有两个,在这里和大家分享一下,希望对你在以后的学习过程中能有所帮助。下面就让我们一起来看一下详细介绍吧。
如何用在UML序列图中表示分支
考虑引起分支的原因:
1。异常处理,比如接收到错误的消息,网络断开等
2。复杂的业务流程,比如在订单处理程序中,对于vip客户和普通用户可能分别使用不同的数据,而最后还要统一进入计价和发货流程
不同的情况下,分支的流程可能很大或很小,很难有完善的办法来满足所有的情况。
原始的方法是在UML序列图中放弃分支,因为引起分支最主要的原因是异常情况,而异常情况的处理一般都很简单,或者进入标准的处理办法,这样就可以在发生异常的地方加个小小的注释,这样既不影响整体流程,又保证了不丢失细节信息。然而难于处理的是正常的分支,都要有很复杂的处理,
UML2.0提到了两种方法来临时解决分支的概念,一种是在顺序图中产生分支的地方插入一个引用,对于每个分支,分别用一个单独的序列图来表示,这种方法要求分支后不再聚合,并且各分支间没有太多具体关联。这种方法类似于函数的重用,比如某个分支在很多用例中被用到,可以在各个序列图中引用它而避免重复。代价则是UML序列图变得多而繁杂,让人看起来不能够一目了然。
对于非常复杂的业务来说,可以采用流程图和顺序图相互辅助的方法来表达完整的信息,顺序图侧重组件交互的时间关系,活动图侧重组件交互的空间关系,流程图侧重控制流程的时间关系,我一直觉得UML中的活动图和状态图过于细节,没办法和顺序图很好的结合(也许是功力不够:))。
再进一步说,在实现真正的MDA之前,采用UML来描述的目的是为了更好的理解业务和实现,而业务和实现是一个立体的景象,空间和时间都是它的一个方面,因此用静态的顺序图或者流程图没办法同时表示它的时间和空间。我所想到的一个办法是:在组件图上用动画效果演示交互流程,就像围棋打谱程序中对于参考图的处理。期待这样的工具早点出来。
【编辑推荐】