專家指導(dǎo) 如何在UML序列圖中表示分支
本節(jié)向大家介紹一下如何用在UML序列圖中表示分支,引起分支的原因主要有兩個(gè),在這里和大家分享一下,希望對你在以后的學(xué)習(xí)過程中能有所幫助。下面就讓我們一起來看一下詳細(xì)介紹吧。
如何用在UML序列圖中表示分支
考慮引起分支的原因:
1。異常處理,比如接收到錯(cuò)誤的消息,網(wǎng)絡(luò)斷開等
2。復(fù)雜的業(yè)務(wù)流程,比如在訂單處理程序中,對于vip客戶和普通用戶可能分別使用不同的數(shù)據(jù),而最后還要統(tǒng)一進(jìn)入計(jì)價(jià)和發(fā)貨流程
不同的情況下,分支的流程可能很大或很小,很難有完善的辦法來滿足所有的情況。
原始的方法是在UML序列圖中放棄分支,因?yàn)橐鸱种ё钪饕脑蚴钱惓G闆r,而異常情況的處理一般都很簡單,或者進(jìn)入標(biāo)準(zhǔn)的處理辦法,這樣就可以在發(fā)生異常的地方加個(gè)小小的注釋,這樣既不影響整體流程,又保證了不丟失細(xì)節(jié)信息。然而難于處理的是正常的分支,都要有很復(fù)雜的處理,
UML2.0提到了兩種方法來臨時(shí)解決分支的概念,一種是在順序圖中產(chǎn)生分支的地方插入一個(gè)引用,對于每個(gè)分支,分別用一個(gè)單獨(dú)的序列圖來表示,這種方法要求分支后不再聚合,并且各分支間沒有太多具體關(guān)聯(lián)。這種方法類似于函數(shù)的重用,比如某個(gè)分支在很多用例中被用到,可以在各個(gè)序列圖中引用它而避免重復(fù)。代價(jià)則是UML序列圖變得多而繁雜,讓人看起來不能夠一目了然。
對于非常復(fù)雜的業(yè)務(wù)來說,可以采用流程圖和順序圖相互輔助的方法來表達(dá)完整的信息,順序圖側(cè)重組件交互的時(shí)間關(guān)系,活動圖側(cè)重組件交互的空間關(guān)系,流程圖側(cè)重控制流程的時(shí)間關(guān)系,我一直覺得UML中的活動圖和狀態(tài)圖過于細(xì)節(jié),沒辦法和順序圖很好的結(jié)合(也許是功力不夠:))。
再進(jìn)一步說,在實(shí)現(xiàn)真正的MDA之前,采用UML來描述的目的是為了更好的理解業(yè)務(wù)和實(shí)現(xiàn),而業(yè)務(wù)和實(shí)現(xiàn)是一個(gè)立體的景象,空間和時(shí)間都是它的一個(gè)方面,因此用靜態(tài)的順序圖或者流程圖沒辦法同時(shí)表示它的時(shí)間和空間。我所想到的一個(gè)辦法是:在組件圖上用動畫效果演示交互流程,就像圍棋打譜程序中對于參考圖的處理。期待這樣的工具早點(diǎn)出來。
【編輯推薦】
- 養(yǎng)成良好的UML序列圖繪制習(xí)慣
- 利用UML序列圖設(shè)計(jì)Java應(yīng)用程序
- 如何繪制UML用例圖
- UML中各種UML圖形的建立步驟簡明介紹
- UML序列圖詳解