綜述
時序圖是一種強調(diào)時間順序的對象交互圖(1.是描述對象間交互的圖 2.這種圖是強調(diào)時間順序的),換句話說就是描述誰和誰先做什么,然后再做什么的圖
在時序圖中,首先把參與交互的對象放在圖的上方,沿X軸方向排列,通常把發(fā)起交互的對象放在左邊,較下級的對象依次放在右邊,然后把這些對象發(fā)送和接受的消息沿Y軸方向按時間順序從上到下放置。這樣就提供了控制流隨著時間推移的清晰的可視化軌跡。
推薦工具:依然是StarUML
時序圖的基本元素
- 1.對象(Object)
【定義】:表示的是時序圖中的參與者
【描述方式】:在外面畫一個矩形,矩形內(nèi)部的描述文字有三種格式:1.對象名: 類名 2. 類名 3.對象名。
【備注】大多數(shù)情況下,在描述上并沒有將對象單獨拿出來作為一種基本元素,都是將對象放在生命線(后面會介紹)中一起提到

- 2.生命線(Lifelines)
【定義】:每個對象的底部中心的位置都帶有生命線。生命線是一個時間線,從時序圖的頂部一直延伸到底部,長度當(dāng)然由你的業(yè)務(wù)來決定啦,生命線表示了對象存在的時間
【描述方式】:表示為從對象圖標向下延伸的一條虛線

- 3.控制焦點(Focus Of Control)
【定義】:用來表示時序圖中對象執(zhí)行某個操作的一段時間,在很多文章里面將其形象的理解為程序函數(shù) { } 中的內(nèi)容。
【描述方式】:用一個細長的矩形狂表示,頂端與收到的消息產(chǎn)生時間對齊

- 4.消息(Messages)
【定義】:A 向 B 發(fā)送消息message1,其實就是叫 B 去調(diào)用 message1這個方法。消息一般分為同步消息,異步消息和返回消息,自關(guān)聯(lián)消息(也就是自己調(diào)用自己的方法)
【描述方式】:同步消息用帶實心箭頭的直線表示,異步消息用帶普通箭頭的直線表示,返回消息用虛線普通箭頭表示,返回消息也可以區(qū)分同步和異步,在StarUML中可以自行修改。
【備注】:同步和異步的區(qū)分一方面是按照函數(shù)本身的執(zhí)行方式來區(qū)別,另一方面是按照實際做的業(yè)務(wù)本身來區(qū)別。舉個栗子比如說下載素材,下載這件事情本來是異步去執(zhí)行,但是有可能這個具體的函數(shù)看起來是同步執(zhí)行的,這個時候就看你怎么選擇了。

- 5.創(chuàng)建對象
【定義】:創(chuàng)建對象也算是消息的一種,通過發(fā)送消息的方式創(chuàng)建對象。
【描述方式】:在時序圖的圖形表示中,和其他對象不一樣的是,其他對象通常位于整個時序圖的頂部,而被創(chuàng)建的對象則位于圖的中間部位。
【備注】:創(chuàng)建在使用中比較少看到,基本都是最開始就把所有對象創(chuàng)建好,然后畫時序圖,為了以后能看懂別的時序圖,這里特地提出。

- 6.銷毀對象
【定義】:創(chuàng)建對象也算是消息的一種,通過發(fā)送消息的方式銷毀對象。
【描述方式】:描述方式?jīng)]有什么變化,就是發(fā)送消息給對象,只是在對象的生命線中會添加一個”X“,來進行標示。
【備注】:刪除對象一般在時序圖中也不是很常見,如果沒有要特別注意的刪除事件,一般都是不寫的。

- 7.結(jié)束點
【定義】:標記整個業(yè)務(wù)結(jié)束的位置
【描述方式】:實心黑圓圈

來個示例吧
以AR素材下載為例,簡單講述進入VC之后自動下載到最后刷新界面的時序圖

參考文章
https://www.ibm.com/developerworks/rational/library/3101.html
http://www.codemag.com/Article/0203081
http://www.sparxsystems.cn/resources/uml2_tutorial/uml2_sequencediagram.html
http://www.cleey.com/blog/single/id/873.html