版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(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)建模描述的是參與者如何通過(guò)交互實(shí)現(xiàn)系統(tǒng)中的用例。系統(tǒng)中對(duì)象的交互是通過(guò)順序圖、協(xié)作圖或者活動(dòng)圖來(lái)描述的,同時(shí),用例模型中用例實(shí)現(xiàn)中所使用的類(lèi)會(huì)在狀態(tài)圖中得以描述。
操作一動(dòng)態(tài)建模概述
前面通過(guò)類(lè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é)作圖來(lái)描述系統(tǒng)的結(jié)構(gòu)和行為,它們適合于描述系統(tǒng)中的對(duì)象在執(zhí)行期間不同的時(shí)間點(diǎn)是如何動(dòng)態(tài)交互的(一組對(duì)象為了實(shí)現(xiàn)一些功能而進(jìn)行通信稱(chēng)之為交互,可以通過(guò)狀態(tài)圖、活動(dòng)圖、順序圖和協(xié)作圖來(lái)描述系統(tǒng)的動(dòng)態(tài)行為)。通過(guò)對(duì)軟件系統(tǒng)的靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的描述,開(kāi)發(fā)團(tuán)隊(duì)和用戶(hù)易于理解目標(biāo)系統(tǒng)的功能及執(zhí)行結(jié)果。
任務(wù)二認(rèn)?識(shí)?狀?態(tài)?圖
操作一狀態(tài)圖的概述
狀態(tài)圖(StatechartDiagram)是軟件系統(tǒng)進(jìn)行面向?qū)ο蠓治龅囊环N常用工具,它通過(guò)建立對(duì)象的生存周期模型(狀態(tài))來(lái)描述對(duì)象隨時(shí)間變化的動(dòng)態(tài)行為。狀態(tài)圖主要用來(lái)描述對(duì)象、子系統(tǒng)、系統(tǒng)的生命周期。狀態(tài)圖適合描述跨越多個(gè)用例的對(duì)象在其生命周期中的各種狀態(tài)及其狀態(tài)之間的轉(zhuǎn)換,這些對(duì)象可以是類(lèi)、接口、構(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è)事件。類(lèi)圖和對(duì)應(yīng)的對(duì)象圖只展示出系統(tǒng)的靜態(tài)方面。它們展示的是系統(tǒng)靜態(tài)層次和關(guān)聯(lián),并能告訴你系統(tǒng)的行為是什么。但它們不能說(shuō)明這些行為的動(dòng)態(tài)細(xì)節(jié)。狀態(tài)圖能幫助分析員、設(shè)計(jì)員和開(kāi)發(fā)人員理解系統(tǒng)中對(duì)象的行為。
開(kāi)發(fā)人員尤其要知道對(duì)象是如何表現(xiàn)自己的行為的,因?yàn)樗麄円密浖?shí)施這些行為。僅僅實(shí)施對(duì)象是不夠的,開(kāi)發(fā)人員還必須讓對(duì)象做該做的事情。狀態(tài)圖可以確保開(kāi)發(fā)人員能夠清楚地了解對(duì)象應(yīng)該做什么,而不用自己去猜測(cè)它。如果有了一幅展示對(duì)象行為的清晰圖景,那么開(kāi)發(fā)小組構(gòu)造出的系統(tǒng)滿(mǎn)足需求的可能性就會(huì)大大增加。
操作二狀態(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),而不能作為轉(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)
2.狀態(tài)(State)
狀態(tài)是指對(duì)象在其生命周期中,滿(mǎn)足某些條件、執(zhí)行某些活動(dòng)、或等待某些事件時(shí)的一個(gè)狀況。狀態(tài)指的是對(duì)象的狀態(tài),用圓角的矩形框表示狀態(tài),如圖11-3所示。例如:
·發(fā)票(對(duì)象)被支付(狀態(tài));
·小車(chē)(對(duì)象)正在停著(狀態(tài));
·發(fā)動(dòng)機(jī)(對(duì)象)正在工作(狀態(tài));
·電燈(對(duì)象)開(kāi)著(狀態(tài))。圖11-3登錄提示狀態(tài)
(1)狀態(tài)的特征。
通常一個(gè)狀態(tài)包括名稱(chēng)、進(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)入事件”用來(lái)指定進(jìn)入一個(gè)狀態(tài)的動(dòng)作;“退出事件”用來(lái)指定退出一個(gè)狀態(tài)的動(dòng)作;“做”事件用來(lái)指定在該狀態(tài)下的動(dòng)作(如:發(fā)送一條消息)。圖11-4初始狀態(tài)、原子狀態(tài)、結(jié)束狀態(tài)“動(dòng)作”是對(duì)象類(lèi)中一個(gè)操作的執(zhí)行,動(dòng)作具有原子性和不可中斷特性。
“事件”指的是發(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-1狀態(tài)特征表11-2常見(jiàn)的事件類(lèi)型
(2)狀態(tài)的類(lèi)型。
狀態(tài)的類(lè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所示。圖11-5組合狀態(tài)與子狀態(tài)并發(fā)狀態(tài)指一個(gè)對(duì)象在同一時(shí)刻可以處在多種狀態(tài)。如圖11-6所示。圖11-6并發(fā)狀態(tài)歷史狀態(tài)代表上次離開(kāi)組成狀態(tài)時(shí)的最后一個(gè)活動(dòng)子狀態(tài),它用一個(gè)包含字母“H”的小圓圈表示。每當(dāng)轉(zhuǎn)換到組成狀態(tài)的歷史狀態(tài)時(shí),對(duì)象便恢復(fù)到上次離開(kāi)該組成狀態(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ā)生或者某些條件滿(mǎn)足時(shí),一個(gè)源狀態(tài)下的對(duì)象完成一定的動(dòng)作后將發(fā)生狀態(tài)轉(zhuǎn)變,轉(zhuǎn)向另一個(gè)稱(chēng)之為目標(biāo)狀態(tài)的狀態(tài)。當(dāng)發(fā)生轉(zhuǎn)換時(shí),轉(zhuǎn)換進(jìn)入的狀態(tài)為活動(dòng)狀態(tài),轉(zhuǎn)換離開(kāi)的狀態(tài)變?yōu)榉腔顒?dòng)狀態(tài)。轉(zhuǎn)換用箭頭表示,如果沒(méi)有標(biāo)注事件,則本轉(zhuǎn)移為自動(dòng)轉(zhuǎn)移。
轉(zhuǎn)換通常分為外部轉(zhuǎn)換、內(nèi)部轉(zhuǎn)換、完成轉(zhuǎn)換和復(fù)合轉(zhuǎn)換四種。一個(gè)轉(zhuǎn)換一般包括五個(gè)部分信息:源狀態(tài)、目標(biāo)狀態(tài)、觸發(fā)事件、監(jiān)護(hù)條件和動(dòng)作。轉(zhuǎn)換具有的特征如表11-3所示。表11-3轉(zhuǎn)換的特征
操作三使用RationalRose繪制狀態(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)圖(見(jiàn)圖11-8)
(1)在瀏覽器中右擊類(lèi)。
(2)選擇“New”→“StatechartDiagram”,對(duì)該類(lèi)創(chuàng)建一個(gè)狀態(tài)圖,并命名該圖。圖11-8創(chuàng)建狀態(tài)圖
2.在圖中增加狀態(tài),初始和終止?fàn)顟B(tài)(見(jiàn)圖11-9)
(1)選擇工具欄的【state】按鈕,單擊框圖增加一個(gè)狀態(tài),雙擊狀態(tài)命名。
(2)選擇工具欄的“startstate”和“endstate”,單擊框圖增加初始狀態(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)之間增加交接(見(jiàn)圖11-10、圖11-11)
(1)選擇【statetransition】工具欄按鈕。
(2)從一種狀態(tài)拖到另一種狀態(tài)。
(3)雙擊交接彈出對(duì)話框,可以在“General”中增加事件(Event),在“Detail”中增加保證條件(GuardCondition)等交接的細(xì)節(jié)。事件用來(lái)在交接中從一個(gè)對(duì)象發(fā)送給另一個(gè)對(duì)象,保證條件放在中括號(hào)里,控制是否發(fā)生交接。圖11-10增加事件圖11-11增加保證條件
4.在狀態(tài)中增加活動(dòng)(見(jiàn)圖11-12)
(1)右擊狀態(tài)并選擇“OPENSpecification”。
(2)選擇【Action】標(biāo)簽,右擊空白處并選擇“Insert”。
(3)雙擊新活動(dòng)(清單中有“Entry/”)打開(kāi)活動(dòng)規(guī)范,在“Name”中輸入活動(dòng)細(xì)節(jié)。圖11-12在狀態(tài)中增加活動(dòng)
任務(wù)三認(rèn)?識(shí)?活?動(dòng)?圖
操作一活動(dòng)圖的概述
活動(dòng)圖(ActivityDiagram)顯示活動(dòng)動(dòng)作及其結(jié)果,著重描述操作(方法)實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或?qū)ο笾械幕顒?dòng)?;顒?dòng)是某件事情正在進(jìn)行的狀態(tài),既可以是現(xiàn)實(shí)生活中正在進(jìn)行的某一項(xiàng)工作,也可以是軟件系統(tǒng)中某個(gè)類(lèi)對(duì)象的一個(gè)操作。
活動(dòng)圖與常用的程序流程圖相似,它們的主要區(qū)別在于程序流程圖一般用來(lái)表示串行過(guò)程,而活動(dòng)圖則可以用來(lái)表示并行過(guò)程,如圖11-13所示。使用活動(dòng)圖的主要目的是:
·描述一個(gè)操作執(zhí)行過(guò)程中(操作實(shí)現(xiàn)的實(shí)例化)所完成的工作(動(dòng)作);
·描述對(duì)象內(nèi)部的工作;
·顯示如何執(zhí)行一組相關(guān)的動(dòng)作,以及這些動(dòng)作如何影響它們周?chē)膶?duì)象;
·顯示用例的實(shí)例是如何執(zhí)行動(dòng)作以及如何改變對(duì)象狀態(tài)的;
·說(shuō)明一次商務(wù)活動(dòng)中的參與者、工作流、組織和對(duì)象是如何工作的。圖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)沒(mé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)圖的最小單位,無(wú)法分解為更小的部分;
·動(dòng)作狀態(tài)是不可中斷的,它一旦運(yùn)行就不能中斷,一直運(yùn)行到結(jié)束;
·動(dòng)作狀態(tài)是瞬時(shí)的行為,它所占用的處理時(shí)間極短,有時(shí)甚至可以忽略;
·動(dòng)作狀態(tài)有入轉(zhuǎn)換,入轉(zhuǎn)換可以是動(dòng)作流,也可以是對(duì)象流。動(dòng)作狀態(tài)至少有一條出轉(zhuǎn)換,這條轉(zhuǎn)換以?xún)?nèi)部動(dòng)作的完成為起點(diǎn),與外部事件無(wú)關(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)是非原子性的,用來(lái)表示一個(gè)具有子結(jié)構(gòu)的純粹計(jì)算的執(zhí)行。活動(dòng)狀態(tài)可以分解成其他子活動(dòng)或動(dòng)作狀態(tài),可以使轉(zhuǎn)換離開(kāi)狀態(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)用兩邊為弧的條形框表示,中間填活動(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)圖來(lái)表示;
·活動(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)圖中,一個(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é)合用來(lái)表示并行分支在此得到同步。
分叉用粗黑線表示。分叉具有一個(gè)輸入轉(zhuǎn)換、兩個(gè)或者多個(gè)輸出轉(zhuǎn)換,每個(gè)轉(zhuǎn)換都可以是獨(dú)立的控制流。結(jié)合與分叉相反,結(jié)合具有兩個(gè)或者多個(gè)輸入轉(zhuǎn)換、一個(gè)輸出轉(zhuǎn)換,先完成的控制流需要在此等待,只有當(dāng)所有的控制流都到達(dá)結(jié)合點(diǎn)時(shí),控制才能繼續(xù)向下進(jìn)行。如圖11-16所示。圖11-16分叉與結(jié)合
5.分支與合并
分支在活動(dòng)圖中很常見(jiàn),它是轉(zhuǎn)換的一部分,它將轉(zhuǎn)換路徑分成多個(gè)部分,每一個(gè)部分都有單獨(dú)的監(jiān)護(hù)條件和不同的結(jié)果。當(dāng)動(dòng)作流遇到分支時(shí),會(huì)根據(jù)監(jiān)護(hù)條件的真假來(lái)判定動(dòng)作的流向。分支的每個(gè)路徑監(jiān)護(hù)條件應(yīng)該是互斥的,這樣可以保證只有一個(gè)路徑的轉(zhuǎn)換被激發(fā)。
合并指的是兩個(gè)或者多個(gè)控制路徑在此匯合,合并和分支常常成對(duì)使用,合并表示從對(duì)應(yīng)分支開(kāi)始的條件的行為結(jié)束。
在活動(dòng)圖中,分支與合并都用空心的菱形表示,分支有一個(gè)輸入箭頭和兩個(gè)輸出箭頭,而合并有兩個(gè)輸入箭頭和一個(gè)輸出箭頭。如圖11-17所示。圖11-17分支與合并
6.泳道
為了對(duì)活動(dòng)的職責(zé)進(jìn)行組織而在活動(dòng)圖中將活動(dòng)狀態(tài)分為不同的組,稱(chēng)為泳道。每個(gè)泳道代表特定含義的狀態(tài)職責(zé)部分。在活動(dòng)圖中,每個(gè)活動(dòng)只能明確地屬于一個(gè)泳道,泳道表示了哪些活動(dòng)由哪些對(duì)象進(jìn)行的。每個(gè)泳道都有一個(gè)與其他泳道不同的名稱(chēng)。
在活動(dòng)圖中,每個(gè)泳道通過(guò)垂直實(shí)線與它的鄰居泳道相分離。在泳道的上方是泳道的名稱(chēng),不同的泳道中的活動(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ì)象之間的依賴(lài)關(guān)系。對(duì)象可以作為動(dòng)作的輸入或輸出,或簡(jiǎn)單地表示指定動(dòng)作對(duì)對(duì)象的影響。對(duì)象用矩形符號(hào)來(lái)表示,在矩形的內(nèi)部有對(duì)象名或類(lèi)名。對(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)作流用帶箭頭的直線表示,箭頭的方向指向轉(zhuǎn)入的方向,如圖11-20所示。圖11-20動(dòng)作流
操作三使用RationalRose繪制活動(dòng)圖
活動(dòng)圖顯示了從活動(dòng)到活動(dòng)的流。活動(dòng)圖可以在分析系統(tǒng)業(yè)務(wù)時(shí)用來(lái)演示業(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)圖(見(jiàn)圖11-21)
(1)用于分析系統(tǒng)業(yè)務(wù):在瀏覽器中右擊UseCase視圖,選擇“New”→“ActivityDiagram”。
(2)用于顯示用例中的事件流:在瀏覽器中選中某個(gè)用例,然后右擊這個(gè)用例,選擇“New”→“ActivityDiagram”。圖11-21創(chuàng)建活動(dòng)圖
2.增加泳道(見(jiàn)圖11-22)
泳道是框圖里的豎段,包含特定人員或組織要進(jìn)行的所有活動(dòng)。可以把框圖分為多個(gè)泳道,每個(gè)泳道對(duì)應(yīng)每個(gè)人員或組織。
在工具欄選擇【Swimlane】按鈕,然后單擊框圖增加泳道,最后用人員或組織給泳道命名。圖11-22增加泳道
3.增加活動(dòng)并設(shè)置活動(dòng)的順序(見(jiàn)圖11-23)
(1)在工具欄中選擇【Activity】按鈕,單擊活動(dòng)圖增加活動(dòng),命名活動(dòng)。
(2)在工具欄中選擇【Transition】按鈕,把箭頭從一個(gè)活動(dòng)拖向另一個(gè)活動(dòng)。圖11-23增加活動(dòng)
4.增加同步(見(jiàn)圖11-24)
(1)選擇【Synchronization】工具欄按鈕,單擊框圖來(lái)增加同步棒。
(2)畫(huà)出從活動(dòng)到同步棒的交接箭頭,表示在這個(gè)活動(dòng)之后開(kāi)始并行處理。
(3)畫(huà)出從同步棒到可以并行發(fā)生的活動(dòng)之間的交接箭頭。
(4)創(chuàng)建另一同步棒,表示并行處理結(jié)束。
(5)畫(huà)出從同步活動(dòng)到最后同步棒之間的交接箭頭,表示完成所有這些活動(dòng)之后,停止并行處理。圖11-24增加同步
5.增加決策點(diǎn)(見(jiàn)圖11-25)
決策點(diǎn)表示可以采取兩個(gè)或多個(gè)不同的路徑。從決策到活動(dòng)的交接箭頭要給出保證條件,及控制在決策之后采取什么路徑,保證條件應(yīng)該是互斥的。
(1)選擇【Decision】工具欄按鈕,單擊框圖增加決策點(diǎn)。
(2)拖動(dòng)從決策到?jīng)Q策之后可能發(fā)生的活動(dòng)之間的交接,雙擊交接,打開(kāi)【Detail】選項(xiàng)卡,在“GuardCondition”字段中寫(xiě)入保證條件。圖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)模型來(lái)完善系統(tǒng)的靜態(tài)模型,不僅可以幫助確定類(lèi)中需要的操作,也能改進(jìn)系統(tǒng)的靜態(tài)結(jié)構(gòu)。
系統(tǒng)動(dòng)態(tài)模型的其中一種就是交互視圖,它描述了執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系。
操作一順序圖的概述
順序圖(SequenceDiagram)也稱(chēng)為時(shí)序圖,描述了對(duì)象之間傳送消息的時(shí)間順序,它用來(lái)表示用例中的行為順序,當(dāng)執(zhí)行一個(gè)用例行為時(shí),順序圖中的每條消息對(duì)應(yīng)了一個(gè)類(lèi)操作中引起轉(zhuǎn)換的觸發(fā)事件。順序圖可供不同的用戶(hù)使用,以幫助他們進(jìn)一步了解系統(tǒng):
·用戶(hù),幫助他們進(jìn)一步了解業(yè)務(wù)細(xì)節(jié);
·分析人員,幫助他們進(jìn)一步明確事件處理流程;
·開(kāi)發(fā)人員,幫助他們進(jìn)一步了解需要開(kāi)發(fā)的對(duì)象和對(duì)這些對(duì)象的操作;
·測(cè)試人員,通過(guò)過(guò)程的細(xì)節(jié)開(kāi)發(fā)測(cè)試案例。在UML中,順序圖表示為二維圖,如圖11-26所示。其中,橫軸上代表在協(xié)作中獨(dú)立對(duì)象的角色。每個(gè)對(duì)象的表示方法是:矩形框中寫(xiě)有對(duì)象或類(lèi)名,且名字下面有下劃線??v軸是時(shí)間軸,時(shí)間沿豎線向下延伸。角色使用生命線進(jìn)行表示,當(dāng)對(duì)象存在時(shí),生命線用一條虛線表示,此時(shí)對(duì)象不處于激活狀態(tài),當(dāng)對(duì)象的過(guò)程處于激活狀態(tài)時(shí),生命線是一條雙道線。順序圖中的消息使用從一個(gè)對(duì)象的生命線到另一個(gè)對(duì)象的生命線的箭頭表示。箭頭以時(shí)間順序在圖中從上到下排列。圖11-26典型的順序圖
操作二順序圖的組成
順序圖是由對(duì)象(Object)、生命線(Lifeline)、激活(Activation)和消息(Messages)等構(gòu)成的。順序圖的目的就是按照交互發(fā)生的一系列順序顯示對(duì)象之間的交互。如圖11-27所示。圖11-27順序圖的組成
1.對(duì)象
順序圖中的對(duì)象和對(duì)象圖中對(duì)象的概念一樣,都是類(lèi)的實(shí)例。順序圖中的對(duì)象可以是系統(tǒng)的參與者或者任何有效的系統(tǒng)對(duì)象。對(duì)象的表示形式也和對(duì)象圖中的對(duì)象表示方式一樣,使用包圍名稱(chēng)的矩形框來(lái)標(biāo)記,所顯示的對(duì)象及其類(lèi)的名稱(chēng)帶有下劃線,二者用冒號(hào)隔開(kāi),即對(duì)象名。
如果對(duì)象的開(kāi)始位置在順序圖的頂部,那就意味著順序圖在開(kāi)始交互的時(shí)候該對(duì)象就已經(jīng)存在了;如果對(duì)象的位置不在頂部,那么表明對(duì)象在交互的過(guò)程中將被創(chuàng)建。類(lèi)元角色(Actor)為系統(tǒng)中發(fā)起請(qǐng)求消息的對(duì)象(或者稱(chēng)為參與者對(duì)象),它可以是任何在系統(tǒng)中扮演角色的對(duì)象,不管它是對(duì)象實(shí)例還是參與者,它的生命線的使用方法相同,只是表示方法不同。類(lèi)元角色的表示方法如圖11-28所示。圖11-28類(lèi)元角色
2.生命線
每個(gè)參與者及系統(tǒng)運(yùn)行中的對(duì)象(即活動(dòng)對(duì)象)都用一條垂直的生命線表示。UML用矩形和虛線表示生命線,虛線展示了參與交互的對(duì)象的生命長(zhǎng)度,矩形框中添加對(duì)象名稱(chēng)。對(duì)象與生命線結(jié)合在一起稱(chēng)為對(duì)象的生命線。
3.激活
順序圖中的激活是對(duì)象操作的執(zhí)行,它表示一個(gè)對(duì)象直接或通過(guò)從屬操作完成操作的過(guò)程。它對(duì)執(zhí)行的持續(xù)時(shí)間和執(zhí)行與其調(diào)用者之間的控制關(guān)系進(jìn)行建模。激活使用小矩形條表示,它的頂端與激活時(shí)間對(duì)齊,而底端與完成時(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中,消息使用箭頭來(lái)表示,箭頭的類(lèi)型表示了消息的類(lèi)型,消息箭頭所指的一方是接收方。常用的消息類(lèi)型如表11-4所示。表11-4常見(jiàn)的消息類(lèi)型
操作三使用RationalRose繪制順序圖
1.創(chuàng)建序列圖(見(jiàn)圖11-29)
在瀏覽器內(nèi)的Logic視圖上單擊鼠標(biāo)右鍵,選擇“New”→“SequenceDiagram”就新建了一張序列圖。也可以在瀏覽器中UseCase視圖中選擇某個(gè)用例,然后右擊這個(gè)用例,選擇“New”→“SequenceDiagram”。圖11-29創(chuàng)建序列圖
2.在序列圖中放置參與者和對(duì)象(見(jiàn)圖11-30)
在序列圖中的主要元素之一就是對(duì)象,相似的對(duì)象可以被抽象為一個(gè)類(lèi)。序列圖中的每個(gè)對(duì)象代表了某個(gè)類(lèi)的某一實(shí)例。
(1)把用例圖中的該用例涉及的所有參與者拖到Sequence圖中。
(2)選擇工具欄中的【Object】按鈕,單擊框圖增加對(duì)象??梢赃x擇創(chuàng)建已有類(lèi)的對(duì)象,也可以在瀏覽器中新建一個(gè)類(lèi),再創(chuàng)建新的類(lèi)的對(duì)象。雙擊對(duì)象,在彈出的對(duì)話框中的“Class”里確定該對(duì)象所屬的類(lèi)。
(3)對(duì)象命名:對(duì)象可以命名也可沒(méi)名字。雙擊對(duì)象,在彈出的對(duì)話框中的“Name”里給對(duì)象取名。圖11-30放置參與者和對(duì)象
3.說(shuō)明對(duì)象之間的消息(見(jiàn)圖11-31)
(1)選擇【Message】工具欄按鈕。
(2)單擊啟動(dòng)消息的參與者或?qū)ο螅严⑼系侥繕?biāo)對(duì)象和參與者間。
(3)命名消息。雙擊消息,在對(duì)話框中【General】里的“Name”中輸入消息名稱(chēng)。圖11-31對(duì)象之間的消息
任務(wù)五認(rèn)?識(shí)?協(xié)?作?圖
協(xié)作圖(CollaborationDiagram/CommunicationDiagram,也叫通訊圖)是一種交互圖,強(qiáng)調(diào)的是發(fā)送和接收消息的對(duì)象之間的組織結(jié)構(gòu)。與順序圖不同的是,在協(xié)作圖中明確表示了角色之間的關(guān)系,通過(guò)協(xié)作角色來(lái)限定協(xié)作中的對(duì)象或鏈。另外,協(xié)作圖不將時(shí)間作為單獨(dú)的維來(lái)表示,所以必須使用順序號(hào)來(lái)判斷消息的順序以及并行線程。順序圖和協(xié)作圖表達(dá)的是類(lèi)似的信息,雖然它們使用不同的方法表示,但可以通過(guò)適當(dāng)?shù)姆绞綄⑺鼈冞M(jìn)行轉(zhuǎn)換。
操作一協(xié)作圖的概述
要理解協(xié)作圖,首先要了解什么是協(xié)作。所謂協(xié)作,是指在一定的語(yǔ)境中一組對(duì)象以及實(shí)現(xiàn)某些行為的對(duì)象間的相互作用。在協(xié)作中,同時(shí)包含了運(yùn)行時(shí)的類(lèi)元角色(ClassifierRoles)和關(guān)聯(lián)角色(AssociationRoles),類(lèi)元角色描述了一個(gè)對(duì)象,關(guān)聯(lián)角色描述了協(xié)作關(guān)系中的鏈,并通過(guò)幾何排列表現(xiàn)交互作用中的各個(gè)角色,如圖11-32所示。而使用協(xié)作圖的作用如下:
·通過(guò)描繪對(duì)象之間消息的傳遞情況來(lái)反映具體的使用語(yǔ)境的邏輯表達(dá)。一個(gè)使用情境的邏輯可能是一個(gè)用例的一部分,或是一條控制流,這和序列圖的作用類(lèi)似。
·顯示對(duì)象及其交互關(guān)系的空間組織結(jié)構(gòu)。協(xié)作圖顯示了在交互過(guò)程中各個(gè)對(duì)象之間的組織交互關(guān)系以及對(duì)象彼此之間的鏈接。與序列圖不同,協(xié)作圖顯示的是對(duì)象之間的關(guān)系,并不側(cè)重交互的順序,它沒(méi)有將時(shí)間作為一個(gè)單獨(dú)的維度,而是使用序列號(hào)來(lái)確定消息及并發(fā)線程的順序。
·協(xié)作圖的另外一個(gè)作用是表現(xiàn)一個(gè)類(lèi)操作的實(shí)現(xiàn)。協(xié)作圖可以說(shuō)明類(lèi)操作中使用到的參數(shù)、局部變量以及返回值等。當(dāng)使用協(xié)作圖表現(xiàn)一個(gè)系統(tǒng)行為時(shí),消息編號(hào)對(duì)應(yīng)了程序中嵌套調(diào)用結(jié)構(gòu)和信號(hào)的傳遞過(guò)程。圖11-32協(xié)作圖
操作二協(xié)作圖的組成
協(xié)作圖(CollaborationDiagram)是由對(duì)象(Object)、消息(Messages)和鏈(Link)等構(gòu)成的。
1.對(duì)象
協(xié)作圖中的對(duì)象和序列圖中的對(duì)象的概念相同,同樣都是類(lèi)的實(shí)例。一個(gè)協(xié)作代表了為了完成某個(gè)目標(biāo)而共同工作的一組對(duì)象。對(duì)象的角色表示一個(gè)或一組對(duì)象在完成目標(biāo)的過(guò)程中所應(yīng)起的那部分作用。在協(xié)作圖中,不需要關(guān)于某個(gè)類(lèi)的所有對(duì)象都出現(xiàn),同一個(gè)類(lèi)的對(duì)象在一個(gè)協(xié)作圖中也可能要充當(dāng)多個(gè)角色。
協(xié)作圖中對(duì)象的表示形式也和順序圖中的對(duì)象的表示形式一樣,這里不再詳細(xì)介紹。
2.消息(見(jiàn)圖11-33)
在協(xié)作圖中,可以通過(guò)一系列的消息來(lái)描述系統(tǒng)的動(dòng)態(tài)行為。在協(xié)作圖中,消息使用帶有標(biāo)簽的箭頭來(lái)表示,它附在連接發(fā)送者和接收者的鏈上。鏈連接了發(fā)送者和接收者,箭頭的指向便是接收者。
在協(xié)作圖中每個(gè)消息包括一個(gè)順序號(hào)以及消息的名稱(chēng)。順序號(hào)是消息的一個(gè)數(shù)字前綴,是一個(gè)整數(shù),由1開(kāi)始遞增,每個(gè)消息都必須有唯一的順序號(hào)。嵌套消息使用點(diǎn)表示法。圖11-33消息
3.鏈(見(jiàn)圖11-34)
在協(xié)作圖中的鏈和對(duì)象圖中的鏈的概念和表示形式都相同,都是兩個(gè)或多個(gè)對(duì)象之間的獨(dú)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年川味復(fù)合調(diào)味料合作協(xié)議書(shū)
- 2025年五年級(jí)品德教學(xué)工作總結(jié)模版(三篇)
- 2025年代理售后服務(wù)合同模板(2篇)
- 2025年代理加工合同標(biāo)準(zhǔn)版本(2篇)
- 2025年九年級(jí)語(yǔ)文下冊(cè)教學(xué)工作總結(jié)范文(二篇)
- 2025年個(gè)人簡(jiǎn)易倉(cāng)庫(kù)租賃合同(4篇)
- 2025年二手車(chē)賣(mài)車(chē)協(xié)議樣本(4篇)
- 2025年代理合作協(xié)議范例(三篇)
- 2025年人教版小學(xué)二年級(jí)語(yǔ)文下冊(cè)教學(xué)工作總結(jié)范文(二篇)
- 2025年個(gè)人工程勞務(wù)合同樣本(三篇)
- 2025年全國(guó)科技活動(dòng)周科普知識(shí)競(jìng)賽試題庫(kù)及答案
- 工廠生產(chǎn)區(qū)清潔流程及安全規(guī)范
- 化學(xué)丨百師聯(lián)盟2025屆高三1月一輪復(fù)習(xí)聯(lián)考(五)化學(xué)試卷及答案
- 2024年全國(guó)職業(yè)院校技能大賽中職(酒店服務(wù)賽項(xiàng))備賽試題庫(kù)(500題)
- 工程建設(shè)項(xiàng)目培訓(xùn)
- 高速公路巡邏車(chē)司機(jī)勞動(dòng)合同
- 2025中國(guó)大唐集團(tuán)內(nèi)蒙古分公司招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 充血性心力衰竭課件
- 2025年日歷(日程安排-可直接打印)
- 《VAVE價(jià)值工程》課件
- 分享二手房中介公司的薪酬獎(jiǎng)勵(lì)制度
評(píng)論
0/150
提交評(píng)論