互動圖用來描述系統中的對象是如何進行相互作用的,即一組對象是如何進行訊息傳遞的。
互動圖由一組對象和它們之間的關係構成,其中包括:需要什麼對象,對象相互之間發送什麼訊息,什麼角色啟動訊息以及訊息按什麼順序發送。
互動圖的分類:
互動圖主要分為這兩種:順序圖和共同作業圖表。
- 順序圖—強調訊息的事件順序
- 共同作業圖表—強調對象之間的互動關係
順序圖描述了對象之間傳遞訊息的時間順序,它用來表示用例中的行為順序。
順序圖,包括時間順序,不包括對象聯絡。也就是說我們在建立順序圖當中,只需考系統慮系統行為的先後順序,而不需要考慮他們之間的關係。把對象之間的行為按照時間的先後順序畫出來就可以了。
在UML中,順序圖由一個二維圖描述系統中各個對象之間的互動關係。其中,縱軸表示時間,橫軸表示參與互動作用的對象。
順序圖的構成:
- —對象與角色:上面的矩形框。在互動圖中,參與互動的對象既可以是具體的事物,又可以是原型化的事物。作為具體的事物,一個對象代表現實世界中的某個東西。
- 生命線與控制焦點:每個對象都有自己的生命線,物件生命線是一條垂直的虛線,用來表示一個對象在一段時間記憶體在
- 訊息:是對象之間的通訊,可以是訊號或者操作調用。
其中訊息主要有這幾種形式:
- 調用(Call):表示調用某個對象的一個操作。可以是對象間的調用,也可以使對象本身的調用。
- 返回(Return) 返回表示被調用的對象向調用者返回一個值。
- 發送(Send):對象發送訊號,與調用不同,調用是同步的機制,而訊號是一種非同步機制。也就是說,當對象A調用對象B時,A發送完訊息之後是會等B執行完所調用的方法之後再繼續執行的;如果說對象A發送了一個訊號給對象B,那麼A在發送完訊號之後,就會繼續執行,不會等待。
- —建立(Creat)建立意味著該物件生命線的開始,
- 銷毀(Destory)通常串連著的是目標對象的生命終止符號
訊息的表示方法:用訊息線表示,一個對象到另一個對象的訊息用跨越物件生命線的一條訊息線表示出來,包括反身訊息
訊息的分類:
同步:在一定程度上可以看作是一個單線程,這個線程請求一個方法後,就待這個方法給他回複,否則他就不往下執行。
非同步:在一定程度上可以看做是一個多線程。請求一個方法後,就不管了,繼續執行其他的方法。
PS:一般情況下用簡單訊息就行了。
共同作業圖表:強調參加互動對象的組織。
共同作業圖表與順序圖的關係:
- 二者在語義上等價
- 二者可以相互轉化
- 二者的側重點不同:
- 順序圖強調時間順序
- 共同作業圖表側重對象之間的關係。