《軟件工程與開發(fā)技術(shù)》課件第12章_第1頁
《軟件工程與開發(fā)技術(shù)》課件第12章_第2頁
《軟件工程與開發(fā)技術(shù)》課件第12章_第3頁
《軟件工程與開發(fā)技術(shù)》課件第12章_第4頁
《軟件工程與開發(fā)技術(shù)》課件第12章_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第12章系統(tǒng)動(dòng)態(tài)特性與對(duì)象交互模型

12.1動(dòng)態(tài)模型概述12.2交互圖(InteractionDiagram)12.3狀態(tài)圖12.4活動(dòng)圖12.5UML2.0的活動(dòng)圖12.6小結(jié) 12.1動(dòng)態(tài)模型概述

系統(tǒng)的靜態(tài)模型描述了系統(tǒng)的組成關(guān)系及其結(jié)構(gòu),包括元素及其關(guān)系。系統(tǒng)的動(dòng)態(tài)模型則表示了系統(tǒng)對(duì)外表現(xiàn)的功能、性能、特性等實(shí)現(xiàn)過程。靜態(tài)模型偏重于描述系統(tǒng)的全貌,動(dòng)態(tài)模型則傾向于刻畫系統(tǒng)的細(xì)節(jié)。例如從用戶角度觀察的用例執(zhí)行過程,從開發(fā)者角度觀察的用例實(shí)現(xiàn)過程,等等。從系統(tǒng)內(nèi)部結(jié)構(gòu)看,類圖表示了系統(tǒng)組成類及其關(guān)系,每個(gè)類描述了需要的屬性和操作集合,但并沒有和系統(tǒng)的某個(gè)功能聯(lián)系起來。說到底,任何面向?qū)ο笙到y(tǒng)都是由若干個(gè)有關(guān)系的類組成的,每個(gè)功能都是由這些類的實(shí)例之間的交互完成的。無論是從用戶的角度描述某個(gè)功能的執(zhí)行過程,還是從開發(fā)者的角度來描述某個(gè)功能的實(shí)現(xiàn)過程,都需要使用更加過程化的方法來描述。UML提供了四種動(dòng)態(tài)模型的建模方法:順序圖(SequenceDiagram)、通信圖(CommunicationDiagram)、狀態(tài)圖(StateChartDiagram)和活動(dòng)圖(ActivityDiagram),其中順序圖和通信圖又稱為交互圖,下面分別予以介紹。 12.2交互圖

12.2.1概述

交互圖描述了系統(tǒng)功能執(zhí)行過程中,參與實(shí)現(xiàn)的對(duì)象之間的交互(消息和響應(yīng))情況,包括順序圖和通信圖。12.2.2順序圖

順序圖是UML的構(gòu)造元素之一,表示了對(duì)象的交互序列,從而實(shí)現(xiàn)用例場(chǎng)景的行為。順序圖是由多個(gè)對(duì)象及表示其生命周期的虛線,以及對(duì)象和對(duì)象之間的交互消息組成的。根據(jù)建模的角度不同,可以分為系統(tǒng)外部順序圖和內(nèi)部順序圖,前者是從使用者角度觀察的結(jié)果,后者是從開發(fā)者角度觀察的結(jié)果,分別用于需求分析階段和系統(tǒng)設(shè)計(jì)階段。圖12.1和圖12.2分別表示了用戶操作的過程和用戶操作對(duì)應(yīng)的系統(tǒng)對(duì)象操作。圖12.1用戶角度的功能操作順序圖圖12.2開發(fā)者角度的功能實(shí)現(xiàn)順序圖12.2.3順序圖中的對(duì)象

順序圖描述的是針對(duì)系統(tǒng)功能的一次執(zhí)行過程(情景)中,系統(tǒng)對(duì)象的交互情況。對(duì)象交互只能發(fā)生在對(duì)象實(shí)例之間,因此在順序圖中只能出現(xiàn)對(duì)象實(shí)例。圖中的對(duì)象命名有三種方式:

對(duì)象名

對(duì)象名:類名

:類名第一種情況只給出對(duì)象名(實(shí)際上是引用變量名),屬于分析的初步階段;第二種情況給出對(duì)象名及所屬的類名;第三種情況只給出類名,表示用此類創(chuàng)建的匿名對(duì)象,類似于new類()。一般在抽象分析中,對(duì)象名并不重要。每個(gè)對(duì)象下面跟一條虛線表示該對(duì)象的生命周期線,簡稱為生命線,對(duì)象接收和響應(yīng)的所有消息都在其生命線上進(jìn)行。生命線上的小矩形表示響應(yīng)該消息的時(shí)間間隔。12.2.5建立順序圖的方法和步驟

順序圖是比較精確的模型,它從對(duì)象交互過程的角度來描述和建模系統(tǒng)過程。應(yīng)該根據(jù)比較粗略的過程模型,如用例規(guī)格描述和用例實(shí)現(xiàn)規(guī)格描述進(jìn)行分析。首先,要確定參與用例執(zhí)行或者用例實(shí)現(xiàn)的對(duì)象,在順序圖中建立這些對(duì)象;然后根據(jù)用例描述的活動(dòng)流來順序描述對(duì)象的交互,標(biāo)識(shí)消息,檢查一致性和完整性;最后將對(duì)象對(duì)應(yīng)到系統(tǒng)的類,消息對(duì)應(yīng)到類的操作上,再次檢查一致性和完整性。下面以一個(gè)簡單繪圖系統(tǒng)中的繪圖用例的實(shí)現(xiàn)例子來說明建立順序圖的過程。

(1)選擇圖形并繪制用例的規(guī)格描述。

描述:在界面中選擇某種圖形,使用鼠標(biāo)繪制該圖形。

前提條件:無。

活動(dòng)流:

1.用戶在界面的下拉列表中選擇圖形種類,如矩形。

2.系統(tǒng)設(shè)置畫板狀態(tài)為繪制矩形狀態(tài)。

3.用戶按下鼠標(biāo)左鍵(不松手),確定矩形左上角位置。

4.系統(tǒng)記錄矩形左上角坐標(biāo)。

5.用戶拖動(dòng)鼠標(biāo)確定矩形的尺寸。

6.系統(tǒng)繪制矩形的形狀。

7.用戶松開鼠標(biāo)左鍵確定矩形。

8.系統(tǒng)保存該圖形并重新繪制,設(shè)置成選取狀態(tài)。后置條件:用戶繪制的圖形被臨時(shí)保存在內(nèi)存中。

擴(kuò)展用例:對(duì)所繪制圖形進(jìn)行填充、刪除、縮放。

(2)抽取用例描述中的對(duì)象。在上述用例規(guī)格描述中,出現(xiàn)的對(duì)象有用戶、界面、矩形等。界面分成兩部分,分別為控制面板和畫板。使用工具在設(shè)計(jì)環(huán)境中繪制這些對(duì)象。

(3)繪制交互過程。根據(jù)活動(dòng)流中的交互過程,繪制對(duì)象之間的消息線,并標(biāo)注消息名稱。繪制完成后檢查一致性和完整性。繪制的結(jié)果見圖12.1,這是從用戶操作的角度繪制的系統(tǒng)交互圖。

(4)對(duì)應(yīng)映射。將上述對(duì)象分別對(duì)應(yīng)到系統(tǒng)類,如控制面板對(duì)應(yīng)到DrawControl、畫板對(duì)應(yīng)到DrawPanel。將消息對(duì)應(yīng)到類的操作上,如用戶通過下拉列表選擇圖形消息;事件對(duì)應(yīng)到DrawControl的itemStateChanged方法上,如用戶按下鼠標(biāo)左鍵事件對(duì)應(yīng)到DrawPanel的mousePressed方法上。轉(zhuǎn)換完畢后,檢查結(jié)果。當(dāng)把用戶的外部操作轉(zhuǎn)換到系統(tǒng)的類操作上后,系統(tǒng)的動(dòng)態(tài)結(jié)構(gòu)也就設(shè)計(jì)好了,順序圖的目標(biāo)也就完成了。12.2.6通信圖(CommunicationDiagram)

通信圖用于描述對(duì)象如何通過交互或者通信來實(shí)現(xiàn)用例的功能。同順序圖一樣,通信圖被設(shè)計(jì)者用來定義和澄清對(duì)象在執(zhí)行用例事件流中的作用,是確定類職責(zé)和接口的首要信息來源。通信圖在UML1.1中被稱為協(xié)作圖(Collaboration),在UML2.0中被改為通信圖。兩者之間沒有本質(zhì)的區(qū)別,都表示對(duì)象交互(Interaction),通信的含義更強(qiáng)調(diào)對(duì)象之間的信息傳遞,協(xié)作或者交互則含義更籠統(tǒng),不太確切。12.2.7通信圖中的元素

在通信圖中,包含對(duì)象或者參與者的實(shí)例及它們之間的關(guān)系和消息。通信圖通過對(duì)象發(fā)送消息的方式描述了參與對(duì)象之間的交互,對(duì)用例的每種事件流情景都可以描述一個(gè)通信圖。圖12.3是一個(gè)分析階段的通信圖的例子,描述了用例中的各種對(duì)象之間的交互過程。通信圖和順序圖表達(dá)的信息基本相同,但沒有直觀地顯示消息的時(shí)間順序,通信圖中可以描述通信的內(nèi)容即數(shù)據(jù)令牌(Datatoken)。下面對(duì)通信圖中的元素分別作一說明。圖12.3通信圖舉例

(1)對(duì)象實(shí)例:與順序圖一樣,對(duì)象實(shí)例采用對(duì)象名:類名的形式來描述,可以給定對(duì)象名、類名或者兩者都給定,分別表示只指定對(duì)象實(shí)例引用名、某個(gè)類的匿名對(duì)象或者某個(gè)類創(chuàng)建的有引用名的對(duì)象。

(2)聯(lián)系(links):表示對(duì)象之間的關(guān)系,通過該聯(lián)系信息被發(fā)送。在通信圖中,聯(lián)系使用一個(gè)連接兩個(gè)對(duì)象的直線表示。這種聯(lián)系可以是關(guān)聯(lián)關(guān)系的實(shí)例,也可以是依賴關(guān)系的實(shí)例。

(3)消息:是對(duì)象之間的通信。在通信圖中,消息被表示成在聯(lián)系旁邊的、具有文字說明的箭頭,這表示聯(lián)系是傳輸信息的基礎(chǔ)。消息可以是沒有指派操作的臨時(shí)字符串,表示消息的含義,在后面的設(shè)計(jì)中可以將消息指派給目標(biāo)對(duì)象的操作,此時(shí)可使用該操作名代替消息字符串。12.2.8順序圖和通信圖的比較

順序圖和通信圖表達(dá)了同樣的信息,但表達(dá)方式和強(qiáng)調(diào)內(nèi)容不同。順序圖強(qiáng)調(diào)交互的過程性和順序性,容易理解和驗(yàn)證交互過程;通信圖強(qiáng)調(diào)對(duì)象之間的關(guān)系,容易理解指定對(duì)象的全部(所有)作用,有利于過程設(shè)計(jì)。另外,通信圖中,還可以表示對(duì)象之間的消息內(nèi)容,因此消息的語義更豐富。通信圖的格式特征使得它更適合于分析階段。順序圖則較適合于系統(tǒng)設(shè)計(jì)階段。要特別指出的是,通信圖適合于描述數(shù)量較少的對(duì)象之間的簡單交互。當(dāng)對(duì)象數(shù)目和交互過程復(fù)雜時(shí),通信圖就不容易理解了。另外,在通信圖中也很難表示有關(guān)時(shí)序、決策點(diǎn)或者其他非結(jié)構(gòu)化信息,而這些在順序圖中是非常容易表示出來的。尤其是在UML2.0的順序圖中,增加了選擇和循環(huán)結(jié)構(gòu)的表達(dá)方法,使得順序圖的功能更加強(qiáng)大。 12.3狀態(tài)圖

12.3.1概述

交互圖用于對(duì)協(xié)同工作的對(duì)象群體的行為進(jìn)行建模。狀態(tài)機(jī)則可以對(duì)單個(gè)對(duì)象的整個(gè)生命周期的行為進(jìn)行建模。一個(gè)狀態(tài)機(jī)是一個(gè)行為,說明對(duì)象在其生命周期中為響應(yīng)事件所經(jīng)歷的狀態(tài)序列及對(duì)這些事件的響應(yīng)。這里所說的“狀態(tài)”,是對(duì)象生命周期中的一個(gè)條件或者狀況,它必須滿足一些條件,執(zhí)行一些活動(dòng)或者等待事件。事件則是發(fā)生在某個(gè)時(shí)空位置上的有意義的事情的規(guī)格說明。在狀態(tài)機(jī)環(huán)境中,事件是能夠觸發(fā)狀態(tài)轉(zhuǎn)換的激勵(lì)的產(chǎn)生。遷移/轉(zhuǎn)換是狀態(tài)間的關(guān)系,表示對(duì)象在前一狀態(tài)執(zhí)行某些行為,當(dāng)特定的事件發(fā)生并且特定的條件滿足后進(jìn)入后一狀態(tài)。活動(dòng)(activity)是狀態(tài)機(jī)中所進(jìn)行的非原子操作。動(dòng)作(action)是導(dǎo)致模型狀態(tài)變化或者返回一個(gè)值的可執(zhí)行的計(jì)算,屬于原子操作。

狀態(tài)機(jī)用來建模模型元素的動(dòng)態(tài)特性。狀態(tài)圖是對(duì)狀態(tài)機(jī)規(guī)格的正規(guī)描述方法,具體地說,就是用來描述系統(tǒng)性能的事件驅(qū)動(dòng)方面。狀態(tài)機(jī)特別被用于定義模型元素的“狀態(tài)相關(guān)”特性,或者說描述模型元素根據(jù)所處狀態(tài)不同而發(fā)生變化的特性。這些模型元素一般是控制類。如對(duì)于訂單管理類,如果庫存不夠或者客戶信用度不夠,則不接受該訂單的創(chuàng)建。

如果模型元素的特性不隨元素狀態(tài)變化,則不需要用狀態(tài)機(jī)來描述,這些元素一般都是被動(dòng)類,其主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù),如學(xué)生類、訂單類等。需要強(qiáng)調(diào)的是,狀態(tài)機(jī)用來建模主動(dòng)類的特性,后者利用調(diào)用和通知事件來實(shí)現(xiàn)其操作(作為類狀態(tài)機(jī)的遷移)。狀態(tài)機(jī)包括由遷移(transition)連接的多個(gè)狀態(tài)。一個(gè)狀態(tài)是指對(duì)象執(zhí)行某些任務(wù)或者等待事件的一個(gè)條件或者狀況。遷移是對(duì)象的兩個(gè)狀態(tài)之間的關(guān)系,由一些事件觸發(fā)。例如,Java中的線程對(duì)象在整個(gè)生命周期中的狀態(tài)如圖12.4所示。圖12.4狀態(tài)圖舉例——線程對(duì)象的生命周期模型12.3.2狀態(tài)圖中的基本概念

1.狀態(tài)(state)

狀態(tài)是指對(duì)象在其生命周期中某個(gè)時(shí)刻時(shí)屬性的取值情況,或者稱為狀況、條件。狀態(tài)是對(duì)象的條件,使之能夠執(zhí)行某個(gè)任務(wù)或者接收事件。對(duì)象的狀態(tài)一般會(huì)持續(xù)一定的時(shí)間,在此時(shí)間內(nèi),對(duì)象滿足一定的條件,履行一定的任務(wù),響應(yīng)某些事件。狀態(tài)有如下屬性:

(1)名字:用來區(qū)別不同的狀態(tài)。一個(gè)狀態(tài)也可以是匿名的。

(2)進(jìn)入/退出動(dòng)作:進(jìn)入或者退出該狀態(tài)時(shí)要執(zhí)行的動(dòng)作,例如對(duì)象的構(gòu)造方法和析構(gòu)方法。進(jìn)入和退出動(dòng)作允許在進(jìn)入和退出該狀態(tài)時(shí),每次分別分派同一個(gè)動(dòng)作。進(jìn)入和退出動(dòng)作干凈利落,不需要顯式地在進(jìn)入和離開的轉(zhuǎn)換中去做。進(jìn)入和退出動(dòng)作可以沒有參數(shù)和監(jiān)護(hù)條件。模型元素狀態(tài)機(jī)頂層的進(jìn)入動(dòng)作可以帶參數(shù),代表該元素創(chuàng)建時(shí)機(jī)器接收的參數(shù)。

(3)內(nèi)部轉(zhuǎn)換:不會(huì)造成狀態(tài)變化的轉(zhuǎn)換。內(nèi)部轉(zhuǎn)換允許在狀態(tài)內(nèi)被處理,即不需要離開狀態(tài),因此避免觸發(fā)進(jìn)入或者退出動(dòng)作。內(nèi)部轉(zhuǎn)換可以有帶參數(shù)和監(jiān)護(hù)條件的事件,本質(zhì)上代表中斷處理。

(4)子狀態(tài):狀態(tài)的嵌套結(jié)構(gòu),包含匯交(順序活動(dòng))或者并發(fā)(并發(fā)活動(dòng))子狀態(tài)。

(5)延遲事件:一系列沒有在該狀態(tài)處理的事件,被對(duì)象推遲到另一個(gè)狀態(tài)排隊(duì)等待處理。延遲事件被推遲到一個(gè)活動(dòng)狀態(tài),其間事件不再延遲。當(dāng)該狀態(tài)活動(dòng)后,事件發(fā)生被觸發(fā),并且可能造成轉(zhuǎn)換,好像事件剛剛發(fā)生。延遲事件的實(shí)現(xiàn)需要有一個(gè)內(nèi)部事件隊(duì)列。如果一個(gè)事件發(fā)生了,但是被列為延期,該事件就進(jìn)入內(nèi)部事件隊(duì)列。當(dāng)對(duì)象進(jìn)入了不再延遲這些事件的狀態(tài)后,延期事件離開該隊(duì)列。

2.遷移(transition)

遷移是兩個(gè)狀態(tài)之間的關(guān)系,表示對(duì)象在第一個(gè)狀態(tài)中執(zhí)行一定的動(dòng)作,當(dāng)某個(gè)事件發(fā)生并且某個(gè)條件滿足時(shí)進(jìn)入第二個(gè)狀態(tài)。在這種狀態(tài)變化中,遷移稱為激活。在遷移激活之前,對(duì)象處于源狀態(tài);激活后,對(duì)象處于目標(biāo)狀態(tài)。遷移也有一些性質(zhì)。

(1)源狀態(tài)(SourceState):被遷移影響的狀態(tài)。如果對(duì)象處于源狀態(tài),且接收遷移的觸發(fā)事件并滿足監(jiān)護(hù)條件,則遷移被激活。

(2)事件觸發(fā)(Eventtrigger):遷移合法激活的事件(如果監(jiān)護(hù)條件滿足的話)。該事件被處于源狀態(tài)的對(duì)象接收。在狀態(tài)機(jī)中,事件是能夠觸發(fā)狀態(tài)遷移的激勵(lì)的發(fā)生。事件包括信號(hào)、調(diào)用、時(shí)間流逝、狀態(tài)變化等。信號(hào)和調(diào)用事件可以帶有參數(shù),參數(shù)值可以被轉(zhuǎn)換中的監(jiān)護(hù)條件和動(dòng)作所用。也可能有無觸發(fā)的遷移,這種遷移又可稱為完成遷移,當(dāng)源狀態(tài)完成其任務(wù)后,隱式地被遷移(完成也可以看成是一個(gè)事件,如線程執(zhí)行完成后自然變成刪除狀態(tài))。

(3)監(jiān)護(hù)條件(GuardCondition):通常是當(dāng)遷移被觸發(fā)或者事件被接收時(shí)進(jìn)行計(jì)算的邏輯表達(dá)式。如果值為true,則遷移被合法地激活;如果為false,則遷移不被激活,而且如果不存在其他遷移被該事件觸發(fā),則該事件丟失。

當(dāng)遷移的觸發(fā)事件發(fā)生時(shí),監(jiān)護(hù)條件被計(jì)算。對(duì)于同一個(gè)觸發(fā)事件,從同一源狀態(tài)出發(fā),只要監(jiān)護(hù)條件不相互重疊,可能會(huì)有多個(gè)遷移。當(dāng)事件發(fā)生時(shí),遷移的監(jiān)護(hù)條件只計(jì)算一次。該邏輯表達(dá)式可以引用對(duì)象的狀態(tài)和事件本身,例如,booleanexp(Objectobj,Evente(para))。

(4)動(dòng)作(action):可執(zhí)行的原子計(jì)算,直接作用于擁有狀態(tài)機(jī)的對(duì)象,間接作用于對(duì)該對(duì)象可見的其他對(duì)象。所謂原子計(jì)算,是指不能被事件中斷,必須執(zhí)行到完成。這與任務(wù)不同,任務(wù)可以被其他事件中斷。動(dòng)作包括調(diào)用、創(chuàng)建或者破壞對(duì)象,向其他對(duì)象發(fā)信號(hào)等。

(5)目標(biāo)狀態(tài):遷移完成后的對(duì)象狀態(tài)。一個(gè)遷移可能有多個(gè)源狀態(tài),代表來自多個(gè)并發(fā)狀態(tài)的匯合,也可以有多個(gè)目標(biāo)狀態(tài),代表通向多個(gè)狀態(tài)的分叉。12.3.3狀態(tài)圖的工具支持

在RationalRose中,提供了狀態(tài)圖工具,在其中可以繪制初態(tài)/終態(tài)/狀態(tài)/遷移/內(nèi)部遷移。對(duì)于狀態(tài)來說,可以定義其動(dòng)作,包括進(jìn)入、退出、執(zhí)行、事件操作;對(duì)于遷移來說,可以定義其事件名稱、參數(shù)、監(jiān)護(hù)條件、動(dòng)作、信號(hào)等。狀態(tài)中可以嵌套狀態(tài),表示大狀態(tài)下的子狀態(tài)。圖12.5是描述一個(gè)機(jī)器人運(yùn)動(dòng)的狀態(tài)圖,是一個(gè)嵌套的狀態(tài)圖。圖12.5嵌套狀態(tài)圖 12.4活動(dòng)圖

12.4.1概述

活動(dòng)圖是五種UML動(dòng)態(tài)模型圖之一。本質(zhì)上是流程圖,表示活動(dòng)到活動(dòng)的控制流。但不像傳統(tǒng)的流程圖,活動(dòng)圖不僅可以表示控制分支,也可以表示并發(fā)。

活動(dòng)圖類似于流程圖,可以表示數(shù)據(jù)流(DF),也可以表示控制流(CF)。在UML中,活動(dòng)圖一般用來描述用例的工作流,也可以用來描述業(yè)務(wù)工作流(屬于業(yè)務(wù)用例),還可以用來描述操作的流程。

用例的事件流描述了為提供給用戶有價(jià)值的結(jié)果,用戶和系統(tǒng)需要做的事情,包括一系列任務(wù)或者操作。事件流包含基本流和一個(gè)或多個(gè)可選流,用例事件流可以使用活動(dòng)圖來描述。

12.4.2活動(dòng)圖中的基本概念

活動(dòng)/狀態(tài)/動(dòng)作(Activity/State/Action):代表任務(wù)的執(zhí)行或者事件流的步驟,本身可以是不能分解的原子操作,例如方法調(diào)用、發(fā)出信號(hào)等,也可以是多個(gè)動(dòng)作的組合。

控制流/轉(zhuǎn)換(ControlFlow/Transition):表示后續(xù)的活動(dòng)狀態(tài)。這種類型的轉(zhuǎn)換有時(shí)稱為完成轉(zhuǎn)換,區(qū)別于不需要顯式地觸發(fā)事件的轉(zhuǎn)換,它被活動(dòng)狀態(tài)表示的任務(wù)觸發(fā)。

決策(Decision):定義一組監(jiān)護(hù)條件。這些監(jiān)護(hù)條件控制在任務(wù)完成時(shí)的下一個(gè)轉(zhuǎn)換(或者一組可選的轉(zhuǎn)換)。決策和監(jiān)護(hù)條件允許表現(xiàn)用例事件流中可選的執(zhí)行線索。

泳道(Swimlane):是活動(dòng)圖中的條形區(qū)域,可以將活動(dòng)按照某種原則分組,如業(yè)務(wù)模型中的部門,分布式系統(tǒng)的多個(gè)節(jié)點(diǎn)等。泳道本質(zhì)上是一個(gè)對(duì)象實(shí)例,可以指定其所屬類,如圖12.6所示。圖12.6帶有泳道的活動(dòng)圖對(duì)象流(ObjectFlow):在活動(dòng)圖的控制流中可以涉及到關(guān)聯(lián)的對(duì)象。對(duì)象可以作為動(dòng)作的輸出,也可以作為其他動(dòng)作的輸入。對(duì)象也是連接兩個(gè)動(dòng)作的聯(lián)系,類似于數(shù)據(jù)流。對(duì)象流本身也可以看作是數(shù)據(jù)流。按照這種觀點(diǎn),活動(dòng)圖在某種程度上類似于數(shù)據(jù)流圖,只不過在活動(dòng)圖中,對(duì)象不僅可以標(biāo)識(shí)其實(shí)例名稱,還可以標(biāo)識(shí)所屬類及其所處狀態(tài),如圖12.7所示。圖12.7帶有輸出對(duì)象的活動(dòng)圖同步條(SynchronziedBar):用來顯示并行子工作流和用例事件流中并發(fā)的線程。

如上所述,在面向?qū)ο蟮姆治鲈O(shè)計(jì)過程中,活動(dòng)圖存在著從簡單到詳細(xì)的進(jìn)化過程。從最初的簡單流程圖細(xì)化到細(xì)分職責(zé)的泳道圖;從單純的動(dòng)作細(xì)化到輸出對(duì)象;從簡單的動(dòng)作對(duì)象到具有類屬和狀態(tài)的對(duì)象;逐漸一步步地將過程清晰地展現(xiàn)在用戶和開發(fā)者面前。尤其是在描述類屬的對(duì)象流狀態(tài)時(shí),距離系統(tǒng)最終狀態(tài)越來越近。因?yàn)閷?duì)象一般都可以抽象成為數(shù)據(jù),進(jìn)而形成數(shù)據(jù)模型。這是從流程到系統(tǒng)的一個(gè)進(jìn)化過程,也是流程驅(qū)動(dòng)(由流程派生/推導(dǎo)數(shù)據(jù)和處理)的一種開發(fā)過程。但從本質(zhì)上來說,流程圖是面向過程的,以處理/活動(dòng)/動(dòng)作為核心和主線的,對(duì)象/數(shù)據(jù)只是其輸出物,該圖并沒有反映出以對(duì)象為中心的交互過程。對(duì)象交互過程在順序圖和通信圖中得到了很好的反映。過程同樣是現(xiàn)實(shí)世界物質(zhì)的屬性之一,面向過程則是從動(dòng)態(tài)處理的、發(fā)展變化的觀點(diǎn)來觀察世界的思想和方法,這和事物的發(fā)展過程、人的思維過程相一致。因此活動(dòng)圖容易理解,受到人們關(guān)注,可以作為面向?qū)ο蠓椒ɑ蛘叱槿?duì)象的一個(gè)開始。對(duì)象交互則更精確地表示了面向?qū)ο笙到y(tǒng)的交互過程。活動(dòng)圖中的活動(dòng)/動(dòng)作被對(duì)應(yīng)到某些對(duì)象的操作上去,這些對(duì)象有可能并沒有完全出現(xiàn)在活動(dòng)圖中,在活動(dòng)圖中不能設(shè)計(jì)出所有的對(duì)象,只能從某個(gè)角度(業(yè)務(wù)或者功能)觀察對(duì)象和處理的一致性?;顒?dòng)圖可以用于建立傳統(tǒng)面向?qū)ο筌浖こ倘竽P椭械墓δ苣P?,相?dāng)于高層數(shù)據(jù)流圖?;顒?dòng)圖是特殊的狀態(tài)圖,所有或者大部分狀態(tài)都是活動(dòng)狀態(tài),所有或者大部分遷移都被完成動(dòng)作觸發(fā)。12.4.3活動(dòng)圖的用途

結(jié)構(gòu)和過程都是客觀事物的屬性。類圖主要用于建模結(jié)構(gòu),活動(dòng)圖主要用于建模過程,前者是靜態(tài)的,后者則是動(dòng)態(tài)的?,F(xiàn)實(shí)世界中有很多過程需要研究和描述,尤其是作為信息系統(tǒng)的背景或原型的系統(tǒng),也就是業(yè)務(wù)系統(tǒng)。信息系統(tǒng)也有過程特性,但它是區(qū)別于現(xiàn)實(shí)世界過程的。過程包括復(fù)雜的宏觀社會(huì)過程,如政府過程、企業(yè)過程;簡單的微觀操作處理過程,如計(jì)算工資的過程;還有信息系統(tǒng)的操作過程以及實(shí)現(xiàn)過程等?;顒?dòng)圖適合于對(duì)這些宏觀及微觀的業(yè)務(wù)過程和系統(tǒng)過程進(jìn)行建模。需要注意的是,過程和對(duì)象是不可分的,對(duì)象包括多個(gè)過程,過程也包括若干對(duì)象。交互圖是以對(duì)象為中心對(duì)過程進(jìn)行描述的,通過對(duì)象的交互展現(xiàn)過程,稱為對(duì)象驅(qū)動(dòng)?;顒?dòng)圖則是以過程活動(dòng)為中心進(jìn)行描述的,其中對(duì)象只是作為輔助元素,稱為過程驅(qū)動(dòng)。歸納起來看,活動(dòng)圖的主要用途為:

(1)用于業(yè)務(wù)過程的建模。業(yè)務(wù)過程就是現(xiàn)實(shí)世界中實(shí)際存在的過程。在此種過程的活動(dòng)圖描述中,所有的泳道、活動(dòng)、對(duì)象都是現(xiàn)實(shí)存在的,用此種方法建立的業(yè)務(wù)過程模型是業(yè)務(wù)模型中的一部分。例如企業(yè)的采購過程,其中的泳道用來表示采購過程中相關(guān)的部門,如請(qǐng)購部門、采購部門、庫房、財(cái)務(wù)部門等;活動(dòng)包括日常的企業(yè)經(jīng)營行為,如詢價(jià)、報(bào)價(jià)等;活動(dòng)產(chǎn)生的對(duì)象包括請(qǐng)購單、訂單等。

(2)用于系統(tǒng)過程的建模。系統(tǒng)過程就是系統(tǒng)的使用過程、開發(fā)過程和執(zhí)行過程。在使用過程中,有些活動(dòng)是參與者的活動(dòng),有些則是系統(tǒng)的活動(dòng)。例如最簡單的桌面系統(tǒng)就是用戶和系統(tǒng)進(jìn)行交互。分布式系統(tǒng)則較復(fù)雜,可能會(huì)有多個(gè)機(jī)器節(jié)點(diǎn)并發(fā)地參與系統(tǒng)過程。此種方法利于對(duì)復(fù)雜的分布式系統(tǒng)過程進(jìn)行建模,包括并發(fā)活動(dòng)。例如,基于C/S模式的網(wǎng)絡(luò)協(xié)作系統(tǒng)過程的建模中,泳道用來表示參與協(xié)作的服務(wù)器和多個(gè)客戶機(jī);活動(dòng)包括協(xié)作活動(dòng),如發(fā)出協(xié)作申請(qǐng)、演示、討論、投票等;活動(dòng)產(chǎn)生的對(duì)象包括協(xié)作的結(jié)果,如文檔、圖形、模型等。

(3)用于操作過程的建模。一般來說,面向?qū)ο蠹夹g(shù)中的操作都屬于某個(gè)對(duì)象,操作是對(duì)象的行為或者提供的服務(wù),操作可以改變對(duì)象狀態(tài),屬于動(dòng)態(tài)的特性。操作相對(duì)于活動(dòng)來說,是微觀的,代表有限的機(jī)器指令集合?;顒?dòng)圖用于操作過程建模,作用類似于算法流程圖。12.4.4活動(dòng)圖的工具支持

在RationalRose中,活動(dòng)圖可以建立在一個(gè)包下面,表示包范疇(如組織結(jié)構(gòu))內(nèi)的一個(gè)工作流;可以建立在任何一個(gè)用例下面,表示用例的事件流或者過程流;可以建立在類下面,表示該類對(duì)象的活動(dòng)流或者狀態(tài)機(jī);也可以建立在操作下面,表示該操作的處理流程等。在活動(dòng)圖中,可以繪制活動(dòng)、狀態(tài)、轉(zhuǎn)換、決策、泳道、同步條、對(duì)象和對(duì)象流等?;顒?dòng)也可以表示動(dòng)作,轉(zhuǎn)換也可以表示監(jiān)護(hù)條件、參數(shù)等。 12.5UML2.0的活動(dòng)圖

在UML2.0中,活動(dòng)圖中的結(jié)點(diǎn)不再稱做“活動(dòng)(Activity)”,而是稱做“動(dòng)作(Actions)”?!盎顒?dòng)”是更高一級(jí)的結(jié)構(gòu),包括一系列的“動(dòng)作”。從圖12.8中可以看到,動(dòng)作“選擇課程”的圓角矩形框里面有個(gè)“靶型符號(hào)(RakeSymbol)”,它代表這個(gè)動(dòng)作由一個(gè)子活動(dòng)完

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論