綜述
時序圖是一種強調(diào)時間順序的對象交互圖(1.是描述對象間交互的圖 2.這種圖是強調(diào)時間順序的),換句話說就是描述誰和誰先做什么,然后再做什么的圖
在時序圖中手趣,首先把參與交互的對象放在圖的上方倔韭,沿X軸方向排列,通常把發(fā)起交互的對象放在左邊虹菲,較下級的對象依次放在右邊,然后把這些對象發(fā)送和接受的消息沿Y軸方向按時間順序從上到下放置掉瞳。這樣就提供了控制流隨著時間推移的清晰的可視化軌跡毕源。
推薦工具:依然是StarUML
時序圖的基本元素
- 1.對象(Object)
【定義】:表示的是時序圖中的參與者
【描述方式】:在外面畫一個矩形浪漠,矩形內(nèi)部的描述文字有三種格式:1.對象名: 類名 2. 類名 3.對象名。
【備注】大多數(shù)情況下霎褐,在描述上并沒有將對象單獨拿出來作為一種基本元素址愿,都是將對象放在生命線(后面會介紹)中一起提到
- 2.生命線(Lifelines)
【定義】:每個對象的底部中心的位置都帶有生命線。生命線是一個時間線冻璃,從時序圖的頂部一直延伸到底部响谓,長度當然由你的業(yè)務來決定啦,生命線表示了對象存在的時間
【描述方式】:表示為從對象圖標向下延伸的一條虛線
- 3.控制焦點(Focus Of Control)
【定義】:用來表示時序圖中對象執(zhí)行某個操作的一段時間省艳,在很多文章里面將其形象的理解為程序函數(shù) { } 中的內(nèi)容娘纷。
【描述方式】:用一個細長的矩形狂表示,頂端與收到的消息產(chǎn)生時間對齊
- 4.消息(Messages)
【定義】:A 向 B 發(fā)送消息message1跋炕,其實就是叫 B 去調(diào)用 message1這個方法赖晶。消息一般分為同步消息,異步消息和返回消息辐烂,自關聯(lián)消息(也就是自己調(diào)用自己的方法)
【描述方式】:同步消息用帶實心箭頭的直線表示嬉探,異步消息用帶普通箭頭的直線表示,返回消息用虛線普通箭頭表示棉圈,返回消息也可以區(qū)分同步和異步涩堤,在StarUML中可以自行修改。
【備注】:同步和異步的區(qū)分一方面是按照函數(shù)本身的執(zhí)行方式來區(qū)別分瘾,另一方面是按照實際做的業(yè)務本身來區(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.結束點
【定義】:標記整個業(yè)務結束的位置
【描述方式】:實心黑圓圈
來個示例吧
以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