《基于任務驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目十一_第1頁
《基于任務驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目十一_第2頁
《基于任務驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目十一_第3頁
《基于任務驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目十一_第4頁
《基于任務驅(qū)動模式的軟件工程與UML建模技術(shù)》課件項目十一_第5頁
已閱讀5頁,還剩85頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目十一動態(tài)建模任務一認識動態(tài)建模

任務二認識狀態(tài)圖

任務三認識活動圖

任務四認識順序圖

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

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

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

操作一動態(tài)建模概述

前面通過類圖和對象圖介紹了系統(tǒng)的靜態(tài)結(jié)構(gòu)建模,本項目將介紹系統(tǒng)的動態(tài)結(jié)構(gòu)模型。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é)果。

任務二認?識?狀?態(tài)?圖

操作一狀態(tài)圖的概述

狀態(tài)圖(StatechartDiagram)是軟件系統(tǒng)進行面向?qū)ο蠓治龅囊环N常用工具,它通過建立對象的生存周期模型(狀態(tài))來描述對象隨時間變化的動態(tài)行為。狀態(tài)圖主要用來描述對象、子系統(tǒng)、系統(tǒng)的生命周期。狀態(tài)圖適合描述跨越多個用例的對象在其生命周期中的各種狀態(tài)及其狀態(tài)之間的轉(zhuǎn)換,這些對象可以是類、接口、構(gòu)件或者結(jié)點。狀態(tài)圖常用于對反應型對象建模,反應型對象在接收到一個事件之前通常處于空閑狀態(tài),當這個對象對當前事件作出反應后又處于空閑狀態(tài)等待下一個事件。類圖和對應的對象圖只展示出系統(tǒng)的靜態(tài)方面。它們展示的是系統(tǒng)靜態(tài)層次和關(guān)聯(lián),并能告訴你系統(tǒng)的行為是什么。但它們不能說明這些行為的動態(tài)細節(jié)。狀態(tài)圖能幫助分析員、設計員和開發(fā)人員理解系統(tǒng)中對象的行為。

開發(fā)人員尤其要知道對象是如何表現(xiàn)自己的行為的,因為他們要用軟件實施這些行為。僅僅實施對象是不夠的,開發(fā)人員還必須讓對象做該做的事情。狀態(tài)圖可以確保開發(fā)人員能夠清楚地了解對象應該做什么,而不用自己去猜測它。如果有了一幅展示對象行為的清晰圖景,那么開發(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)。

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

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

狀態(tài)是指對象在其生命周期中,滿足某些條件、執(zhí)行某些活動、或等待某些事件時的一個狀況。狀態(tài)指的是對象的狀態(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-4所示,常常使用下面三種標準事件:entry(進入),exit(退出),do(做)?!斑M入事件”用來指定進入一個狀態(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-3、表11-1及表11-2所示。表11-1狀態(tài)特征表11-2常見的事件類型

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

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

子狀態(tài)是指被嵌套在另外一個狀態(tài)中的狀態(tài)。組合狀態(tài)是指含有子狀態(tài)的狀態(tài)。組合狀態(tài)也可以有初態(tài)和終態(tài)。如圖11-5所示。圖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”的小圓圈表示。每當轉(zhuǎn)換到組成狀態(tài)的歷史狀態(tài)時,對象便恢復到上次離開該組成狀態(tài)時的最后一個活動子狀態(tài),并執(zhí)行入口動作。如圖11-7所示。圖11-7歷史狀態(tài)

3.轉(zhuǎn)換

轉(zhuǎn)換表示當一個特定事件發(fā)生或者某些條件滿足時,一個源狀態(tài)下的對象完成一定的動作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個稱之為目標狀態(tài)的狀態(tài)。當發(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)換和復合轉(zhuǎn)換四種。一個轉(zhuǎn)換一般包括五個部分信息:源狀態(tài)、目標狀態(tài)、觸發(fā)事件、監(jiān)護條件和動作。轉(zhuǎn)換具有的特征如表11-3所示。表11-3轉(zhuǎn)換的特征

操作三使用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)圖(見圖11-8)

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

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

2.在圖中增加狀態(tài),初始和終止狀態(tài)(見圖11-9)

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

(2)選擇工具欄的“startstate”和“endstate”,單擊框圖增加初始狀態(tài)和終止狀態(tài)。初始狀態(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)之間增加交接(見圖11-10、圖11-11)

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

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

(3)雙擊交接彈出對話框,可以在“General”中增加事件(Event),在“Detail”中增加保證條件(GuardCondition)等交接的細節(jié)。事件用來在交接中從一個對象發(fā)送給另一個對象,保證條件放在中括號里,控制是否發(fā)生交接。圖11-10增加事件圖11-11增加保證條件

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

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

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

(3)雙擊新活動(清單中有“Entry/”)打開活動規(guī)范,在“Name”中輸入活動細節(jié)。圖11-12在狀態(tài)中增加活動

任務三認?識?活?動?圖

操作一活動圖的概述

活動圖(ActivityDiagram)顯示活動動作及其結(jié)果,著重描述操作(方法)實現(xiàn)中所完成的工作以及用例實例或?qū)ο笾械幕顒??;顒邮悄臣虑檎谶M行的狀態(tài),既可以是現(xiàn)實生活中正在進行的某一項工作,也可以是軟件系統(tǒng)中某個類對象的一個操作。

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

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

·描述對象內(nèi)部的工作;

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

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

·說明一次商務活動中的參與者、工作流、組織和對象是如何工作的。圖11-13活動圖

操作二活動圖的組成

UML中活動圖包含的圖形元素有:動作狀態(tài)、活動狀態(tài)、組合活動、分叉與結(jié)合、分支與合并、泳道、對象流、動作流。

1.動作狀態(tài)

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

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

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

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

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

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

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

2.活動狀態(tài)

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

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

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

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

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

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

3.組合活動

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

4.分叉與結(jié)合

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

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

5.分支與合并

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

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

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

6.泳道

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

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

7.對象流

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

·一個對象可以由多個動作操縱;

·一個動作輸出的對象可以作為另一個動作輸入的對象;

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

8.動作流

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

操作三使用RationalRose繪制活動圖

活動圖顯示了從活動到活動的流?;顒訄D可以在分析系統(tǒng)業(yè)務時用來演示業(yè)務流,也可以在收集系統(tǒng)需求的時候顯示一個用例中的事件流?;顒訄D顯示了系統(tǒng)中某個業(yè)務或者某個用例中,要經(jīng)歷哪些活動,這些活動按什么順序發(fā)生。

1.創(chuàng)建活動圖(見圖11-21)

(1)用于分析系統(tǒng)業(yè)務:在瀏覽器中右擊UseCase視圖,選擇“New”→“ActivityDiagram”。

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

2.增加泳道(見圖11-22)

泳道是框圖里的豎段,包含特定人員或組織要進行的所有活動。可以把框圖分為多個泳道,每個泳道對應每個人員或組織。

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

3.增加活動并設置活動的順序(見圖11-23)

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

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

4.增加同步(見圖11-24)

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

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

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

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

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

5.增加決策點(見圖11-25)

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

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

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

任務四認?識?順?序?圖

一個面向?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)。

系統(tǒng)動態(tài)模型的其中一種就是交互視圖,它描述了執(zhí)行系統(tǒng)功能的各個角色之間相互傳遞消息的順序關(guān)系。

操作一順序圖的概述

順序圖(SequenceDiagram)也稱為時序圖,描述了對象之間傳送消息的時間順序,它用來表示用例中的行為順序,當執(zhí)行一個用例行為時,順序圖中的每條消息對應了一個類操作中引起轉(zhuǎn)換的觸發(fā)事件。順序圖可供不同的用戶使用,以幫助他們進一步了解系統(tǒng):

·用戶,幫助他們進一步了解業(yè)務細節(jié);

·分析人員,幫助他們進一步明確事件處理流程;

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

·測試人員,通過過程的細節(jié)開發(fā)測試案例。在UML中,順序圖表示為二維圖,如圖11-26所示。其中,橫軸上代表在協(xié)作中獨立對象的角色。每個對象的表示方法是:矩形框中寫有對象或類名,且名字下面有下劃線??v軸是時間軸,時間沿豎線向下延伸。角色使用生命線進行表示,當對象存在時,生命線用一條虛線表示,此時對象不處于激活狀態(tài),當對象的過程處于激活狀態(tài)時,生命線是一條雙道線。順序圖中的消息使用從一個對象的生命線到另一個對象的生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。圖11-26典型的順序圖

操作二順序圖的組成

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

1.對象

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

如果對象的開始位置在順序圖的頂部,那就意味著順序圖在開始交互的時候該對象就已經(jīng)存在了;如果對象的位置不在頂部,那么表明對象在交互的過程中將被創(chuà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所示。表11-4常見的消息類型

操作三使用RationalRose繪制順序圖

1.創(chuàng)建序列圖(見圖11-29)

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

2.在序列圖中放置參與者和對象(見圖11-30)

在序列圖中的主要元素之一就是對象,相似的對象可以被抽象為一個類。序列圖中的每個對象代表了某個類的某一實例。

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

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

(3)對象命名:對象可以命名也可沒名字。雙擊對象,在彈出的對話框中的“Name”里給對象取名。圖11-30放置參與者和對象

3.說明對象之間的消息(見圖11-31)

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

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

(3)命名消息。雙擊消息,在對話框中【General】里的“Name”中輸入消息名稱。圖11-31對象之間的消息

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

協(xié)作圖(CollaborationDiagram/CommunicationDiagram,也叫通訊圖)是一種交互圖,強調(diào)的是發(fā)送和接收消息的對象之間的組織結(jié)構(gòu)。與順序圖不同的是,在協(xié)作圖中明確表示了角色之間的關(guān)系,通過協(xié)作角色來限定協(xié)作中的對象或鏈。另外,協(xié)作圖不將時間作為單獨的維來表示,所以必須使用順序號來判斷消息的順序以及并行線程。順序圖和協(xié)作圖表達的是類似的信息,雖然它們使用不同的方法表示,但可以通過適當?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)交互作用中的各個角色,如圖11-32所示。而使用協(xié)作圖的作用如下:

·通過描繪對象之間消息的傳遞情況來反映具體的使用語境的邏輯表達。一個使用情境的邏輯可能是一個用例的一部分,或是一條控制流,這和序列圖的作用類似。

·顯示對象及其交互關(guān)系的空間組織結(jié)構(gòu)。協(xié)作圖顯示了在交互過程中各個對象之間的組織交互關(guān)系以及對象彼此之間的鏈接。與序列圖不同,協(xié)作圖顯示的是對象之間的關(guān)系,并不側(cè)重交互的順序,它沒有將時間作為一個單獨的維度,而是使用序列號來確定消息及并發(fā)線程的順序。

·協(xié)作圖的另外一個作用是表現(xiàn)一個類操作的實現(xiàn)。協(xié)作圖可以說明類操作中使用到的參數(shù)、局部變量以及返回值等。當使用協(xié)作圖表現(xiàn)一個系統(tǒng)行為時,消息編號對應了程序中嵌套調(diào)用結(jié)構(gòu)和信號的傳遞過程。圖11-32協(xié)作圖

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

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

1.對象

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

協(xié)作圖中對象的表示形式也和順序圖中的對象的表示形式一樣,這里不再詳細介紹。

2.消息(見圖11-33)

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

在協(xié)作圖中每個消息包括一個順序號以及消息的名稱。順序號是消息的一個數(shù)字前綴,是一個整數(shù),由1開始遞增,每個消息都必須有唯一的順序號。嵌套消息使用點表示法。圖11-33消息

3.鏈(見圖11-34)

在協(xié)作圖中的鏈和對象圖中的鏈的概念和表示形式都相同,都是兩個或多個對象之間的獨

溫馨提示

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

評論

0/150

提交評論