成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

學習筆記 揭秘Java與UML交互圖的關系

開發 架構
UML交互圖的概念你是否了解誒,UML交互圖以圖形的形式表示出方法調用過程,它有兩種形式:序列圖(SequenceDiagram)和協作圖(CollaborationDiagram)。

前面我們主要討論的是UML類圖,下面我們要討論的是另一種UML圖——交互圖(InteractionDiagram)。交互圖描述的是一組對象之間的交互過程,或者說,這里我們實際上要回答這樣一個問題:“方法調用過程在UML中怎樣表示?”

  Java與UML交互圖

  本文將通過一個非常簡單的交易系統來說明UML交互圖。這個系統包含六個Java類。從前面幾篇文章中,我們已經知道UML類圖是分析Java程序結構的有效方法,圖一顯示了這個交易和支付系統的類圖。為了更清楚地說明各個類的職能和角色,圖一利用了前面介紹過的彩色類原型表示法。 


  圖一:一個簡單交易系統的UML類圖

  如果我們跟蹤任意一個Java程序的執行過程,就會發現,這個過程包含了一個或者多個對類和對象的方法調用。我們通過調用對象的方法來尋求特定問題的答案或執行一個特定的動作。很多時候,被調用的方法還會調用其他方法——或者是同一對象的方法,或者是同一類的其他對象的方法,或者是其他類的對象的方法。類似地,這些被調用的方法又會繼續調用其他方法,直至問題得到了明確的答案或動作全部執行完畢(或者出現異常,這時問題將沒有答案或動作不能完成)。

  UML交互圖以圖形的形式表示出方法調用過程,它有兩種形式:序列圖(SequenceDiagram)和協作圖(CollaborationDiagram)。

  序列圖

  要達到某個特定的目標,必然要執行一系列的方法調用。UML序列圖的典型用途就是顯示出方法調用過程。圖二顯示了一個交易事務中計算累計金額的序列圖,調用從Sale類的calcTotal()方法開始,相關的代碼片斷在序列圖之后給出。
  術語說明:UML把操作(Operation)定義為方法的特征(Signature)。“方法”(Method)這一術語被保留給實現操作的代碼。但在Java環境中,“方法”這一術語的應用范圍更廣泛一些。在UML序列圖中,調用一個操作就叫做發送一個消息(Message)。序列圖實際上闡述了操作的具體實現,所以下面我們會較多地用到“方法”這個術語(偶爾也會用到“消息”這個術語)。
   


  圖二:計算交易總金額的序列圖


為了便于把握序列圖的總體情況,圖一只顯示了方法的名稱。詳細的序列圖可以顯示出方法的參數和返回值。在序列圖中,對象以常規的UML符號顯示,即使用與對象所屬的類一樣的形狀或符號(默認是矩形),再注明對象的名稱,加上一個冒號,再加上相應的類名稱。然后再為整個名字加上下劃線(例如,圖二中的aProduct:Product)??梢允÷詫ο蟮拿郑ɡ鐖D二中的:Sale),也可以省略類的名字(例如圖二的Sender),但兩者都省略顯然是不允許的。如果省略了類的名字,冒號必須保留。
  
  時間的流逝方向是從上到下的垂直方向。每一個對象有一條順著頁面垂直向下的生命線(Lifeline),緊接著表示對象的矩形。方法調用的表示方式是,畫一根從發出調用的對象的生命線指向被調用對象生命線的箭頭。只要對象的任意方法處于執行狀態,對象的生命線加寬。加寬之后的生命線稱為“活動條”(ActivationBar),活動條可以嵌套,表示在前一方法的執行過程中,又有同一對象的另一個方法被調用,圖二的getQuantity()方法示范了活動條嵌套的一個例子。
  
  方法的返回值可以通過虛線開叉箭頭的形式表示,但這是可選的,例如圖二中從:Sale指向Sender的箭頭。
  
  如果要在一個對象的集合上進行迭代操作,則在方法的名字前面加上一個星號(再在方括號里面說明循環條件,可選)。在圖二中,Sale類對LineItem類對象的調用給出了迭代操作的一個例子。
  
  就象UML類圖一樣,原本需要查看多個源代碼文件才能了解的信息,通過一個UML序列圖就可以表示出來。對已有的代碼實施反向工程獲得對應的序列圖,可以幫助不熟悉代碼的開發者快速了解程序的工作流程。
  
  圖三顯示了Sale類complete()方法的序列圖,它對調用次序(消息)進行了編號。complete()方法調用了Sale類的另外兩個方法,即calcTotal()和calcPayments()。圖三用環形的回調符號表示一個對象正在調用它自身的方法。
   

  圖三:完成一次交易的序列圖


  如果序列圖很大,可能出現一個屏幕無法顯示出來的情況。在圖三中,通過設置建模工具TogetherControlCenter的選項面板,類的名稱不再和對象名稱并列顯示,而是顯示在對象名稱的下方,減少了顯示對象所需的水平空間。如果類的名稱很長,用這種顯示方式可以有效地縮減圖形寬度,一般能夠改善圖形的可讀性。然而,如果要嚴格遵從最新的UML規范,類的名稱必須和對象名稱并列放置,中間用冒號分隔,如圖二所示。
  
  complete()方法調用了calcTotal()方法,圖二顯示的calcTotal()序列是圖三complete()序列的結果。如果要簡化圖三,我們可以省略圖三的Product對象以及它與LineItem對象的交互,讓讀者在查看這部分內容時參考圖二。和類圖中面臨的細節處理問題一樣,到底是否要省略(或者說,詳細到哪種程度),也必須根據用戶的需要而定。例如,一些序列圖的讀者可能希望注明各種標準的Java類,例如迭代器、封裝器、集合類等。雖然序列圖可以顯示出要用到的循環和分支結構,但通常而言,這一層次的細節最好讓讀者在序列圖的指導下通過閱讀Java源代碼獲得。
  
  圖四是利用TogetherControlCenter對Sale類的complete()實施反向工程,并要求它給出所有細節信息所得到的序列圖。對于大多數人來說,這里的細節信息可能太多了一點。但是,圖四也說明了一個問題,正如exception對象所顯示的:在序列執行期間創建的對象畫在它被創建的位置,而不是序列圖的頂端。
   


  圖四:利用工具生成的詳細序列圖

    就象我們在討論類圖時遇到的情況一樣,UML規范為序列圖也提供了大量有細微差別的符號,不過本文說明的符號已經足以讓你入門了。#p#

  協作圖

  UML交互圖的另一種形式是協作圖(CollaborationDiagram)。協作圖和序列圖在語義上相同,但協作圖排列對象的方式比較自由,完全由繪圖者的喜好決定。在協作圖中,交互動作的次序由消息的編號決定。一些人偏愛這種繪圖方式,許多功能比較完善的UML工具允許用戶將一個圖在協作圖符號和序列圖符號之間來回轉換。一些開發者建議,用協作圖來顯示組件之間的交互過程,用序列圖來顯示組件內部各個類的交互過程。圖五顯示的協作圖等價于圖二顯示的序列圖,圖六的協作圖和圖四的序列圖一樣。
   


  圖五:與圖二等價的協作圖
 


  圖六:與圖四等價的協作圖

  結束語:

在實踐中,許多必需的交互序列可以隱含在類圖之中,特別是類圖用類原型和Stereotype來表示特定的行為和交互模式之時。UML交互圖把原本隱含的交互過程明確地表達出來,同時也明確地說明了原本在類圖中不明確的交互過程。換句話說,UML交互圖是對傾向于描述靜態特征的類圖的補充,使得對象的動態交互過程明確化。

【編輯推薦】

  1. 圖例解析Java與UML交互圖
  2. Java與UML交互圖關系揭秘
  3. 九種UML模型圖及其功能詳解
  4. Java與UML交互圖
  5. UML交互圖繪制及其應用說明

 

責任編輯:佚名 來源: ava.chinaitlab.com
相關推薦

2010-07-02 13:22:25

UML交互圖

2010-06-18 09:29:37

UML與Rationa

2010-06-29 09:08:15

UML類圖關系

2010-07-06 10:56:32

UML圖詳解

2010-07-08 10:13:54

UML交互圖

2010-07-05 09:34:45

UML類關系圖

2010-07-07 14:19:55

UML用例圖關系

2010-07-05 13:38:39

Java與UML交互圖

2010-07-02 12:53:07

UML對象圖

2010-06-28 15:41:17

UML圖類型

2010-06-29 13:22:26

UML類圖

2010-07-06 11:07:11

UML組件圖

2010-07-12 14:32:29

UML對象關系

2010-07-07 17:51:06

UML類圖

2010-07-12 09:30:34

UML模型圖

2010-07-06 10:41:22

UML對象及關系圖

2010-07-05 17:58:41

UML活動圖

2010-06-28 16:37:05

UML類圖

2010-07-05 15:15:25

UML9種圖

2010-07-01 11:52:59

UML類圖
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美黄色一区 | 玖玖玖在线观看 | 成人小视频在线观看 | 羞羞视频免费在线观看 | 99爱在线视频 | 五月婷婷中文 | 国产精品久久国产精品 | 久草新在线 | 欧美 视频 | 岛国毛片在线观看 | 精品熟人一区二区三区四区 | 成人av网站在线观看 | 在线免费观看成年人视频 | 久草视频网站 | 99久久电影 | 国产二区在线播放 | 精品一区二区三 | 国产精品一区二区av | 国产精品久久国产精品99 gif | 一区视频在线免费观看 | 国产精品日韩一区二区 | 蜜桃综合在线 | 精品美女在线观看视频在线观看 | 亚洲免费一区二区 | 亚洲福利视频网 | 国产综合久久 | 久热精品免费 | 欧美在线观看免费观看视频 | 日韩精品区 | 老司机久久 | 成人免费视频久久 | 久久久久久久国产精品影院 | 91精品国产91久久久 | 黄色一级毛片 | 欧美日韩免费一区二区三区 | 欧美日韩在线视频一区 | 成人自拍视频网站 | 久久久精品一区 | 精品日韩一区二区 | 国产精品久久国产精品99 | 精精国产xxxx视频在线播放7 |