基于任務(wù)驅(qū)動(dòng)模式的軟件工程與UML建模技術(shù)項(xiàng)目十一動(dòng)態(tài)建模課件



《基于任務(wù)驅(qū)動(dòng)模式的軟件工程與UML建模技術(shù)項(xiàng)目十一動(dòng)態(tài)建模課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于任務(wù)驅(qū)動(dòng)模式的軟件工程與UML建模技術(shù)項(xiàng)目十一動(dòng)態(tài)建模課件(90頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,,,,項(xiàng)目十一 動(dòng)態(tài)建模,項(xiàng)目十一 動(dòng)態(tài)建模,,任務(wù)一 認(rèn)識(shí)動(dòng)態(tài)建模,,,任務(wù)二 認(rèn)識(shí)狀態(tài)圖,,,任務(wù)三 認(rèn)識(shí)活動(dòng)圖,,,任務(wù)四 認(rèn)識(shí)順序圖,,,任務(wù)五 認(rèn)識(shí)協(xié)作圖,,任務(wù)一 認(rèn)識(shí)動(dòng)態(tài)建模,動(dòng)態(tài)建模描述的是參與者如何通過交互實(shí)現(xiàn)系統(tǒng)中的用例。系統(tǒng)中對(duì)象的交互是通過順序圖、協(xié)作圖或者活動(dòng)圖來描述的,同時(shí),用例模型中用例實(shí)現(xiàn)中所使用的類會(huì)在狀態(tài)圖中得以描述。,,,?,操作一 動(dòng)態(tài)建模概述,前面通過類圖和對(duì)象圖介紹了系統(tǒng)的靜態(tài)結(jié)構(gòu)建模,本項(xiàng)目將介紹系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)模型。UML提供了狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖來描述系統(tǒng)的結(jié)構(gòu)和行為,它們適合于描述系統(tǒng)中的對(duì)
2、象在執(zhí)行期間不同的時(shí)間點(diǎn)是如何動(dòng)態(tài)交互的(一組對(duì)象為了實(shí)現(xiàn)一些功能而進(jìn)行通信稱之為交互,可以通過狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖來描述系統(tǒng)的動(dòng)態(tài)行為)。通過對(duì)軟件系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的描述,開發(fā)團(tuán)隊(duì)和用戶易于理解目標(biāo)系統(tǒng)的功能及執(zhí)行結(jié)果。,,任務(wù)二 認(rèn)?識(shí)?狀?態(tài)?圖,?,操作一 狀態(tài)圖的概述,狀態(tài)圖(Statechart Diagram)是軟件系統(tǒng)進(jìn)行面向?qū)ο蠓治龅囊环N常用工具,它通過建立對(duì)象的生存周期模型(狀態(tài))來描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。狀態(tài)圖主要用來描述對(duì)象、子系統(tǒng)、系統(tǒng)的生命周期。狀態(tài)圖適合描述跨越多個(gè)用例的對(duì)象在其生命周期中的各種狀態(tài)及其狀態(tài)之間的轉(zhuǎn)換,這些對(duì)象可以是類、
3、接口、構(gòu)件或者結(jié)點(diǎn)。狀態(tài)圖常用于對(duì)反應(yīng)型對(duì)象建模,反應(yīng)型對(duì)象在接收到一個(gè)事件之前通常處于空閑狀態(tài),當(dāng)這個(gè)對(duì)象對(duì)當(dāng)前事件作出反應(yīng)后又處于空閑狀態(tài)等待下一個(gè)事件。,,?,操作二 狀態(tài)圖的組成,狀態(tài)圖是由表示狀態(tài)的節(jié)點(diǎn)和表示狀態(tài)之間轉(zhuǎn)換的帶箭頭的直線組成。若干個(gè)狀態(tài)由一條或者多條轉(zhuǎn)換箭頭連接,狀態(tài)的轉(zhuǎn)換由事件觸發(fā)。如圖11-1所示。,,圖11-1 狀態(tài)圖,,1.起點(diǎn)和終點(diǎn),起點(diǎn)代表狀態(tài)圖的一個(gè)初始狀態(tài),此狀態(tài)代表狀態(tài)圖的起始位置。起點(diǎn)只能作為轉(zhuǎn)換的源,而不能作為轉(zhuǎn)換的目標(biāo)。起點(diǎn)在一個(gè)狀態(tài)圖中只允許有一個(gè)。 終點(diǎn)代表狀態(tài)圖的最后狀態(tài),此狀態(tài)代表狀態(tài)圖的終止位置。終點(diǎn)只能作為轉(zhuǎn)換的目標(biāo),而不能作
4、為轉(zhuǎn)換的源。終點(diǎn)在一個(gè)狀態(tài)圖中可以有一個(gè)或多個(gè),表示一個(gè)活動(dòng)圖的最后和終結(jié)狀態(tài)。 如圖11-2所示。,,,圖11-2 狀態(tài)圖的起點(diǎn)與終點(diǎn),,,圖11-3 登錄提示狀態(tài),,(1) 狀態(tài)的特征。 通常一個(gè)狀態(tài)包括名稱、進(jìn)入/退出活動(dòng)、內(nèi)部轉(zhuǎn)換、子狀態(tài)和延遲事件等五個(gè)部分組成。如圖11-4所示,常常使用下面三種標(biāo)準(zhǔn)事件:entry(進(jìn)入),exit(退出),do(做)?!斑M(jìn)入事件”用來指定進(jìn)入一個(gè)狀態(tài)的動(dòng)作;“退出事件”用來指定退出一個(gè)狀態(tài)的動(dòng)作;“做”事件用來指定在該狀態(tài)下的動(dòng)作(如:發(fā)送一條消息)。,,,“動(dòng)作”是對(duì)象類中一個(gè)操作的執(zhí)行,動(dòng)作具有原子性和不可中斷特性。 “事件”指
5、的是發(fā)生且引起某些動(dòng)作執(zhí)行的事情,即事件表示在某一人、特定的時(shí)間或空間出現(xiàn)的能夠引發(fā)狀態(tài)改變的運(yùn)動(dòng)變化。事件有很多,大致可以分為入口事件、出口事件、動(dòng)作事件、信號(hào)事件、調(diào)用事件、修改事件、時(shí)間事件和延遲事件等,如圖11-3、表11-1及表11-2所示。,,,,表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)是指被嵌套在另外一個(gè)狀態(tài)中的狀態(tài)。組合狀態(tài)是指含有子狀態(tài)的狀態(tài)。組合狀態(tài)也可以有初態(tài)和終態(tài)。如圖11-5所示。,,,并發(fā)狀態(tài)指一個(gè)對(duì)象在同一時(shí)刻可以處在多種狀態(tài)。如圖11
6、-6所示。,,圖11-6 并發(fā)狀態(tài),,歷史狀態(tài)代表上次離開組成狀態(tài)時(shí)的最后一個(gè)活動(dòng)子狀態(tài),它用一個(gè)包含字母“H”的小圓圈表示。每當(dāng)轉(zhuǎn)換到組成狀態(tài)的歷史狀態(tài)時(shí),對(duì)象便恢復(fù)到上次離開該組成狀態(tài)時(shí)的最后一個(gè)活動(dòng)子狀態(tài),并執(zhí)行入口動(dòng)作。如圖11-7所示。,,,圖11-7 歷史狀態(tài),,3.轉(zhuǎn)換,轉(zhuǎn)換表示當(dāng)一個(gè)特定事件發(fā)生或者某些條件滿足時(shí),一個(gè)源狀態(tài)下的對(duì)象完成一定的動(dòng)作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個(gè)稱之為目標(biāo)狀態(tài)的狀態(tài)。當(dāng)發(fā)生轉(zhuǎn)換時(shí),轉(zhuǎn)換進(jìn)入的狀態(tài)為活動(dòng)狀態(tài),轉(zhuǎn)換離開的狀態(tài)變?yōu)榉腔顒?dòng)狀態(tài)。轉(zhuǎn)換用箭頭表示,如果沒有標(biāo)注事件,則本轉(zhuǎn)移為自動(dòng)轉(zhuǎn)移。 轉(zhuǎn)換通常分為外部轉(zhuǎn)換、內(nèi)部轉(zhuǎn)換、完成轉(zhuǎn)換和復(fù)合轉(zhuǎn)換四
7、種。一個(gè)轉(zhuǎn)換一般包括五個(gè)部分信息:源狀態(tài)、目標(biāo)狀態(tài)、觸發(fā)事件、監(jiān)護(hù)條件和動(dòng)作。轉(zhuǎn)換具有的特征如表11-3所示。,,,表11-3 轉(zhuǎn)換的特征,?,操作三 使用Rational Rose繪制狀態(tài)圖,狀態(tài)圖顯示了對(duì)象的動(dòng)作行為,顯示對(duì)象可能存在的各種狀態(tài)、對(duì)象創(chuàng)建時(shí)的狀態(tài)、對(duì)象刪除時(shí)的狀態(tài)、對(duì)象如何從一種狀態(tài)轉(zhuǎn)移到另一種狀態(tài)及對(duì)象在不同狀態(tài)中干什么。,1.創(chuàng)建狀態(tài)圖(見圖11-8),(1) 在瀏覽器中右擊類。 (2) 選擇“New”→“Statechart Diagram”,對(duì)該類創(chuàng)建一個(gè)狀態(tài)圖,并命名該圖。,,2.在圖中增加狀態(tài),初始和終止?fàn)顟B(tài)(見圖11-9),(1) 選擇工具欄的【sta
8、te】按鈕,單擊框圖增加一個(gè)狀態(tài),雙擊狀態(tài)命名。 (2) 選擇工具欄的“start state”和“end state”,單擊框圖增加初始狀態(tài)和終止?fàn)顟B(tài)。初始狀態(tài)是對(duì)象首次實(shí)例化時(shí)的狀態(tài),狀態(tài)圖中只有一個(gè)初始狀態(tài)。終止?fàn)顟B(tài)表示對(duì)象在內(nèi)存中被刪除之前的狀態(tài),狀態(tài)圖中有0個(gè)、1個(gè)或多個(gè)終止?fàn)顟B(tài)。,,圖11-9 增加狀態(tài),,,3.狀態(tài)之間增加交接(見圖11-10、圖11-11),(1) 選擇【state transition】工具欄按鈕。 (2) 從一種狀態(tài)拖到另一種狀態(tài)。 (3) 雙擊交接彈出對(duì)話框,可以在“General”中增加事件(Event),在“Detail”中增加保證條件(
9、Guard Condition)等交接的細(xì)節(jié)。事件用來在交接中從一個(gè)對(duì)象發(fā)送給另一個(gè)對(duì)象,保證條件放在中括號(hào)里,控制是否發(fā)生交接。,,圖11-11 增加保證條件,,,4.在狀態(tài)中增加活動(dòng)(見圖11-12),(1) 右擊狀態(tài)并選擇“OPEN Specification”。 (2) 選擇【Action】標(biāo)簽,右擊空白處并選擇“Insert”。 (3) 雙擊新活動(dòng)(清單中有“Entry/”)打開活動(dòng)規(guī)范,在“Name”中輸入活動(dòng)細(xì)節(jié)。,,任務(wù)三 認(rèn)?識(shí)?活?動(dòng)?圖,?,操作一 活動(dòng)圖的概述,活動(dòng)圖(Activity Diagram)顯示活動(dòng)動(dòng)作及其結(jié)果,著重描述操作(方法)實(shí)現(xiàn)中所完成
10、的工作以及用例實(shí)例或?qū)ο笾械幕顒?dòng)。活動(dòng)是某件事情正在進(jìn)行的狀態(tài),既可以是現(xiàn)實(shí)生活中正在進(jìn)行的某一項(xiàng)工作,也可以是軟件系統(tǒng)中某個(gè)類對(duì)象的一個(gè)操作。 活動(dòng)圖與常用的程序流程圖相似,它們的主要區(qū)別在于程序流程圖一般用來表示串行過程,而活動(dòng)圖則可以用來表示并行過程,如圖11-13所示。使用活動(dòng)圖的主要目的是:,,·描述一個(gè)操作執(zhí)行過程中(操作實(shí)現(xiàn)的實(shí)例化)所完成的工作(動(dòng)作); ·描述對(duì)象內(nèi)部的工作; ·顯示如何執(zhí)行一組相關(guān)的動(dòng)作,以及這些動(dòng)作如何影響它們周圍的對(duì)象; ·顯示用例的實(shí)例是如何執(zhí)行動(dòng)作以及如何改變對(duì)象狀態(tài)的; ·說明一次商務(wù)活動(dòng)中的參與者、工作流、組織和對(duì)象是如何工
11、作的。,,,圖11-13 活動(dòng)圖,,?,操作二 活動(dòng)圖的組成,UML中活動(dòng)圖包含的圖形元素有:動(dòng)作狀態(tài)、活動(dòng)狀態(tài)、組合活動(dòng)、分叉與結(jié)合、分支與合并、泳道、對(duì)象流、動(dòng)作流。,1.動(dòng)作狀態(tài),動(dòng)作狀態(tài)是原子性的動(dòng)作或操作的執(zhí)行狀態(tài),它不能被外部事件的轉(zhuǎn)換中斷。動(dòng)作狀態(tài)的原子性決定了動(dòng)作狀態(tài)要么不執(zhí)行,要么就完成執(zhí)行,不能中斷。如發(fā)送一個(gè)信號(hào)、設(shè)置某個(gè)屬性值等。動(dòng)作狀態(tài)沒有子結(jié)構(gòu)、內(nèi)部轉(zhuǎn)換或內(nèi)部活動(dòng),它不能包括事件觸發(fā)的轉(zhuǎn)換。動(dòng)作狀態(tài)有如下特點(diǎn):,,·動(dòng)作狀態(tài)是原子的,它是構(gòu)造活動(dòng)圖的最小單位,無法分解為更小的部分; ·動(dòng)作狀態(tài)是不可中斷的,它一旦運(yùn)行就不能中斷,一直運(yùn)行到結(jié)束; ·動(dòng)作狀
12、態(tài)是瞬時(shí)的行為,它所占用的處理時(shí)間極短,有時(shí)甚至可以忽略; ·動(dòng)作狀態(tài)有入轉(zhuǎn)換,入轉(zhuǎn)換可以是動(dòng)作流,也可以是對(duì)象流。動(dòng)作狀態(tài)至少有一條出轉(zhuǎn)換,這條轉(zhuǎn)換以內(nèi)部動(dòng)作的完成為起點(diǎn),與外部事件無關(guān); ·動(dòng)作狀態(tài)與狀態(tài)圖中的狀態(tài)不同,它不能有入口動(dòng)作和出口動(dòng)作,也不能有內(nèi)部轉(zhuǎn)移; ·動(dòng)作狀態(tài)允許多處出現(xiàn)在同一活動(dòng)圖中。,,,,2.活動(dòng)狀態(tài),活動(dòng)狀態(tài)是非原子性的,用來表示一個(gè)具有子結(jié)構(gòu)的純粹計(jì)算的執(zhí)行?;顒?dòng)狀態(tài)可以分解成其他子活動(dòng)或動(dòng)作狀態(tài),可以使轉(zhuǎn)換離開狀態(tài)的事件從外部中斷。活動(dòng)狀態(tài)可以有內(nèi)部轉(zhuǎn)換、入口動(dòng)作和出口動(dòng)作。活動(dòng)狀態(tài)至少具有一個(gè)輸出完成轉(zhuǎn)換,當(dāng)狀態(tài)中的活動(dòng)完成時(shí)該轉(zhuǎn)換激發(fā)。活動(dòng)狀態(tài)
13、用兩邊為弧的條形框表示,中間填活動(dòng)名?;顒?dòng)分為簡(jiǎn)單活動(dòng)和組合活動(dòng)。簡(jiǎn)單活動(dòng),指不能再分解的活動(dòng);組合活動(dòng),指可以再分解的復(fù)雜活動(dòng)?;顒?dòng)狀態(tài)有如下特點(diǎn): ·活動(dòng)狀態(tài)可以分解成其他子活動(dòng)或動(dòng)作狀態(tài),由于它是一組不可中斷的動(dòng)作或操作的組合,所以可以被中斷;,,·活動(dòng)狀態(tài)的內(nèi)部活動(dòng)可以用另一個(gè)活動(dòng)圖來表示; ·活動(dòng)狀態(tài)可以有入口動(dòng)作和出口動(dòng)作,也可以有內(nèi)部轉(zhuǎn)移; ·動(dòng)作狀態(tài)是活動(dòng)狀態(tài)的一個(gè)特例,如果某一個(gè)活動(dòng)狀態(tài)只包括一個(gè)動(dòng)作,那么它就是一個(gè)動(dòng)作狀態(tài)。 動(dòng)作狀態(tài)與活動(dòng)狀態(tài)如圖11-14所示。,,圖11-14 動(dòng)作狀態(tài)與活動(dòng)狀態(tài),,,3.組合活動(dòng),組合活動(dòng)也叫復(fù)合活動(dòng)。在UML的活動(dòng)
14、圖中,一個(gè)大的活動(dòng)可以分為若干個(gè)動(dòng)作或子活動(dòng),這些動(dòng)作或子活動(dòng)本身又可以組成一個(gè)活動(dòng)圖。如圖11-15所示。,圖11-15 組合活動(dòng)與簡(jiǎn)單活動(dòng),,,4.分叉與結(jié)合,并發(fā)指的是在同一時(shí)間間隔內(nèi)有兩個(gè)或者兩個(gè)以上的活動(dòng)執(zhí)行。對(duì)于一些復(fù)雜的大型系統(tǒng)而言,對(duì)象在運(yùn)行時(shí)往往不只存在一個(gè)控制流,而是存在兩個(gè)或者多個(gè)并發(fā)運(yùn)行的控制流。為了對(duì)并發(fā)的控制流建模,在UML中引入了分叉和結(jié)合的概念。分叉用于表示將一個(gè)控制流分成兩個(gè)或者多個(gè)并發(fā)運(yùn)行的分支,結(jié)合用來表示并行分支在此得到同步。 分叉用粗黑線表示。分叉具有一個(gè)輸入轉(zhuǎn)換、兩個(gè)或者多個(gè)輸出轉(zhuǎn)換,每個(gè)轉(zhuǎn)換都可以是獨(dú)立的控制流。結(jié)合與分叉相反,結(jié)合具有兩個(gè)或
15、者多個(gè)輸入轉(zhuǎn)換、一個(gè)輸出轉(zhuǎn)換,先完成的控制流需要在此等待,只有當(dāng)所有的控制流都到達(dá)結(jié)合點(diǎn)時(shí),控制才能繼續(xù)向下進(jìn)行。如圖11-16所示。,,,圖11-16 分叉與結(jié)合,,,5.分支與合并,分支在活動(dòng)圖中很常見,它是轉(zhuǎn)換的一部分,它將轉(zhuǎn)換路徑分成多個(gè)部分,每一個(gè)部分都有單獨(dú)的監(jiān)護(hù)條件和不同的結(jié)果。當(dāng)動(dòng)作流遇到分支時(shí),會(huì)根據(jù)監(jiān)護(hù)條件的真假來判定動(dòng)作的流向。分支的每個(gè)路徑監(jiān)護(hù)條件應(yīng)該是互斥的,這樣可以保證只有一個(gè)路徑的轉(zhuǎn)換被激發(fā)。 合并指的是兩個(gè)或者多個(gè)控制路徑在此匯合,合并和分支常常成對(duì)使用,合并表示從對(duì)應(yīng)分支開始的條件的行為結(jié)束。 在活動(dòng)圖中,分支與合并都用空心的菱形表示,分支有一個(gè)輸入
16、箭頭和兩個(gè)輸出箭頭,而合并有兩個(gè)輸入箭頭和一個(gè)輸出箭頭。如圖11-17所示。,,,圖11-17 分支與合并,,,6.泳道,為了對(duì)活動(dòng)的職責(zé)進(jìn)行組織而在活動(dòng)圖中將活動(dòng)狀態(tài)分為不同的組,稱為泳道。每個(gè)泳道代表特定含義的狀態(tài)職責(zé)部分。在活動(dòng)圖中,每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道,泳道表示了哪些活動(dòng)由哪些對(duì)象進(jìn)行的。每個(gè)泳道都有一個(gè)與其他泳道不同的名稱。 在活動(dòng)圖中,每個(gè)泳道通過垂直實(shí)線與它的鄰居泳道相分離。在泳道的上方是泳道的名稱,不同的泳道中的活動(dòng)既可以順序地進(jìn)行也可以并發(fā)進(jìn)行。如圖11-18所示。,,,圖11-18 泳道,,,7.對(duì)象流,對(duì)象可以在活動(dòng)圖中顯示,表示動(dòng)作狀態(tài)或者活動(dòng)狀態(tài)與對(duì)
17、象之間的依賴關(guān)系。對(duì)象可以作為動(dòng)作的輸入或輸出,或簡(jiǎn)單地表示指定動(dòng)作對(duì)對(duì)象的影響。對(duì)象用矩形符號(hào)來表示,在矩形的內(nèi)部有對(duì)象名或類名。對(duì)象流用帶有箭頭的虛線表示,如圖11-19所示。,,,圖11-19 對(duì)象流,,對(duì)象流中的對(duì)象有如下特點(diǎn): ·一個(gè)對(duì)象可以由多個(gè)動(dòng)作操縱; ·一個(gè)動(dòng)作輸出的對(duì)象可以作為另一個(gè)動(dòng)作輸入的對(duì)象; ·同一個(gè)對(duì)象可以多次出現(xiàn)在活動(dòng)圖中,每一次出現(xiàn)表明該對(duì)象正處于對(duì)象生存期的不同時(shí)間點(diǎn)。,8.動(dòng)作流,動(dòng)作流是指所有動(dòng)作狀態(tài)之間的轉(zhuǎn)換。在活動(dòng)圖中,一個(gè)動(dòng)作狀態(tài)執(zhí)行完成本狀態(tài)需要完成的動(dòng)作后會(huì)自動(dòng)轉(zhuǎn)換到另外一個(gè)狀態(tài),一般不需要特定事件的觸發(fā)。動(dòng)作流用帶箭頭的直線表示
18、,箭頭的方向指向轉(zhuǎn)入的方向,如圖11-20所示。,,,圖11-20 動(dòng)作流,,?,操作三 使用Rational Rose繪制活動(dòng)圖,活動(dòng)圖顯示了從活動(dòng)到活動(dòng)的流?;顒?dòng)圖可以在分析系統(tǒng)業(yè)務(wù)時(shí)用來演示業(yè)務(wù)流,也可以在收集系統(tǒng)需求的時(shí)候顯示一個(gè)用例中的事件流。活動(dòng)圖顯示了系統(tǒng)中某個(gè)業(yè)務(wù)或者某個(gè)用例中,要經(jīng)歷哪些活動(dòng),這些活動(dòng)按什么順序發(fā)生。,1.創(chuàng)建活動(dòng)圖(見圖11-21),(1) 用于分析系統(tǒng)業(yè)務(wù):在瀏覽器中右擊Use Case視圖,選擇“New”→“Activity Diagram”。 (2) 用于顯示用例中的事件流:在瀏覽器中選中某個(gè)用例,然后右擊這個(gè)用例,選擇“New”→“Activ
19、ity Diagram”。,,圖11-21 創(chuàng)建活動(dòng)圖,,,2.增加泳道(見圖11-22),泳道是框圖里的豎段,包含特定人員或組織要進(jìn)行的所有活動(dòng)??梢园芽驁D分為多個(gè)泳道,每個(gè)泳道對(duì)應(yīng)每個(gè)人員或組織。 在工具欄選擇【Swimlane】按鈕,然后單擊框圖增加泳道,最后用人員或組織給泳道命名。,,圖11-22 增加泳道,,,3.增加活動(dòng)并設(shè)置活動(dòng)的順序(見圖11-23),(1) 在工具欄中選擇【Activity】按鈕,單擊活動(dòng)圖增加活動(dòng),命名活動(dòng)。 (2) 在工具欄中選擇【Transition】按鈕,把箭頭從一個(gè)活動(dòng)拖向另一個(gè)活動(dòng)。,,圖11-23 增加活動(dòng),,,4.增加同步(見圖1
20、1-24),(1) 選擇【Synchronization】工具欄按鈕,單擊框圖來增加同步棒。 (2) 畫出從活動(dòng)到同步棒的交接箭頭,表示在這個(gè)活動(dòng)之后開始并行處理。 (3) 畫出從同步棒到可以并行發(fā)生的活動(dòng)之間的交接箭頭。 (4) 創(chuàng)建另一同步棒,表示并行處理結(jié)束。 (5) 畫出從同步活動(dòng)到最后同步棒之間的交接箭頭,表示完成所有這些活動(dòng)之后,停止并行處理。,,圖11-24 增加同步,,,5.增加決策點(diǎn)(見圖11-25),決策點(diǎn)表示可以采取兩個(gè)或多個(gè)不同的路徑。從決策到活動(dòng)的交接箭頭要給出保證條件,及控制在決策之后采取什么路徑,保證條件應(yīng)該是互斥的。 (1) 選擇【Deci
21、sion】工具欄按鈕,單擊框圖增加決策點(diǎn)。 (2) 拖動(dòng)從決策到?jīng)Q策之后可能發(fā)生的活動(dòng)之間的交接,雙擊交接,打開【Detail】選項(xiàng)卡,在“Guard Condition”字段中寫入保證條件。,,圖11-25 增加決策點(diǎn),,任務(wù)四 認(rèn)?識(shí)?順?序?圖,,一個(gè)面向?qū)ο蟮能浖到y(tǒng)是一系列相互協(xié)同的對(duì)象的集合,每個(gè)對(duì)象都有自己的“生命”,如果每個(gè)對(duì)象只關(guān)心自己的事情,而不考慮與其他對(duì)象的交互將會(huì)產(chǎn)生混亂。為了能夠確定這些交互的方法,必須補(bǔ)全對(duì)靜態(tài)結(jié)構(gòu)的理解:那些并發(fā)對(duì)象是如何交互以及交互是如何影響對(duì)象的狀態(tài)的。創(chuàng)建動(dòng)態(tài)模型來完善系統(tǒng)的靜態(tài)模型,不僅可以幫助確定類中需要的操作,也能改進(jìn)系統(tǒng)的靜
22、態(tài)結(jié)構(gòu)。 系統(tǒng)動(dòng)態(tài)模型的其中一種就是交互視圖,它描述了執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系。,,?,操作一 順序圖的概述,順序圖(Sequence Diagram)也稱為時(shí)序圖,描述了對(duì)象之間傳送消息的時(shí)間順序,它用來表示用例中的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類操作中引起轉(zhuǎn)換的觸發(fā)事件。順序圖可供不同的用戶使用,以幫助他們進(jìn)一步了解系統(tǒng): ·用戶,幫助他們進(jìn)一步了解業(yè)務(wù)細(xì)節(jié); ·分析人員,幫助他們進(jìn)一步明確事件處理流程; ·開發(fā)人員,幫助他們進(jìn)一步了解需要開發(fā)的對(duì)象和對(duì)這些對(duì)象的操作; ·測(cè)試人員,通過過程的細(xì)節(jié)開發(fā)測(cè)試案例。,,
23、在UML中,順序圖表示為二維圖,如圖11-26所示。其中,橫軸上代表在協(xié)作中獨(dú)立對(duì)象的角色。每個(gè)對(duì)象的表示方法是:矩形框中寫有對(duì)象或類名,且名字下面有下劃線。縱軸是時(shí)間軸,時(shí)間沿豎線向下延伸。角色使用生命線進(jìn)行表示,當(dāng)對(duì)象存在時(shí),生命線用一條虛線表示,此時(shí)對(duì)象不處于激活狀態(tài),當(dāng)對(duì)象的過程處于激活狀態(tài)時(shí),生命線是一條雙道線。順序圖中的消息使用從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象的生命線的箭頭表示。箭頭以時(shí)間順序在圖中從上到下排列。,,,圖11-26 典型的順序圖,,?,操作二 順序圖的組成,順序圖是由對(duì)象(Object)、生命線(Lifeline)、激活(Activation)和消息(Messag
24、es)等構(gòu)成的。順序圖的目的就是按照交互發(fā)生的一系列順序顯示對(duì)象之間的交互。如圖11-27所示。,圖11-27 順序圖的組成,,,1.對(duì)象,順序圖中的對(duì)象和對(duì)象圖中對(duì)象的概念一樣,都是類的實(shí)例。順序圖中的對(duì)象可以是系統(tǒng)的參與者或者任何有效的系統(tǒng)對(duì)象。對(duì)象的表示形式也和對(duì)象圖中的對(duì)象表示方式一樣,使用包圍名稱的矩形框來標(biāo)記,所顯示的對(duì)象及其類的名稱帶有下劃線,二者用冒號(hào)隔開,即對(duì)象名。 如果對(duì)象的開始位置在順序圖的頂部,那就意味著順序圖在開始交互的時(shí)候該對(duì)象就已經(jīng)存在了;如果對(duì)象的位置不在頂部,那么表明對(duì)象在交互的過程中將被創(chuàng)建。,,類元角色(Actor)為系統(tǒng)中發(fā)起請(qǐng)求消息的對(duì)象(或者稱
25、為參與者對(duì)象),它可以是任何在系統(tǒng)中扮演角色的對(duì)象,不管它是對(duì)象實(shí)例還是參與者,它的生命線的使用方法相同,只是表示方法不同。類元角色的表示方法如圖11-28所示。,,圖11-28 類元角色,,,2.生命線,每個(gè)參與者及系統(tǒng)運(yùn)行中的對(duì)象(即活動(dòng)對(duì)象)都用一條垂直的生命線表示。UML用矩形和虛線表示生命線,虛線展示了參與交互的對(duì)象的生命長(zhǎng)度,矩形框中添加對(duì)象名稱。對(duì)象與生命線結(jié)合在一起稱為對(duì)象的生命線。,3.激活,順序圖中的激活是對(duì)象操作的執(zhí)行,它表示一個(gè)對(duì)象直接或通過從屬操作完成操作的過程。它對(duì)執(zhí)行的持續(xù)時(shí)間和執(zhí)行與其調(diào)用者之間的控制關(guān)系進(jìn)行建模。激活使用小矩形條表示,它的頂端與激活時(shí)間對(duì)齊,
26、而底端與完成時(shí)間對(duì)齊。,,,4.消息,消息是從一個(gè)對(duì)象(發(fā)送者)向另一個(gè)或幾個(gè)對(duì)象(接收者)發(fā)送的信號(hào),或由一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象的操作。消息可以用于在對(duì)象間傳遞參數(shù)。消息可以是信號(hào),即明確的、命名的、對(duì)象間的異步通信;也可以是調(diào)用,即具有返回控制機(jī)制的操作的異步調(diào)用。其中,順序圖中強(qiáng)調(diào)的是消息的時(shí)間順序,而協(xié)作圖中強(qiáng)調(diào)交換消息的對(duì)象間的關(guān)系。 在UML中,消息使用箭頭來表示,箭頭的類型表示了消息的類型,消息箭頭所指的一方是接收方。常用的消息類型如表11-4所示。,,,表11-4 常見的消息類型,?,操作三 使用Rational Rose繪制順序圖 1.創(chuàng)建序列圖(見圖11-29)
27、,在瀏覽器內(nèi)的Logic視圖上單擊鼠標(biāo)右鍵, 選擇“New”→ “Sequence Diagram”就新建了一張序列圖。也可以在瀏覽器中Use Case視圖中選擇某個(gè)用例,然后右擊這個(gè)用例,選擇“New”→“Sequence Diagram”。,,圖11-29 創(chuàng)建序列圖,,,2.在序列圖中放置參與者和對(duì)象(見圖11-30),在序列圖中的主要元素之一就是對(duì)象,相似的對(duì)象可以被抽象為一個(gè)類。序列圖中的每個(gè)對(duì)象代表了某個(gè)類的某一實(shí)例。 (1) 把用例圖中的該用例涉及的所有參與者拖到Sequence圖中。 (2) 選擇工具欄中的【Object】按鈕,單擊框圖增加對(duì)象??梢赃x擇創(chuàng)建已有類的對(duì)
28、象,也可以在瀏覽器中新建一個(gè)類,再創(chuàng)建新的類的對(duì)象。雙擊對(duì)象,在彈出的對(duì)話框中的“Class”里確定該對(duì)象所屬的類。 (3) 對(duì)象命名:對(duì)象可以命名也可沒名字。雙擊對(duì)象,在彈出的對(duì)話框中的“Name”里給對(duì)象取名。,,圖11-30 放置參與者和對(duì)象,,,3.說明對(duì)象之間的消息(見圖11-31),(1) 選擇【Message】工具欄按鈕。 (2) 單擊啟動(dòng)消息的參與者或?qū)ο?,把消息拖到目?biāo)對(duì)象和參與者間。 (3) 命名消息。雙擊消息,在對(duì)話框中【General】里的 “Name”中輸入消息名稱。,,圖11-31 對(duì)象之間的消息,,任務(wù)五 認(rèn)?識(shí)?協(xié)?作?圖,協(xié)作圖(Colla
29、boration Diagram /Communication Diagram,也叫通訊圖)是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接收消息的對(duì)象之間的組織結(jié)構(gòu)。與順序圖不同的是,在協(xié)作圖中明確表示了角色之間的關(guān)系,通過協(xié)作角色來限定協(xié)作中的對(duì)象或鏈。另外,協(xié)作圖不將時(shí)間作為單獨(dú)的維來表示,所以必須使用順序號(hào)來判斷消息的順序以及并行線程。順序圖和協(xié)作圖表達(dá)的是類似的信息,雖然它們使用不同的方法表示,但可以通過適當(dāng)?shù)姆绞綄⑺鼈冞M(jìn)行轉(zhuǎn)換。,,?,操作一 協(xié)作圖的概述,要理解協(xié)作圖,首先要了解什么是協(xié)作。所謂協(xié)作,是指在一定的語境中一組對(duì)象以及實(shí)現(xiàn)某些行為的對(duì)象間的相互作用。在協(xié)作中,同時(shí)包含了運(yùn)行時(shí)的類元角
30、色(Classifier Roles)和關(guān)聯(lián)角色(Association Roles),類元角色描述了一個(gè)對(duì)象,關(guān)聯(lián)角色描述了協(xié)作關(guān)系中的鏈,并通過幾何排列表現(xiàn)交互作用中的各個(gè)角色,如圖11-32所示。而使用協(xié)作圖的作用如下: ·通過描繪對(duì)象之間消息的傳遞情況來反映具體的使用語境的邏輯表達(dá)。一個(gè)使用情境的邏輯可能是一個(gè)用例的一部分,或是一條控制流,這和序列圖的作用類似。,,·顯示對(duì)象及其交互關(guān)系的空間組織結(jié)構(gòu)。協(xié)作圖顯示了在交互過程中各個(gè)對(duì)象之間的組織交互關(guān)系以及對(duì)象彼此之間的鏈接。與序列圖不同,協(xié)作圖顯示的是對(duì)象之間的關(guān)系,并不側(cè)重交互的順序,它沒有將時(shí)間作為一個(gè)單獨(dú)的維度,而是使用序列
31、號(hào)來確定消息及并發(fā)線程的順序。 ·協(xié)作圖的另外一個(gè)作用是表現(xiàn)一個(gè)類操作的實(shí)現(xiàn)。協(xié)作圖可以說明類操作中使用到的參數(shù)、局部變量以及返回值等。當(dāng)使用協(xié)作圖表現(xiàn)一個(gè)系統(tǒng)行為時(shí),消息編號(hào)對(duì)應(yīng)了程序中嵌套調(diào)用結(jié)構(gòu)和信號(hào)的傳遞過程。,,,,圖11-32 協(xié)作圖,,?,操作二 協(xié)作圖的組成,協(xié)作圖(Collaboration Diagram)是由對(duì)象(Object)、消息(Messages)和鏈(Link)等構(gòu)成的。,1.對(duì)象,協(xié)作圖中的對(duì)象和序列圖中的對(duì)象的概念相同,同樣都是類的實(shí)例。一個(gè)協(xié)作代表了為了完成某個(gè)目標(biāo)而共同工作的一組對(duì)象。對(duì)象的角色表示一個(gè)或一組對(duì)象在完成目標(biāo)的過程中所應(yīng)起的那部分作用
32、。在協(xié)作圖中,不需要關(guān)于某個(gè)類的所有對(duì)象都出現(xiàn),同一個(gè)類的對(duì)象在一個(gè)協(xié)作圖中也可能要充當(dāng)多個(gè)角色。 協(xié)作圖中對(duì)象的表示形式也和順序圖中的對(duì)象的表示形式一樣,這里不再詳細(xì)介紹。,,,2.消息(見圖11-33),在協(xié)作圖中,可以通過一系列的消息來描述系統(tǒng)的動(dòng)態(tài)行為。在協(xié)作圖中,消息使用帶有標(biāo)簽的箭頭來表示,它附在連接發(fā)送者和接收者的鏈上。鏈連接了發(fā)送者和接收者,箭頭的指向便是接收者。 在協(xié)作圖中每個(gè)消息包括一個(gè)順序號(hào)以及消息的名稱。順序號(hào)是消息的一個(gè)數(shù)字前綴,是一個(gè)整數(shù),由1開始遞增,每個(gè)消息都必須有唯一的順序號(hào)。嵌套消息使用點(diǎn)表示法。,,圖11-33 消息,,3.鏈(見圖11-34),
33、在協(xié)作圖中的鏈和對(duì)象圖中的鏈的概念和表示形式都相同,都是兩個(gè)或多個(gè)對(duì)象之間的獨(dú)立連接,是對(duì)象引用元組(有序表),是關(guān)聯(lián)的實(shí)例。 鏈?zhǔn)顷P(guān)聯(lián)的實(shí)例,當(dāng)一個(gè)類與另一個(gè)類之間有關(guān)聯(lián)時(shí),這兩個(gè)類的實(shí)例之間就有鏈,一個(gè)對(duì)象就能向另一個(gè)對(duì)象發(fā)送消息。所以鏈?zhǔn)菍?duì)象間的發(fā)送消息的路徑。 在協(xié)作圖中,鏈的表示形式為一個(gè)或多個(gè)相連的線或弧。在自身相關(guān)聯(lián)的類中,鏈?zhǔn)莾啥酥赶蛲粚?duì)象的回路,是一條弧。為了說明對(duì)象是如何與另外一個(gè)對(duì)象進(jìn)行連接的,我們還可以在鏈的兩端添加上提供者和客戶端的可見性修飾。如圖11-34所示,是鏈的普通和自身關(guān)聯(lián)的表示形式。,,,圖11-34 鏈,,?,操作三 使用Rational
34、Rose繪制協(xié)作圖 1.增加對(duì)象鏈接(見圖11-35),(1) 選擇【Object Link】工具欄按鈕。 (2) 單擊要鏈接的參與者或?qū)ο蟆? (3) 將對(duì)象鏈接拖動(dòng)到要鏈接的參與者或?qū)ο箝g。,,圖11-35 增加對(duì)象鏈接,,2.加進(jìn)消息(見圖11-36),(1) 選擇【Link Message】或【Reverse Link Message】工具欄按鈕。 (2) 單擊要放消息的對(duì)象鏈接。 (3) 雙擊消息,可以在彈出的對(duì)話框里為消息命名。,,圖11-36 加進(jìn)消息,,,3.自反鏈接(見圖11-37),(1) 選擇【Link to Self】工具欄按鈕。 (2) 單擊
35、要鏈接的對(duì)象,會(huì)增加一個(gè)消息的箭頭。 (3) 雙擊消息,命名自反鏈接。,,圖11-37 建立自反鏈接,,?,操作四 順序圖與協(xié)作圖比較 1.順序圖與協(xié)作圖的比較,順序圖與協(xié)作圖都是交互圖,其區(qū)別主要表現(xiàn)在: 順序圖強(qiáng)調(diào)按時(shí)間展開的消息的傳遞,清晰地顯示了時(shí)間次序;對(duì)簡(jiǎn)單的迭代和分支的可視化要比協(xié)作圖好,常用于場(chǎng)景顯示;可以不要順序號(hào)。 協(xié)作圖強(qiáng)調(diào)交互中實(shí)例之間的結(jié)構(gòu)關(guān)系以及所傳送的消息,清晰地顯示了對(duì)象間的關(guān)系;對(duì)復(fù)雜的迭代和分支的可視化以及對(duì)多并發(fā)控制流的可視化要比順序圖好,常用于顯示過程設(shè)計(jì)細(xì)節(jié);有路徑和順序號(hào)。,,2.順序圖與協(xié)作圖的互換,UML中的順序圖和協(xié)作圖都是用來表示對(duì)象之間的交互作用的,其中順序圖側(cè)重于描述交互過程中的時(shí)間關(guān)系,對(duì)象之間的關(guān)系描述不十分清楚;協(xié)作圖側(cè)重于描述交互過程中的對(duì)象之間的關(guān)系,時(shí)間順序描述不是十分清楚。因此,從某種意義上來說,這兩種圖的作用是等價(jià)的,Rose中也提供了這兩種圖之間的轉(zhuǎn)換方式,如下步驟所示(見圖11-38)。 (1) 打開要轉(zhuǎn)換的順序圖或協(xié)作圖。 (2) 依次選擇主菜單欄中的【Browse】→【Go To Sequence Diagram】,即可將當(dāng)前的協(xié)作圖轉(zhuǎn)換成順序圖。,,圖11-38 選擇轉(zhuǎn)換到順序圖,,
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年作風(fēng)建設(shè)學(xué)習(xí)教育開展情況的報(bào)告范文
- 在2025年民營(yíng)企業(yè)座談會(huì)上的主持講話范文
- 在2025年全縣教育領(lǐng)域群眾身邊不正之風(fēng)和腐敗問題集中整治調(diào)度會(huì)上的講話范文
- 工委副書記在2025年機(jī)關(guān)DeepSeek應(yīng)用專題輔導(dǎo)培訓(xùn)班開班儀式上的講話范文
- 在2025年DeepSeek大模型政務(wù)應(yīng)用培訓(xùn)會(huì)上的講話范文
- 在青年干部培訓(xùn)結(jié)業(yè)典禮上的講話文稿
- 2025年副書記防汛工作會(huì)議上的講話范文
- 2025年主管商務(wù)部門黨組書記在理論學(xué)習(xí)中心組會(huì)上研討發(fā)言文稿
- 2025年國(guó)企黨委關(guān)于干部職工思想政治工作情況的報(bào)告范文
- 在機(jī)關(guān)單位作風(fēng)建設(shè)學(xué)習(xí)教育突出問題專項(xiàng)整治工作部署會(huì)議上的講話范文
- 醫(yī)院領(lǐng)導(dǎo)2025年黨風(fēng)廉政建設(shè)推進(jìn)會(huì)上的講話范文
- 2025年關(guān)于開展“以案促改”工作實(shí)施方案供參考
- 在2025年安全生產(chǎn)專項(xiàng)整治暨化工行業(yè)風(fēng)險(xiǎn)防控部署會(huì)上的講話范文
- 領(lǐng)導(dǎo)干部在“十五五”發(fā)展規(guī)劃編制啟動(dòng)會(huì)上的講話文稿
- 2025年書記在慰問老干部暨情況通報(bào)會(huì)上的主持講話提綱范文
相關(guān)資源
更多