基于新信息技術(shù)的軟件工程與UML教程(第二版) 課件 項目十一 動態(tài)建模_第1頁
基于新信息技術(shù)的軟件工程與UML教程(第二版) 課件 項目十一 動態(tài)建模_第2頁
基于新信息技術(shù)的軟件工程與UML教程(第二版) 課件 項目十一 動態(tài)建模_第3頁
基于新信息技術(shù)的軟件工程與UML教程(第二版) 課件 項目十一 動態(tài)建模_第4頁
基于新信息技術(shù)的軟件工程與UML教程(第二版) 課件 項目十一 動態(tài)建模_第5頁
已閱讀5頁,還剩96頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

項目十一動態(tài)建模任務(wù)一認識動態(tài)建模任務(wù)二認識狀態(tài)圖任務(wù)三認識活動圖任務(wù)四認識順序圖任務(wù)五認識協(xié)作圖

任務(wù)一認識動態(tài)建模

動態(tài)建模描述的是參與者如何通過交互實現(xiàn)系統(tǒng)中的用例。系統(tǒng)中對象的交互是通過順序圖、協(xié)作圖或者活動圖來描述的,同時,用例模型中用例實現(xiàn)所使用的類會在狀態(tài)圖中得以描述。

UML提供了狀態(tài)圖、活動圖、順序圖和協(xié)作圖來描述系統(tǒng)的結(jié)構(gòu)和行為,它們適合于描述系統(tǒng)中的對象在執(zhí)行期間不同的時間點是如何動態(tài)交互的。一組對象為了實現(xiàn)一些功能而進行通信稱之為交互,可以通過狀態(tài)圖、活動圖、順序圖和協(xié)作圖來描述系統(tǒng)的動態(tài)行為。通過對軟件系統(tǒng)的靜態(tài)結(jié)構(gòu)和動態(tài)行為的描述,開發(fā)團隊和用戶易于理解目標系統(tǒng)的功能及執(zhí)行結(jié)果。

任務(wù)二認?識?狀?態(tài)?圖一、狀態(tài)圖概述狀態(tài)圖(StatechartDiagram)是描述一個實體基于事件反應(yīng)的動態(tài)行為,顯示了該實體如何根據(jù)當(dāng)前所處的狀態(tài)對不同的事件做出反應(yīng)。通常創(chuàng)建一個UML狀態(tài)圖是為了以下的研究目的:研究類、角色、子系統(tǒng)或組件的復(fù)雜行為。狀態(tài)圖主要用來描述對象、子系統(tǒng)、系統(tǒng)的生命周期。狀態(tài)圖適合描述跨越多個用例的對象在其生命周期中的各種狀態(tài)及其狀態(tài)之間的轉(zhuǎn)換。這些對象可以是類、接口、構(gòu)件或者結(jié)點。

狀態(tài)圖能幫助分析員、設(shè)計員和開發(fā)人員理解系統(tǒng)中對象的行為。類圖和對應(yīng)的對象圖只展示出系統(tǒng)的靜態(tài)方面。它們展示的是系統(tǒng)靜態(tài)層次和關(guān)聯(lián),并能告訴用戶系統(tǒng)的行為是什么。但它們不能說明這些行為的動態(tài)細節(jié)。

開發(fā)人員尤其要知道對象是如何表現(xiàn)自己的行為的,因為他們要用軟件實施這些行為。僅僅實施對象是不夠的,開發(fā)人員還必須讓對象做該做的事情。狀態(tài)圖可以確保開發(fā)人員能夠清楚地了解對象應(yīng)該做什么,而不用自己去猜測。如果有了一幅展示對象行為的清晰圖景,那么開發(fā)小組構(gòu)造出的系統(tǒng)滿足需求的可能性就會大大增加。

二、狀態(tài)圖的組成

狀態(tài)圖由表示狀態(tài)的結(jié)點和表示狀態(tài)之間轉(zhuǎn)換的帶箭頭的直線組成。若干個狀態(tài)由一條或者多條轉(zhuǎn)換箭頭連接,狀態(tài)的轉(zhuǎn)換由事件觸發(fā),如圖11-1所示。

圖11-1狀態(tài)圖

1.起點和終點

起點代表狀態(tài)圖的一個初始狀態(tài),此狀態(tài)代表狀態(tài)圖的起始位置。起點只能作為轉(zhuǎn)換的源,而不能作為轉(zhuǎn)換的目標。起點在一個狀態(tài)圖中只允許有一個。

終點代表狀態(tài)圖的最后狀態(tài),此狀態(tài)代表狀態(tài)圖的終止位置。終點只能作為轉(zhuǎn)換的目標,而不能作為轉(zhuǎn)換的源。終點在一個狀態(tài)圖中可以有一個或多個,表示一個活動圖的最后和終結(jié)狀態(tài)。

狀態(tài)圖的起點與終點如圖11-2所示。

圖11-2狀態(tài)圖的起點與終點

2.狀態(tài)(State)

狀態(tài)是指對象在其生命周期中,滿足某些條件、執(zhí)行某些活動或等待某些事件時的一個狀況。狀態(tài)指的是對象的狀態(tài),用圓角的矩形框表示,如圖11-3所示。例如:

?發(fā)票(對象)被支付(狀態(tài));

?小車(對象)正在停著(狀態(tài));

?發(fā)動機(對象)正在工作(狀態(tài));

?電燈(對象)開著(狀態(tài))。

圖11-3登錄提示狀態(tài)

1)狀態(tài)的特征

通常一個狀態(tài)由名稱、進入/退出動作、內(nèi)部轉(zhuǎn)換、子狀態(tài)和延遲事件等五個部分組成,如表11-1所示。

如圖11-4所示,常常使用三種標準事件:entry(進入)、do(做)和exit(退出)。“進入”用來指定進入一個狀態(tài)的動作;“退出”用來指定退出一個狀態(tài)的動作;“做”用來指定在該狀態(tài)下的動作(如發(fā)送一條消息)。

圖11-4初始狀態(tài)、原子狀態(tài)和結(jié)束狀態(tài)

“動作”是對象類中一個操作的執(zhí)行,動作具有原子和不可中斷特性。

“事件”指的是發(fā)生且引起某些動作執(zhí)行的事情,即事件表示在某一特定的時間或空間出現(xiàn)的能夠引發(fā)狀態(tài)改變的運動變化。事件有很多,大致可以分為入口事件、出口事件、動作事件、信號事件、調(diào)用事件、修改事件、時間事件和延遲事件等,如表11-2所示。

2)狀態(tài)的類型

狀態(tài)的類型有初始狀態(tài)、原子狀態(tài)和結(jié)束狀態(tài),如圖11-4所示。狀態(tài)還可以分為組合狀態(tài)、子狀態(tài)、并發(fā)狀態(tài)、歷史狀態(tài)等。

組合狀態(tài)和子狀態(tài)如圖11-5所示。子狀態(tài)是指被嵌套在另外一個狀態(tài)中的狀態(tài)。組合狀態(tài)是指含有子狀態(tài)的狀態(tài)。組合狀態(tài)也可以有初態(tài)和終態(tài)。

圖11-5組合狀態(tài)與子狀態(tài)

并發(fā)狀態(tài)指一個對象在同一時刻可以處在多種狀態(tài),如圖11-6所示。圖11-6并發(fā)狀態(tài)

歷史狀態(tài)代表上次離開組合狀態(tài)時的最后一個活動子狀態(tài),它用一個包含字母“H”的小圓圈表示。每當(dāng)轉(zhuǎn)換到組合狀態(tài)的歷史狀態(tài)時,對象便恢復(fù)到上次離開該組合狀態(tài)時的最后一個活動子狀態(tài),并執(zhí)行入口動作,如圖11-7所示。

圖11-7歷史狀態(tài)

3.轉(zhuǎn)換

轉(zhuǎn)換表示當(dāng)一個特定事件發(fā)生或者某些條件滿足時,一個源狀態(tài)下的對象完成一定的動作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個稱為目標狀態(tài)的狀態(tài)。當(dāng)發(fā)生轉(zhuǎn)換時,轉(zhuǎn)換進入的狀態(tài)為活動狀態(tài),轉(zhuǎn)換離開的狀態(tài)變?yōu)榉腔顒訝顟B(tài)。轉(zhuǎn)換用箭頭表示,如果沒有標注事件,則本轉(zhuǎn)換為自動轉(zhuǎn)換。

轉(zhuǎn)換通常分為外部轉(zhuǎn)換、內(nèi)部轉(zhuǎn)換、完成轉(zhuǎn)換和復(fù)合轉(zhuǎn)換四種。一個轉(zhuǎn)換一般包括五部分信息:源狀態(tài)、目標狀態(tài)、觸發(fā)事件、監(jiān)護條件和動作。轉(zhuǎn)換的特征如表11-3所示。

三、使用RationalRose繪制狀態(tài)圖

狀態(tài)圖顯示了對象的動作行為、對象可能存在的各種狀態(tài)、對象創(chuàng)建時的狀態(tài)、對象刪除時的狀態(tài)、對象如何從一種狀態(tài)轉(zhuǎn)移到另一種狀態(tài)以及對象在不同狀態(tài)中干什么。

1.創(chuàng)建狀態(tài)圖

(1)在瀏覽器中右擊類。

(2)選擇“New”→“StatechartDiagram”,對該類創(chuàng)建一個狀態(tài)圖,并命名該圖,如圖11-8所示。

圖11-8創(chuàng)建狀態(tài)圖

2.在圖中增加狀態(tài)

(1)選擇工具欄的【State】按鈕,單擊框圖增加一個狀態(tài),雙擊狀態(tài)命名。

(2)選擇工具欄的“StartState”和“EndState”,單擊框圖增加初始狀態(tài)和終止狀態(tài),如圖11-9所示。初始狀態(tài)是對象首次實例化時的狀態(tài),狀態(tài)圖中只有一個初始狀態(tài)。終止狀態(tài)表示對象在內(nèi)存中被刪除之前的狀態(tài),狀態(tài)圖中有0個、1個或多個終止狀態(tài)。

圖11-9增加狀態(tài)

3.在狀態(tài)之間增加交接

(1)選擇【StateTransition】工具欄按鈕。

(2)從一種狀態(tài)拖到另一種狀態(tài)。

(3)雙擊“交接”彈出對話框,可以在“General”中增加事件(Event),在“Detail”中增加保證條件(GuardCondition)等交接的細節(jié),如圖11-10、圖11-11所示。

圖11-10增加事件

圖11-11增加保證條件

4.在狀態(tài)中增加活動

(1)右擊狀態(tài)并選擇“OpenSpecification”。

(2)選擇【Action】標簽,右擊空白處并選擇“Insert”。

(3)雙擊新活動(清單中有“Entry/”)打開活動規(guī)范,在“Name”中輸入活動細節(jié),如圖11-12所示。

圖11-12在狀態(tài)中增加活動

任務(wù)三認?識?活?動?圖一、活動圖概述

活動圖(ActivityDiagram,又稱動態(tài)圖)闡明了業(yè)務(wù)用例實現(xiàn)的工作流程。業(yè)務(wù)工作流程說明了業(yè)務(wù)為向所服務(wù)的業(yè)務(wù)主角提供其所需的價值而必須完成的工作。業(yè)務(wù)用例由一系列活動組成,它們共同為業(yè)務(wù)主角生成某些工件。工作流程通常包括一個基本工作流程和一個或多個備選工作流程。工作流程的結(jié)構(gòu)使用活動圖來進行說明。

活動圖與常用的程序流程圖相似,它們的主要區(qū)別在于程序流程圖一般用來表示串行過程,而活動圖則可以用來表示并行過程,如圖11-13所示。

圖11-13活動圖

使用活動圖的主要目的是:

(1)描述一個操作執(zhí)行過程中(操作實現(xiàn)的實例化)所完成的工作(動作)。

(2)描述對象內(nèi)部的工作。

(3)顯示如何執(zhí)行一組相關(guān)的動作,以及這些動作如何影響它們周圍的對象。

(4)顯示用例的實例是如何執(zhí)行動作以及如何改變對象狀態(tài)的。

(5)說明一次商務(wù)活動中的參與者、工作流、組織和對象是如何工作的。

二、活動圖的組成

1.動作狀態(tài)

動作狀態(tài)是原子性的動作或操作的執(zhí)行狀態(tài),它不能被外部事件的轉(zhuǎn)換中斷。動作狀態(tài)的原子性決定了動作狀態(tài)要么不執(zhí)行,要么就完成執(zhí)行,不能中斷。如發(fā)送一個信號、設(shè)置某個屬性值等。動作狀態(tài)沒有子結(jié)構(gòu)、內(nèi)部轉(zhuǎn)換或內(nèi)部活動,它不能包括事件觸發(fā)的轉(zhuǎn)換。

動作狀態(tài)有如下特點:

(1)動作狀態(tài)是原子的,它是構(gòu)造活動圖的最小單位,無法分解為更小的部分。

(2)動作狀態(tài)是不可中斷的,它一旦運行就不能中斷,一直運行到結(jié)束。

(3)動作狀態(tài)是瞬時的行為,它所占用的處理時間極短,有時甚至可以忽略。

(4)動作狀態(tài)有入轉(zhuǎn)換,入轉(zhuǎn)換可以是動作流,也可以是對象流。動作狀態(tài)至少有一條出轉(zhuǎn)換,這條轉(zhuǎn)換以內(nèi)部動作的完成為起點,與外部事件無關(guān)。

(5)動作狀態(tài)與狀態(tài)圖中的狀態(tài)不同,它不能有入口動作和出口動作,也不能有內(nèi)部轉(zhuǎn)移。

(6)動作狀態(tài)允許多處出現(xiàn)在同一活動圖中。

2.活動狀態(tài)

活動狀態(tài)是非原子性的,用來表示一個具有子結(jié)構(gòu)的純粹計算的執(zhí)行。活動狀態(tài)可以分解成其他子活動或動作狀態(tài),可以使轉(zhuǎn)換離開狀態(tài)的事件從外部中斷。活動狀態(tài)可以有內(nèi)部轉(zhuǎn)換、入口動作和出口動作?;顒訝顟B(tài)至少具有一個輸出完成轉(zhuǎn)換,當(dāng)狀態(tài)中的活動完成時該轉(zhuǎn)換激發(fā)?;顒訝顟B(tài)用兩邊為弧的條形框表示,中間填活動名。活動分為簡單活動和組合活動。簡單活動是指不能再分解的活動;組合活動是指可以再分解的復(fù)雜活動。

活動狀態(tài)有如下特點:

(1)活動狀態(tài)可以分解成其他子活動或動作狀態(tài),由于它是一組不可中斷的動作或操作的組合,所以可以被中斷。

(2)活動狀態(tài)的內(nèi)部活動可以用另一個活動圖來表示。

(3)活動狀態(tài)可以有入口動作和出口動作,也可以有內(nèi)部轉(zhuǎn)移。

(4)動作狀態(tài)是活動狀態(tài)的一個特例,如果某一個活動狀態(tài)只包括一個動作,那么它就是一個動作狀態(tài)。

動作狀態(tài)與活動狀態(tài)如圖11-14所示。

圖11-14動作狀態(tài)與活動狀態(tài)

3.組合活動

組合活動也叫復(fù)合活動。在UML的活動圖中,一個大的活動可以分為若干個動作或子活動,這些動作或子活動本身又可以組成一個活動圖,如圖11-15所示。

圖11-15組合活動與簡單活動

4.分叉與結(jié)合

并發(fā)指的是在同一時間間隔內(nèi)有兩個或者兩個以上的活動執(zhí)行。對于一些復(fù)雜的大型系統(tǒng)而言,對象在運行時往往不只存在一個控制流,而是存在兩個或者多個并發(fā)運行的控制流。為了對并發(fā)的控制流建模,在UML中引入了分叉和結(jié)合的概念。分叉用于表示將一個控制流分成兩個或者多個并發(fā)運行的分支,結(jié)合用來表示并行分支在此得到

同步。

分叉用粗黑線表示。分叉具有一個輸入轉(zhuǎn)換、兩個或者多個輸出轉(zhuǎn)換,每個轉(zhuǎn)換都可以是獨立的控制流。結(jié)合與分叉相反,結(jié)合具有兩個或者多個輸入轉(zhuǎn)換、一個輸出轉(zhuǎn)換,先完成的控制流需要在此等待,只有當(dāng)所有的控制流都到達結(jié)合點時,控制才能繼續(xù)向下進行,如圖11-16所示。

圖11-16分叉與結(jié)合

5.分支與合并

分支在活動圖中很常見,它是轉(zhuǎn)換的一部分,它將轉(zhuǎn)換路徑分成多個部分,每一個部分都有單獨的監(jiān)護條件和不同的結(jié)果。當(dāng)動作流遇到分支時,會根據(jù)監(jiān)護條件的真假來判定動作的流向。分支的每個路徑監(jiān)護條件應(yīng)該是互斥的,這樣可以保證只有一個路徑的轉(zhuǎn)換被激發(fā)。

合并指的是兩個或者多個控制路徑在此匯合,合并和分支常常成對使用,合并表示從對應(yīng)分支開始的條件的行為結(jié)束。

在活動圖中,分支與合并都用空心的菱形表示,分支有一個輸入箭頭和兩個輸出箭頭,而合并有兩個輸入箭頭和一個輸出箭頭,如圖11-17所示。

圖11-17分支與合并

6.泳道

為了活動的職責(zé)進行組織而將活動圖中的活動狀態(tài)分為不同的組,稱為泳道。每個泳道代表特定含義的狀態(tài)職責(zé)部分。在活動圖中,每個活動只能明確地屬于一個泳道,泳道表示了哪些活動是由哪些對象進行的。每個泳道都有一個與其他泳道不同的名稱。

在活動圖中,每個泳道通過垂直實線與它的鄰居泳道相分離。在泳道的上方是泳道的名稱,不同的泳道中的活動既可以順序進行也可以并發(fā)進行,如圖11-18所示。

圖11-18泳道

7.對象流

對象可以在活動圖中顯示,表示動作狀態(tài)或者活動狀態(tài)與對象之間的依賴關(guān)系。對象可以作為動作的輸入或輸出,或簡單地表示指定動作對對象的影響。對象用矩形符號來表示,在矩形的內(nèi)部有對象名或類名。對象流用帶有箭頭的虛線表示,如圖11-19所示。

對象流中的對象有如下特點:

(1)一個對象可以由多個動作操縱。

(2)一個動作輸出的對象可以作為另一個動作輸入的對象。

(3)同一個對象可以多次出現(xiàn)在活動圖中,每一次出現(xiàn)表明該對象正處于對象生存期的不同時間點。

圖11-19對象流

8.動作流

動作流是指所有動作狀態(tài)之間的轉(zhuǎn)換。在活動圖中,一個動作狀態(tài)執(zhí)行完成本狀態(tài)需要完成的動作后會自動轉(zhuǎn)換到另外一個狀態(tài),一般不需要特定事件的觸發(fā)。動作流用帶箭頭的直線表示,箭頭的方向指向轉(zhuǎn)入的方向,如圖11-20所示。

圖11-20動作流

三、使用RationalRose繪制活動圖

1.創(chuàng)建活動圖

創(chuàng)建用于分析系統(tǒng)業(yè)務(wù)的活動圖:在瀏覽器中右擊UseCaseView,選擇“New”→“ActivityDiagram”,如圖11-21(a)所示。

創(chuàng)建用于顯示用例中的事件流的活動圖:在瀏覽器中選中某個用例,然后右擊這個用例,選擇“New”→“ActivityDiagram”,如圖11-21(b)所示。

(a)(b)圖11-21創(chuàng)建活動圖

2.增加泳道

泳道是框圖里的豎段,包含特定人員或組織要進行的所有活動??梢园芽驁D分為多個泳道,每個泳道對應(yīng)每個人員或組織。

在工具欄中選擇【Swimlane】按鈕,然后單擊框圖增加泳道,最后用人員或組織給泳道命名,如圖11-22所示。

圖11-22增加泳道

3.增加活動并設(shè)置活動的順序

(1)在工具欄中選擇【Activity】按鈕,單擊活動圖增加活動,命名活動。

(2)在工具欄中選擇【Transition】按鈕,把箭頭從一個活動拖向另一個活動,如圖11-23所示。

圖11-23增加活動

4.增加同步

(1)在工具欄中選擇【Synchronization】按鈕,單擊框圖來增加同步棒。

(2)畫出從活動到同步棒的交接箭頭,表示在這個活動之后開始并行處理。

(3)畫出從同步棒到可以并行發(fā)生的活動之間的交接箭頭。

(4)創(chuàng)建另一同步棒,表示并行處理結(jié)束。

(5)畫出從同步活動到最后同步棒之間的交接箭頭,表示完成所有這些活動之后將停止并行處理,如圖11-24所示。

圖11-24增加同步

5.增加決策點

決策點表示可以采取兩個或多個不同的路徑。從決策到活動的交接箭頭要給出保證條件,控制在決策之后采取什么路徑,保證條件應(yīng)該是互斥的。

(1)在工具欄中選擇【Decision】按鈕,單擊框圖增加決策點。

(2)拖動從決策到?jīng)Q策之后可能發(fā)生的活動之間的交接,雙擊“交接”,打開【Detail】選項卡,在“GuardCondition”字段中寫入保證條件,如圖11-25所示。

圖11-25增加決策點

任務(wù)四認?識?順?序?圖

一個面向?qū)ο蟮能浖到y(tǒng)是一系列相互協(xié)同的對象的集合,每個對象都有自己的“生命”,如果每個對象只關(guān)心自己的事情,而不考慮與其他對象的交互,將會產(chǎn)生混亂。為了能夠確定這些交互的方法,必須補全對靜態(tài)結(jié)構(gòu)的理解:那些并發(fā)對象是如何交互以及交互是如何影響對象的狀態(tài)的。創(chuàng)建動態(tài)模型來完善系統(tǒng)的靜態(tài)模型,不僅可以幫助確定類中需要的操作,也能改進系統(tǒng)的靜態(tài)結(jié)構(gòu)。

一、順序圖概述

順序圖(SequenceDiagram)又名序列圖、循序圖、時序圖,是一種UML交互圖。它通過描述對象之間發(fā)送消息的時間順序顯示多個對象之間的動態(tài)協(xié)作。它可以表示用例的行為順序,當(dāng)執(zhí)行一個用例行為時,其中的每條消息對應(yīng)一個類操作或狀態(tài)機中引起轉(zhuǎn)換的觸發(fā)事件。順序圖可供不同的用戶使用,以幫助他們進一步了解系統(tǒng)。

?幫助用戶進一步了解業(yè)務(wù)細節(jié);

?幫助分析人員進一步明確事件處理流程;

?幫助開發(fā)人員進一步了解需要開發(fā)的對象和對這些對象的操作;

?幫助測試人員通過過程的細節(jié)開發(fā)測試案例。

在UML中,順序圖表示為二維圖,如圖11-26所示。

圖11-26典型的順序圖

二、順序圖的組成

順序圖是由對象(Object)、生命線(Lifeline)、激活(Activation)和消息(Message)等構(gòu)成的,圖11-27所示順序圖的目的就是按照交互發(fā)生的一系列順序顯示對象之間的交互。

圖11-27順序圖的組成

1.對象

順序圖中的對象和對象圖中對象的概念一樣,都是類的實例。順序圖中的對象可以是系統(tǒng)的參與者或者任何有效的系統(tǒng)對象。對象的表示形式也和對象圖中的對象表示方式一樣,使用包含名稱的矩形框來標記,所顯示的對象及其類的名稱帶有下劃線,二者用冒號隔開,即對象名。

類元角色(Actor)為系統(tǒng)中發(fā)起請求消息的對象(或者稱為參與者對象),它可以是任何在系統(tǒng)中扮演角色的對象,不管它是對象實例還是參與者,它與生命線的使用方法相同,只是表示方法不同。類元角色的表示方法如圖11-28所示。

圖11-28類元角色

2.生命線

每個參與者及系統(tǒng)運行中的對象(即活動對象)都用一條垂直的生命線表示。UML用矩形和虛線表示生命線,虛線展示了參與交互的對象的生命長度,矩形框中添加對象名稱。對象與生命線結(jié)合在一起稱為對象的生命線。

3.激活

順序圖中的激活是對象操作的執(zhí)行,它表示一個對象直接或通過從屬操作完成操作的過程。它對執(zhí)行的持續(xù)時間和執(zhí)行與其調(diào)用者之間的控制關(guān)系進行建模。激活使用小矩形條表示,它的頂端與激活時間對齊,而底端與完成時間對齊。

4.消息

消息是從一個對象(發(fā)送者)向另一個或其他幾個對象(接收者)發(fā)送信號,或由一個對象調(diào)用另一個對象的操作。消息可以用于在對象間傳遞參數(shù)。消息可以是信號,即明確的、命名的、對象間的異步通信;也可以是調(diào)用,即具有返回控制機制的操作的異步調(diào)用。其中,順序圖中強調(diào)的是消息的時間順序,而協(xié)作圖中強調(diào)交換消息的對象間的關(guān)系。

在UML中,消息使用箭頭來表示,箭頭的類型表示了消息的類型,消息箭頭所指的一方是接收方。常見的消息類型如表11-4所示。

三、使用RationalRose繪制順序圖

1.創(chuàng)建順序圖

在瀏覽器內(nèi)的Logic視圖中單擊鼠標右鍵,選擇“New”→“SequenceDiagram”就新建了一張順序圖,如圖11-29所示。也可以在瀏覽器UseCaseView中選擇某個用例,然后右擊這個用例,選擇“New”→“SequenceDiagram”。

圖11-29創(chuàng)建順序圖

2.在順序圖中放置參與者和對象

順序圖中的主要元素之一就是對象,相似的對象可以被抽象為一個類。

(1)把用例圖中該用例涉及的所有參與者拖到Sequence圖中。

(2)選擇工具欄中的【Object】按鈕,單擊框圖增加對象。可以選擇創(chuàng)建已有類的對象,也可以在瀏覽器中新建一個類,再創(chuàng)建新的類的對象。雙擊對象,在彈出的對話框中的“Class”里確定該對象所屬的類。

(3)給對象命名。對象可以命名也可以沒有名字。雙擊對象,在彈出對話框的“Name”中給對象取名,如圖11-30所示。

圖11-30放置參與者和對象

3.說明對象之間的消息

(1)在工具欄中選擇【message】按鈕。

(2)單擊啟動消息的參與者或?qū)ο?,把消息拖到目標對象和參與者中。

(3)命名消息。雙擊消息,在對話框中“General”里的“name”中輸入消息名稱,如圖11-31所示。

圖11-31對象之間的消息

任務(wù)五認?識?協(xié)?作?圖

協(xié)作圖(CollaborationDiagram/CommunicationDiagram,也叫通信圖)是一種交互圖,強調(diào)的是發(fā)送和接收消息的對象之間的組織結(jié)構(gòu)。與順序圖不同的是,在協(xié)作圖中明確表示了角色之間的關(guān)系,通過協(xié)作角色來限定協(xié)作中的對象或鏈。另外,協(xié)作圖不將時間作為單獨的維來表示,所以必須使用順序號來判斷消息的順序以及并行線程。順序圖和協(xié)作圖表達的是類似的信息,雖然它們使用不同的方法表示,但可以通過適當(dāng)?shù)姆绞竭M行轉(zhuǎn)換。

一、協(xié)作圖概述

要理解協(xié)作圖,首先要了解什么是協(xié)作。所謂協(xié)作,是指在一定的語境中一組對象以及實現(xiàn)某些行為的對象間的相互作用。在協(xié)作中同時包含了運行時的類元角色(ClassifierRoles)和關(guān)聯(lián)角色(AssociationRoles),類元角色描述了一個對象,關(guān)聯(lián)角色描述了協(xié)作關(guān)系中的鏈,并通過幾何排列表現(xiàn)交互作用中的各個角色。協(xié)作圖如圖11-32所示。

圖11-32協(xié)作圖

協(xié)作圖的作用如下:

(1)通過描繪對象之間消息的傳遞情況來反映具體的使用語境的邏輯表達。

(2)顯示對象及其交互關(guān)系的空間組織結(jié)構(gòu)。

(3)表現(xiàn)一個類操作的實現(xiàn)。

二、協(xié)作圖的組成

協(xié)作圖是由對象(Object)、消息(Message)和鏈(Link)等構(gòu)成的。

1.對象

協(xié)作圖中的對象和序列圖中的對象的概念相同,同樣都是類的實例。一個協(xié)作代表了為了完成某個目標而共同工作的一組對象。對象的角色表示一個或一組對象在達到目標的過程中所應(yīng)起的那部分作用。在協(xié)作圖中,不需要關(guān)于某個類的所有對象都出現(xiàn),同一個類的對象在一個協(xié)作圖中也可能要充當(dāng)多個角色。

2.消息

在協(xié)作圖中,可以通過一系列的消息來描述系統(tǒng)的動態(tài)行為。在協(xié)作圖中,消息使用帶有標簽的箭頭來表示,它附在連接發(fā)送者和接收者的鏈上,如圖11-33所示。鏈連接了發(fā)送者和接收者,箭頭的指向便是接收者。

圖11-33消息

3.鏈

在協(xié)作圖中的鏈和對象圖中鏈的概念和表示形式都相同,都是兩個或多個對象之間的獨立連接,是對象引用元組(有序表),是關(guān)聯(lián)的實例。

鏈是關(guān)聯(lián)的實例,當(dāng)一個類與另一個類之間有關(guān)聯(lián)時,這兩個類的實例之間就有鏈,一個對象就能向另一個對象發(fā)送消息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論