1. 程式人生 > >UML圖詳解(七)——互動圖(時序圖與協作圖)

UML圖詳解(七)——互動圖(時序圖與協作圖)

一、概念

  • 互動圖描述物件之間的動態合作關係以及合作過程中的行為次序。
  • 互動圖常常用來描述一個用例的行為,顯示該用例中所涉及的物件以及這些物件之間的訊息傳遞情況,即一個用例的實現過程。

互動圖有順序圖和協作圖兩種形式。

  • 時序圖中描述物件按照時間順序的訊息交換。
  • 協作圖著重描述系統成分如何協同工作。

時序圖和協作圖從不同角度表達了系統中的互動和系統行為,它們之間可以相互轉化。
時序圖(Sequence Diagram)也稱為順序圖。

通訊圖(Communication Diagram)也稱為協作圖。

二、時序圖

<1>概念

  • 時序圖是以時間為序的表示方法,主要用來描述完成某個行為的物件類和這些物件類之間所傳遞的訊息的時間順序。
  • 時序圖是強調訊息時間順序的互動圖。
  • 時序圖描述了物件之間傳送訊息的時間順序,用來表示用例中的行為順序。

順序圖(Sequence Diagram)=生命線(Lifeline)+訊息(Message)

時序圖將互動關係表示為一個二維圖。其中,縱軸是時間軸,時間沿豎線向下延伸。橫軸代表了在協作中各獨立的物件。
時序圖包含了4個元素:物件、生命線、訊息、啟用


順序圖的視覺化圖符:


UML非同步訊息:建模軟體使用實線箭頭表示。

<2>生命線

每個物件及參與者都有一條垂直的生命線(Lifeline),表示了在互動過程中的生命期限。

表示方式:用矩形框和虛線表示生命線,矩形框中新增生命線的名稱,虛線表示生命長度。

生命線名稱語法:生命線物件名[選擇器]:類名ref decomposition   (藍色表示可選選項)

選擇器:同一個類的物件可以有不同的狀態值,可以再此中標明。

ref:是引用(Reference)的英文縮寫

decomposition:指明在另一個更詳細的順序圖中展示了當前互動的參與者如何處理它所接收到的資訊的細節

<3>互動條

活動條(Activation Bar)也稱為執行發生(Execution Occurrence),用來表示物件的某個行為的執行狀態。

表示方式:虛線上的小矩形條。

<4>訊息

1.訊息簡介

物件的行為也稱為訊息(Message),通常當一個物件呼叫另一個物件中的行為時,即完成了一次訊息傳遞。

2.表示方式

在生命線間的帶有實心箭頭表示訊息

3.訊息命名

訊號或訊息名(引數:引數型別):返回值

4.簡單訊息、同步訊息、非同步訊息

訊息分為簡單訊息(Simple Message)、同步訊息(Synchronous Message)和非同步訊息(Asynchronous Message)

  • 簡單訊息:指標是控制如何從一個物件發給另一個物件,並不包含控制資訊。
  • 同步訊息:意味著阻塞和等待
  • 非同步訊息:意味著非等待

表示方式如上《順序圖的視覺化圖符》圖。

5.物件建立訊息

參與互動的物件不必再整個順序圖互動的完整週期中一直存在,可以根據需要,通過傳送訊息來建立和銷燬他們。

表示方式有兩種:

  1. 在訊息的上方新增構造型《create》來表示物件在互動過程中被建立。
  2. 訊息的箭頭直接指向被建立的物件生命線的頭部,這樣就不需要構造型《create》來表達了

6.物件的銷燬

將構造型《destroy》放在訊息的上方來表達物件銷燬訊息,同時在物件的生命線的結束部分畫一個“×”來表示物件被銷燬

7.無觸發物件和無接收物件的訊息

無觸發物件訊息(Found Message):用活動條開始斷點上的實心球箭頭來表示。(用在開始)

無接收物件訊息(lost message):用箭頭加實心球表示。(用在結束)

8.控制資訊

<1>條件控制資訊

當表示式的條件為真的時候訊息才會被髮送

語法:[表示式]訊息標籤

<2>重複(迭代)控制資訊

訊息多次傳送給接收物件,迭代條件是表示式,當表示式的判定值為真結束

語法:*[表示式]訊息標籤

9.訊息的返回值

表示方式:用虛線加開箭頭的形式表示

<5>互動框

UML2.0添加了互動框(Interaction Frame).

互動框指途中的一塊區域(Region)或片段(Fragment),包含一個操作符(或稱為標籤),幷包含一個警戒.

互動框操作符說明
型別 引數 含義
ref 表示互動被定義在另一個圖中。可將一個規模較大的圖劃分為若干個規模較小的圖,方便圖的管理和複用。
assert 表示發生在互動框內的互動式唯一有效的執行路徑,有助於指明何時互動的每一步必須被成功執行,通常與狀態變數一起使用來增強系統的某個狀態。
loop min times,max times,[guard_condition] 迴圈片段,當條件為真的時候執行迴圈。也可以寫成loop(n)來表示迴圈n次,與java或者C#等中的for迴圈比較相似。
break 如果互動中包含break,那麼任何封閉在互動中的行為必須被推出,特別是loop片段,這與java中的break語句比較相似。
alt [guard_condition1]...
[guard_condition2]...
[else]
選擇片段,在境界中表達互斥的條件邏輯,與if...else...語句相似。
neg 展示了一個無效的互動。
opt [guard_condition] 可選片段,當警戒值為真的時候執行。
par 並行片段,表達並行執行。
region 區域,表示區域內僅能執行一個執行緒。
注意:下面的圖判斷都放在了居中位置(因為軟體使用不會左對齊,明白就好,以後修正。)

1.alt


上圖理解:

  1. 訊息getPrice被髮送給SaleManagement,然後根據quantity的值進行選擇判斷
  2. 如果quantity的值小於MiniAmount,那麼SaleManagement將向Retail傳送訊息getPrice
  3. 否則,SaleManagement將向WholeSale傳送訊息getPrice

2.loop


3.par

可以理解為saveUserData()和checkQualification()將並行執行。

<6>時序圖建模技術

  1. 識別互動的語境。
  2. 通過識別物件在互動中扮演的角色,設定互動的場景。
  3. 為每個物件設定生命線。
  4. 從引發某個訊息的資訊開始,在生命線之間畫出從頂到底依次展開的訊息,顯示每個訊息的特性(如引數)。
  5. 如果需要視覺化訊息的巢狀或實際計算髮生時的時間點,可以用啟用修飾每個物件的生命期。
  6. 如果需要更形式化的說明某控制流,可以為每個訊息附上前置和後置條件。 

<7>注意事項

物件不一定非得是類,還可以是參與者。

三、協作圖

1.概念

協作圖與時序圖一樣也是用來描述物件與物件之間訊息連線關係的,側重於說明哪些物件之間有訊息傳遞。

協助圖=互動的參與者+通訊鏈+訊息

通訊圖描述參與一個互動的物件的連結,它強調發送和接收物件之間的連結。

2.互動的參與者

表示方式:用物件符號表示,在矩形框中放置互動的參與者,顯示互動的參與者的名稱和它所屬的類

語法:參與者名:類名

注意:雖然整個系統中可能有其他的物件,但只有涉及協作的物件才會被表示出來。

協作圖中可能出現的4類物件:

  1. 存在於整個互動作用中的物件
  2. 在互動作用中建立的物件
  3. 在互動作用中銷燬的物件
  4. 在加護作用中建立並銷燬的物件

3.連結

表示方式:用直線表示。

  • 一般情況下,一個連結就是一個關聯例項。
  • 訊息可以通過連結進行流動。

4.訊息

表示方式:依附於連結上的來由標記箭頭和帶順序號的訊息表示式表示。

  • 箭頭表示訊息的方向。

1.控制訊息

表示方式:採用中括號表示。

當控制條件為真的時候訊息才會被髮送。

2.巢狀訊息和自訊息

當一個訊息導致了另一個訊息被髮送的時候(編號區分),第二個訊息被稱為巢狀在第一個訊息裡。

巢狀可以剁成巢狀。

3.迴圈

與時序圖中的迴圈類同。

表示方式:用“*”星號表示。

4.併發訊息

顧名思義,就是幾個訊息被同事傳送,編號是前半部分可以一樣,後面採用字母表示。

5.小細節

編號與後半部分用冒號隔開。

********************************************************************************結束語********************************************************************************************
  我在寫這篇部落格的時候也是一名初學者,有任何疑問或問題請留言,或發郵件也可以,郵箱為:[email protected],我會盡早的進行更正及更改。
在我寫過的部落格中有兩篇部落格是對資源的整理,可能對大家都有幫助,大家有興趣的話可以看看!!
下載資料整理——目錄http://blog.csdn.net/fanxiaobin577328725/article/details/51894331
  這篇部落格裡面是我關於我見到的感覺不錯的好資源的整理,裡面包含了書籍及原始碼以及個人搜尋的一些資源,如果有興趣的可以看看,我會一直對其進行更新和新增。
優秀的文章&優秀的學習網站之收集手冊http://blog.csdn.net/fanxiaobin577328725/article/details/52753638
  這篇部落格裡面是我對於我讀過的,並且感覺有意義的文章的收集整理,純粹的個人愛好,大家感覺有興趣的可以閱讀一下,我也會時常的對其進行更新。
********************************************************************************感謝********************************************************************************************

相關推薦

UML互動時序作圖

一、概念 互動圖描述物件之間的動態合作關係以及合作過程中的行為次序。 互動圖常常用來描述一個用例的行為,顯示該用例中所涉及的物件以及這些物件之間的訊息傳遞情況,即一個用例的實現過程。 互動圖有順序圖和協作圖兩種形式。 時序圖中描述物件按照時間順序的訊息交換。 協作圖著

UML——互動時序作圖

一、概念 互動圖描述物件之間的動態合作關係以及合作過程中的行為次序。互動圖常常用來描述一個用例的行為,顯示該用例中所涉及的物件以及這些物件之間的訊息傳遞情況,即一個用例的實現過程。 互動圖有順序圖和協作圖兩種形式。 時序圖中描述物件按照時間順序的訊息交換。協作圖著重描述系統

OpenLayers官方示例之偽造線Synthetic Points

  一、示例簡介     本示例展示瞭如何生成10000條呈螺紋式排列的線要素。     低比例尺下效果:     放大至高比例尺下的效果: 二、程式碼詳解: <!DOCTYPE html

umlunified modeling language用例、類、序列

uml(unified modeling language)全稱為統一建模語言。 uml主要分為九種圖: 一:用例圖 二:類圖 三:物件圖 四:構件圖 五:部署圖 六:狀態圖 七:順序圖 八:活動圖 九:協作圖 而這9種圖分別是其中最常用的是用例圖、類圖、時序圖這三種。

UML狀態機狀態和活動

一、概念狀態圖和活動圖是狀態機的兩種表現形式。利用狀態機可以精確地描述物件的行為。從物件的初始狀態起,開始響應事件並執行某些動作,這些事件引起狀態的轉換;物件在新狀態下又開始響應事件和執行動作,如此連續進行直到終結狀態。二、狀態圖狀態圖(State Diagram) =狀態(State) + 遷移(Trans

達內-靜態路由浮動靜態路由-

達內-靜態路由與浮動靜態路由-(配圖詳解版)路由: 不同網段之間的通信,稱之為“路由”。實現: 路由設備:路由器,多層交換機本質: 通過查詢“路由表”實現“不同網段之間的路由功能”。路由器的工作原理: 1、路由器僅僅關心數據中的 “ 目標IP 地址” ; 2、路由器提取 目標IP

機器學習中的概率模型和概率密度估計方法及VAE生成式模型第4章 之 梯度估算

.com 概率 roc 生成 詳解 time 學習 style BE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?機器學習中的概率模型和概率密度估計方法及V

led指示燈電路圖大全八款led指示燈電路設計原理

led指示燈電路圖大全(八款led指示燈電路設計原理圖詳解) led指示燈電路圖(一) 圖1所示電路中只有兩個元件,R選用1/6--1/8W碳膜電阻或金屬膜電阻,阻值在1--300K之間。 Ne為氖泡,也選取用普通日光燈啟輝器中的氖泡,若想用體積小且在60V左右即能啟

ALSA音效卡驅動中的DAPM:dapm事件機制dapm event

前面的六篇文章,我們已經討論了dapm關於動態電源管理的有關知識,包括widget的建立和初始化,widget之間的連線以及widget的上下電順序等等。本章我們準備討論dapm框架中的另一個機制:事件機制。通過dapm事件機制,widget可以對它所關心的dapm事

各種音視訊編解碼學習之 編解碼學習筆記:微軟Windows Media系列

    最近在研究音視訊編解碼這一塊兒,看到@bitbit大神寫的【各種音視訊編解碼學習詳解】這篇文章,非常感謝,佩服的五體投地。奈何大神這邊文章太長,在這裡我把它分解成很多小的篇幅,方便閱讀。大神部落格傳送門:https://www.cnblogs.com/skyofbitbi

資料流DFD

一、概念 它是將提供給使用者的業務流程圖(“物理模型”)進行功能建模,轉化成開發人員能夠理解的一系列“邏輯模型”圖,即以圖形化的方法描繪資料在系統中的流動和處理的過程,這些圖都應該用規範的DFD描述。 二、原理 DFD設計過程就是將資料和處理進行逐層分解就形成了若干層次的D

(轉)資料流DFD

一、概念 它是將提供給使用者的業務流程圖(“物理模型”)進行功能建模,轉化成開發人員能夠理解的一系列“邏輯模型”圖,即以圖形化的方法描繪資料在系統中的流動和處理的過程,這些圖都應該用規範的DFD描述。 二、原理 DFD設計過程就是將資料和處理進行逐層分解就形成了若干

尤拉 遞迴和非遞迴重新更改

定義: 歐拉回路:每條邊只經過一次,而且回到起點 尤拉圖:具有歐拉回路的圖 尤拉路徑:每條邊只經過一次,不要求回到起點 半尤拉圖:具有尤拉通路而無歐拉回路的圖 判定: 歐拉回路的判定 無向圖:連通(不考慮度為 0 的點),每個頂點度數都為偶數。 有向圖:基圖連通(

真實場景的雙目立體匹配Stereo Matching獲取深度

  雙目立體匹配一直是雙目視覺的研究熱點,雙目相機拍攝同一場景的左、右兩幅視點影象,運用立體匹配匹配演算法獲取視差圖,進而獲取深度圖。而深度圖的應用範圍非常廣泛,由於其能夠記錄場景中物體距離攝像機的距離,可以用以測量、三維重建、以及虛擬視點的合成等。   但是對於想自己嘗試拍攝雙目圖片進行立體匹配獲取深度

資料庫設計之概念結構設計---------E-R 各種各樣的例項

http://blog.csdn.net/zxq1138634642/article/details/9121363 0、試述採用E-R方法進行資料庫概念設計的過程。 答:採用E-R方法進行資料庫概念設計,可以分成3步進行:首先設計區域性E-R模式,然後把各區域性E-R

【H.264/AVC視訊編解碼技術、 熵編碼演算法1:基礎知識

《H.264/AVC視訊編解碼技術詳解》視訊教程已經在“CSDN學院”上線,視訊中詳述了H.264的背景、標準協議和實現,並通過一個實戰工程的形式對H.264的標準進行解析和實現,歡迎觀看! “紙上得來終覺淺,絕知此事要躬行”,只有自己按照標準文件以程式碼

後綴自動機多代碼實現

論證 point ubunt 動態添加 xtend == 擴大 min 後綴自動機 作者註:搭配理論證明類的\(SAM\)博客閱讀,效果更佳。作者水平較低,時間有限,只講實現,不再胡亂證明。 後綴自動機是一種在線的,動態添加字符擴展字符串的算法。蒟蒻深知沒圖的痛苦,這裏放一

還不會用 K8s 叢集控制器?那你會用冰箱嗎?

作者 | 阿里雲售後技術專家 聲東 **導讀:**當我們嘗試去理解 K8s 叢集工作原理的時候,控制器(Controller)

RxJava ——簡潔的異步操作

i++ 只有一個 tco 多個 etc 隊列 技術分享 () 而在 上次說的兩個例子,事件的發出和消費都是在同一個線程的。如果只用上面的方法,實現出來的只是一個同步的觀察者模式。觀察者模式本身的目的就是異步機制,因此異步對於 RxJava 是至關重要的。而要實現異步,則需要