UML之時序圖詳解


原文鏈接:https://blog.csdn.net/fly_zxy/article/details/80911942

什么是時序圖


時序圖(Sequence Diagram),又名序列圖、循序圖,是一種UML交互圖。它通過描述對象之間發送消息的時間順序顯示多個對象之間的動態協作。

讓我們來看一看visio2016對時序圖的的解釋。

 

 

時序圖的元素


我們在畫時序圖時會涉及7種元素:角色(Actor)、對象(Object)、生命線(LifeLine)、控制焦點(Activation)、消息(Message)、自關聯消息、組合片段。其中前6種是比較常用和重要的元素,剩余的一種組合片段元素不是很常用,但是比較復雜。我們先介紹前6種元素,在單獨介紹組合片段元素。

角色(Actor)


系統角色,可以是人或者其他系統,子系統。以一個小人圖標表示。


對象(Object)


對象位於時序圖的頂部,以一個矩形表示。對象的命名方式一般有三種:
    1 對象名和類名。例如:華為手機:手機、loginServiceObject:LoginService。
    2 只顯示類名,不顯示對象,即為一個匿名類。例如::手機、:LoginSservice。
    3 只顯示對象名,不顯示類名。例如:華為手機:、loginServiceObject:。


生命線(LifeLine)


時序圖中每個對象和底部中心都有一條垂直的虛線,這就是對象的生命線(對象的時間線)。以一條垂直的虛線表。


控制焦點(Activation)


控制焦點代表時序圖中在對象時間線上某段時期執行的操作。以一個很窄的矩形表示。


消息(Message)


表現代表對象之間發送的信息。消息分為三種類型。
    同步消息(Synchronous Message)
消息的發送者把控制傳遞給消息的接收者,然后停止活動,等待消息的接收者放棄或者返回控制。用來表示同步的意義。以一條實線+實心箭頭表示。
    異步消息(Asynchronous Message)
消息發送者通過消息把信號傳遞給消息的接收者,然后繼續自己的活動,不等待接受者返回消息或者控制。異步消息的接收者和發送者是並發工作的。以一條實線+大於號表示。
    返回消息(Return Message)
返回消息表示從過程調用返回。以小於號+虛線表示。


自關聯消息


表示方法的自身調用或者一個對象內的一個方法調用另外一個方法。以一個半閉合的長方形+下方實心剪頭表示。

 

認識時序圖六種元素


我們來使用Visio2016來畫一個用戶打開微信掃描二維碼支付流程時序圖,通過這個時序圖來認識剛剛介紹的6種時序圖元素。

 

 

時序圖解釋:


1,用戶輸入手機密碼
2,打開手機
3,打開微信掃一掃
4,返回微信掃一掃界面
5.1 掃描商家收款碼
5.2 商家生成收款二維碼
5.3 返回收款二維碼
5.4 識別商家收款碼
6,提示用戶輸入微信支付密碼
7.1 輸入微信支付密碼
7.2 微信驗證用戶輸入密碼正確
7.3 向商家匯款

7.4 匯款成功
8,提示用戶支付成功

 

組合片段


組合片段用來解決交互執行的條件和方式,它允許在序列圖中直接表示邏輯組件,用於通過指定條件或子進程的應用區域,為任何生命線的任何部分定義特殊條件和子進程。組合片段共有13種,名稱及含義如下:

 

 


常用組合片段舉例


抉擇(Alt)


抉擇在任何場合下只發生一個序列。 可以在每個片段中設置一個臨界來指示該片段可以運行的條件。else 的臨界指示其他任何臨界都不為 True 時應運行的片段。如果所有臨界都為 False 並且沒有 else,則不執行任何片段。Alt片段組合可以理解為if..else if...else條件語句。

我們還拿微信支付的時序圖舉例,如果7.3向商家匯款的成功或失敗流程需要在時序圖中體現出來,可以這么使用Alt片段組合。

 

 

選項(Opt)


包含一個可能發生或不發生的序列。Opt相當於if..語句。

 

 

循環(Loop)


片段重復一定次數,可以在臨界中指示片段重復的條件。Loop相當於for語句。

 

 

並行(Par)


並行處理,片段中的事件可以並行交錯。Par相當於多線程。

 

 

時序圖的繪制工具


畫時序圖的工具有很多,但是個人只用過微軟visio工具,感覺很好用,可以滿足需要。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM