華南理工大學(xué)UML-10活動(dòng)圖_第1頁
華南理工大學(xué)UML-10活動(dòng)圖_第2頁
華南理工大學(xué)UML-10活動(dòng)圖_第3頁
華南理工大學(xué)UML-10活動(dòng)圖_第4頁
華南理工大學(xué)UML-10活動(dòng)圖_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、軟件需求分析與建模-活動(dòng)圖主講:( )2022年8月27日1I 引 言狀態(tài)機(jī)是UML為軟件對象的動(dòng)態(tài)行為進(jìn)行建模的手段之一。它描述軟件對象在處理外部發(fā)生的事件時(shí)產(chǎn)生的動(dòng)作和由此導(dǎo)致的軟件對象的狀態(tài)的變化,并以此刻畫軟件對象的動(dòng)態(tài)行為。軟件對象的動(dòng)作被附加在狀態(tài)機(jī)的變遷或狀態(tài)上,如果被建模的對象是反應(yīng)型對象,那么此對象的動(dòng)作的執(zhí)行是由對象外部發(fā)生的事件觸發(fā)的。對反應(yīng)型對象的這種動(dòng)態(tài)行為的建模,在UML里,是用狀態(tài)機(jī)圖來表達(dá)的。軟件對象的動(dòng)態(tài)行為并不都是事件驅(qū)動(dòng)的。例如,在使用特定的對象來實(shí)現(xiàn)特定的復(fù)雜算法時(shí),此算法的動(dòng)態(tài)行為既不是由多個(gè)對象的協(xié)同配合完成的,也不是由外部事件來驅(qū)動(dòng)的。這類對象被稱

2、為是:非反應(yīng)型對象當(dāng)非反應(yīng)型對象的動(dòng)態(tài)行為被執(zhí)行時(shí),動(dòng)態(tài)行為的一系列的動(dòng)作按照特定的控制邏輯(算法)順序執(zhí)行?;顒?dòng)圖概述/1活動(dòng)圖是一種特殊形式的狀態(tài)機(jī),用于對計(jì)算流程和工作流程建模.活動(dòng)圖中的狀態(tài)表示計(jì)算過程中所處的各種狀態(tài),而不是普通對象的狀態(tài)通常,活動(dòng)圖假定在整個(gè)計(jì)算處理過程中沒有外部事件引起的中斷.否則,普通的狀態(tài)機(jī)更適于描述這種情況活動(dòng)圖概述/2與交互圖相比活動(dòng)圖著重表現(xiàn)活動(dòng)的控制流,描述在對象之間傳遞的操作交互圖著重表現(xiàn)的是對象到對象的控制流,描述在對象之間傳遞的消息活動(dòng)圖與程序流程圖的差別傳統(tǒng)的程序流程圖描述的是處理的過程,主要控制結(jié)構(gòu)有順序、分支和循環(huán),各個(gè)處理之間有嚴(yán)格的順序

3、和時(shí)間關(guān)系活動(dòng)圖描述的是對象(或模型元素)的活動(dòng)的順序關(guān)系所遵循的規(guī)則,它著重表現(xiàn)的是系統(tǒng)的行為,而不是系統(tǒng)的處理過程,在活動(dòng)圖中也沒有通常的循環(huán)控制結(jié)構(gòu)?;顒?dòng)圖能夠表現(xiàn)并發(fā)情形。TPSFAB活動(dòng)圖在UML里, 用來為非反應(yīng)型對象建模的狀態(tài)機(jī)被稱為活動(dòng)圖(activity graph)。從右邊可以看出,活動(dòng)狀態(tài)機(jī)的動(dòng)作是自動(dòng)執(zhí)行的狀態(tài)機(jī)內(nèi)不存在對外部事件的描述控制在動(dòng)作之間的轉(zhuǎn)換不由事件觸發(fā),而是由完成變遷自動(dòng)觸發(fā)。這也是活動(dòng)圖和狀態(tài)機(jī)圖的不同之處,狀態(tài)機(jī)圖強(qiáng)調(diào)的是在外部事件的驅(qū)動(dòng)下,軟件對象的控制在不同的狀態(tài)之間的流動(dòng);而活動(dòng)圖強(qiáng)調(diào)的是在完成變遷引導(dǎo)下,對象的控制在活動(dòng)之間的流動(dòng)。 活動(dòng)狀態(tài)

4、遷移不需要事件觸發(fā),活動(dòng)執(zhí)行完畢可以直接進(jìn)入下一個(gè)活動(dòng)狀態(tài); 活動(dòng)置于責(zé)任區(qū)(泳道)中,責(zé)任區(qū)將活動(dòng)按責(zé)任目標(biāo)和組織歸屬的原則分類。UML中另一個(gè)表現(xiàn)軟件系統(tǒng)動(dòng)態(tài)行為的模型圖是交互圖?;顒?dòng)圖和交互圖也有所不同。交互圖強(qiáng)調(diào)的是軟件對象之間外部職責(zé)的劃分及合作;活動(dòng)圖雖然也存在著對象之間的合作,但它強(qiáng)調(diào)的是對象內(nèi)部的控制邏輯和控制的流動(dòng)。由此可見,狀態(tài)機(jī)可以通過兩種模型圖表現(xiàn):第一、狀態(tài)機(jī)圖:它強(qiáng)調(diào)的是控制在狀態(tài)之間的流動(dòng)。第二、活動(dòng)圖:它強(qiáng)調(diào)的是控制在不同活動(dòng)之間的流動(dòng)。它們表現(xiàn)的都是軟件系統(tǒng)的動(dòng)態(tài)行為。一個(gè)簡單的出庫單發(fā)放活動(dòng)圖 檢查合同、核對付款單并發(fā)放出庫單的活動(dòng)圖 3、活動(dòng)圖的內(nèi)容活動(dòng)圖

5、用圖形化的方式展現(xiàn)了一個(gè)為非反應(yīng)型對象的動(dòng)態(tài)行為建模的活動(dòng)狀態(tài)機(jī)活動(dòng)狀態(tài)機(jī)是狀態(tài)機(jī)的一個(gè)特殊形式,其中的變遷是不帶觸發(fā)事件的無觸發(fā)變遷,其中的狀態(tài)只能是動(dòng)作狀態(tài)和活動(dòng)狀態(tài)?;顒?dòng)圖主要包括三個(gè)方面的內(nèi)容:動(dòng)作狀態(tài)活動(dòng)狀態(tài)無觸發(fā)變遷(1)、動(dòng)作狀態(tài)軟件對象的動(dòng)態(tài)行為是由一個(gè)個(gè)的動(dòng)作構(gòu)成的。動(dòng)作是狀態(tài)機(jī)內(nèi)原子的計(jì)算的執(zhí)行。所謂原子,指的是構(gòu)成動(dòng)態(tài)行為的最小單位,動(dòng)作的執(zhí)行是不可打斷的,動(dòng)作的執(zhí)行時(shí)間是可以忽略的。在活動(dòng)狀態(tài)機(jī)中,對動(dòng)態(tài)行為的建模是通過附加在狀態(tài)中的動(dòng)作實(shí)現(xiàn)的。UML使用專門的圖形符號代表動(dòng)作狀態(tài)和活動(dòng)狀態(tài),此圖形符號是一個(gè)上下為平行直邊,兩側(cè)用圓弧連接的圖形框。對于動(dòng)作狀態(tài),其動(dòng)作就

6、寫在圖形框內(nèi)。UML對動(dòng)作沒有規(guī)定嚴(yán)格的語法,因此可以用一文本串描述動(dòng)作,也可以用任何一種程序設(shè)計(jì)語言的語句的語法書寫動(dòng)作文本串。(2)、活動(dòng)狀態(tài)在UML里,活動(dòng)是軟件對象非原子的計(jì)算的執(zhí)行?;顒?dòng)可以被進(jìn)一步地分解為一系列的動(dòng)作。在活動(dòng)狀態(tài)機(jī)里,如果全部用動(dòng)作狀態(tài)來描述對象的動(dòng)態(tài)行為,那么產(chǎn)生的活動(dòng)圖將由許多十分細(xì)小的動(dòng)作狀態(tài)組成,使得活動(dòng)圖過于繁雜。在大多數(shù)的情況下,軟件對象的動(dòng)態(tài)行為可以用一系列的子過程來表達(dá),而不需要細(xì)化至每個(gè)原子的計(jì)算。(3)、無觸發(fā)變遷無觸發(fā)變遷又稱為完成變遷。它在活動(dòng)狀態(tài)機(jī)里用于為動(dòng)作的自動(dòng)執(zhí)行建模。在UML里,完成變遷是不包含觸發(fā)事件的變遷。如果無觸發(fā)變遷的起始狀

7、態(tài)是一個(gè)簡單狀態(tài)(即不包含子狀態(tài)的狀態(tài))那么此變遷在起始狀態(tài)的入口動(dòng)作和狀態(tài)活動(dòng)執(zhí)行完畢之后被激發(fā);如果起始狀態(tài)是一個(gè)復(fù)合狀態(tài),那么此變遷在復(fù)合狀態(tài)的內(nèi)嵌狀態(tài)機(jī)都到達(dá)結(jié)束狀態(tài)后被激發(fā)。 之后,源狀態(tài)的出口動(dòng)作被執(zhí)行;狀態(tài)機(jī)轉(zhuǎn)入變遷的目標(biāo)狀態(tài)。4、分支條件判斷是最基本的程序結(jié)構(gòu),它代表軟件對象在不同的判斷結(jié)果的條件下,所執(zhí)行的不同動(dòng)作。作為為非反應(yīng)型對象的動(dòng)態(tài)行為進(jìn)行建模的建模手段,活動(dòng)圖提供了描述這種程序結(jié)構(gòu)的建模元素,這就是分支(branch)。分支是狀態(tài)機(jī)的一個(gè)建模元素,它代表由一個(gè)觸發(fā)事件在不同的觸發(fā)條件下激發(fā)的多個(gè)變遷。分支在活動(dòng)圖上用一個(gè)菱形表示,它包括at least 一個(gè)輸入變遷

8、和多個(gè)輸出變遷,其中的輸出變遷都是帶觸發(fā)條件的完成變遷, 觸發(fā)條件的書寫格式可以是一個(gè)布爾表達(dá)式。分支的輸出變遷可以多于兩個(gè),當(dāng)分支的輸入變遷被激發(fā)后,分支的各輸出變遷的觸發(fā)條件必須有一個(gè)求值為真,否則狀態(tài)機(jī)的執(zhí)行將被凍結(jié)。為了避免狀態(tài)機(jī)被凍結(jié)的情形出現(xiàn) 圖 25、循環(huán)在活動(dòng)圖里引入了分支以后,可以以它為基礎(chǔ)描述其它的程序結(jié)構(gòu)。例如,下面的c語言的循環(huán)語句,就可以用圖3的活動(dòng)圖表示。for(i=1;i10;i+)Action(i);在圖3中,循環(huán)的結(jié)束條件是用一個(gè)分支表示的。從圖3可以看到,這里的分支帶有兩個(gè)轉(zhuǎn)入變遷。圖 3 循環(huán)在UML的活動(dòng)圖里,菱形符號不但可以有兩個(gè)或多個(gè)轉(zhuǎn)出變遷,也可以

9、有兩個(gè)或多個(gè)轉(zhuǎn)入變遷。帶有兩個(gè)或多個(gè)轉(zhuǎn)入變遷的菱形符號又稱為合并(merge)。6、分解和匯合在狀態(tài)機(jī)圖中,并發(fā)的控制流的建模使用:并發(fā)子狀態(tài)。在活動(dòng)圖中,使用的表示方法是:分解(fork)和匯合(join)在UML里,分解表示一個(gè)控制流被分解為兩個(gè)或多個(gè)并發(fā)執(zhí)行的控制流。匯合代表兩個(gè)或多個(gè)控制流的同步。只有當(dāng)所有的控制流都到達(dá)匯合點(diǎn)之后,控制才繼續(xù)向下流動(dòng)。在分解和匯合的表示使用的是:同步條(synchronization bar)。同步條是一個(gè)粗的水平線。當(dāng)同步條表示分解時(shí),可以有:一個(gè)轉(zhuǎn)入變遷,兩個(gè)或多個(gè)轉(zhuǎn)出變遷當(dāng)同步條用來表示匯合時(shí), 它可以有兩個(gè)或多個(gè)轉(zhuǎn)入變遷,一個(gè)轉(zhuǎn)出變遷。其中的轉(zhuǎn)

10、入變遷代表同步之前的多個(gè)并發(fā)控制流圖 分解和匯合Prepare SpeechGestureDecompressSync MouthPlay Sound分解(Fork)匯合(Join)7、泳道活動(dòng)圖可以用來表達(dá)軟件對象的比較復(fù)雜的動(dòng)態(tài)行為。這些動(dòng)態(tài)行為可能是模擬現(xiàn)實(shí)世界的某個(gè)機(jī)構(gòu)的各業(yè)務(wù)部門的運(yùn)作情況;也可能是一個(gè)復(fù)雜的算法,這算法可能需要由軟件系統(tǒng)中的多個(gè)協(xié)同共同實(shí)現(xiàn)。(協(xié)同指的是多個(gè)類的對象共同工作,以提供單個(gè)類的的對象單獨(dú)工作不能提供的動(dòng)態(tài)行為)在UML里,對在語義上互相關(guān)聯(lián)的活動(dòng)狀態(tài)的子集的劃分,是使用泳道(swim lane)實(shí)現(xiàn)的。泳道是活動(dòng)圖里對其中的活動(dòng)按照其職責(zé)上的關(guān)聯(lián)進(jìn)行的劃

11、分。泳道在活動(dòng)圖內(nèi)是一系列的垂直的隔斷,這也是泳道這個(gè)名字的由來。在活動(dòng)圖里,泳道區(qū)分了其中的活動(dòng)的不同職責(zé)。在有泳道的活動(dòng)圖中,每一活動(dòng)都屬于且只屬于一個(gè)泳道。泳道之間可以有變遷的傳遞。泳道從語義上可以理解為是一個(gè)模型包。泳道可以有名字,以區(qū)分不同狀態(tài)集合的職責(zé)。泳道可以用在為復(fù)雜的算法進(jìn)行建模的活動(dòng)圖上。這時(shí),一個(gè)泳道對應(yīng)于一個(gè)協(xié)同,其中的活動(dòng)可以由一個(gè)或多各互相連接的類的對象實(shí)現(xiàn)。帶有泳道的活動(dòng)圖也可以在軟件開發(fā)的需求分析階段用來為業(yè)務(wù)部門的業(yè)務(wù)流程(business model)的建模上,這時(shí),泳道可以代表業(yè)務(wù)流程中的一個(gè)業(yè)務(wù)部門。顧客 銷售員 倉庫圖58 對象流活動(dòng)圖中可以表示對象在

12、不同活動(dòng)中的流動(dòng),活動(dòng)可以輸入對象,也可輸出對象。對象流用虛箭頭表示一個(gè)活動(dòng)可以有多個(gè)輸入,有多個(gè)輸出9 活動(dòng)分解/1某一活動(dòng)狀態(tài)可以指向另外一個(gè)活動(dòng)圖, 它展示了活動(dòng)狀態(tài)的內(nèi)部結(jié)構(gòu)。也就是說,我們有一個(gè)嵌套的活動(dòng)圖。你可以把子圖放在活動(dòng)圖中或者讓某一個(gè)活動(dòng)狀態(tài)指向另一張圖。9 活動(dòng)分解/2如果想在一張圖中展示所有的工作流的細(xì)節(jié),我們可以把子圖放在一個(gè)活動(dòng)狀態(tài)中。但是,如果在工作流中,有很多層次的子圖,圖讀起來就比較困難為了簡化工作流圖,你可以將子圖放在單獨(dú)的圖上,然后將活動(dòng)狀態(tài)指向描述細(xì)節(jié)的子圖Alternatively, put the subgraph in a separate dia

13、gram and let the activity state refer to it8、活動(dòng)圖的作用活動(dòng)圖作為UML為軟件對象的動(dòng)態(tài)行為建模的一種手段,其側(cè)重點(diǎn)在于描述控制在活動(dòng)之間的流動(dòng),因此,它也可以看成是一種流程圖。作為流程圖,它主要有兩種用途,第一是為業(yè)務(wù)流程建模;第二是為對象的特定操作建模。當(dāng)活動(dòng)圖用來為業(yè)務(wù)流程建模時(shí),它所起的作用主要是:為軟件系統(tǒng)的需求分析提供一種視化、交流和建檔的手段。這時(shí),可以利用泳道代表不同的業(yè)務(wù)部門,用活動(dòng)代表不同的業(yè)務(wù)步驟。在轉(zhuǎn)入系統(tǒng)建造階段時(shí),根據(jù)泳道的劃分,確立相應(yīng)的協(xié)同,并可以用相應(yīng)的交互和交互圖來對軟件的動(dòng)態(tài)行為進(jìn)行細(xì)化,并為軟件的邏輯設(shè)計(jì)打下

14、基礎(chǔ)。作為流程圖,活動(dòng)圖還可以為對象的特定操作執(zhí)行流程進(jìn)行建模。這時(shí),活動(dòng)圖是軟件動(dòng)態(tài)行為的較深層的抽象,用于對操作的動(dòng)態(tài)行為的說明、視化、建檔和建造??梢愿鶕?jù)活動(dòng)圖的定義,對對象的操作的進(jìn)行程序編碼。從這個(gè)意義上說,活動(dòng)圖也可以看作對交互圖中描述的交互的細(xì)化。交互圖定義對象之間的配合,活動(dòng)圖定義這些配合的實(shí)現(xiàn)。 1. 描述工作流 2. 描述工程組織過程 3. 描述算法流程 實(shí)例1:找飲料的活動(dòng)圖實(shí)例2:銷售處理過程的活動(dòng)圖活動(dòng)圖與狀態(tài)圖比較總結(jié).相同點(diǎn)描述圖符基本一樣可以描述一個(gè)系統(tǒng)或在生存期間的狀態(tài)或行為??梢悦枋龆噙M(jìn)程操作中的同步或異步操作的并發(fā)行為、不同點(diǎn)觸發(fā)遷移的機(jī)制不同描述多個(gè)對象

15、共同完成一個(gè)操作的機(jī)制不同UML 2.0中的新概念1.對象的節(jié)點(diǎn):明確一個(gè)活動(dòng)的輸入和輸出.也稱為活動(dòng)參數(shù)節(jié)點(diǎn):定義了了活動(dòng)輸入和輸出的對象節(jié)點(diǎn)。 對象節(jié)點(diǎn)代表了一個(gè)對象值,它存在于計(jì)算過程中的某個(gè)時(shí)刻。對象可以是一個(gè)活動(dòng)節(jié)點(diǎn)的輸出,并作為其他活動(dòng)節(jié)點(diǎn)的輸入?;顒?dòng)圖中的一個(gè)對象節(jié)點(diǎn),它從多個(gè)對象節(jié)點(diǎn)接收輸入,或者為多個(gè)對象節(jié)點(diǎn)產(chǎn)生輸出,或者兩者。從中央緩沖節(jié)點(diǎn)觸發(fā)的流不直接與動(dòng)作相連。中央緩沖節(jié)點(diǎn)對傳統(tǒng)的緩沖建模,它可以保存多個(gè)來源的值以及向多個(gè)目的地發(fā)送值。 交互概覽圖一個(gè)交互概覽圖是活動(dòng)圖的一種形式,它的節(jié)點(diǎn)代表交互圖。交互圖包含順序圖,通信圖,交互概覽圖和時(shí)間圖。 大多數(shù)交互概覽圖標(biāo)注與

16、活動(dòng)圖一樣。例如:起始,結(jié)束,判斷,合并,分叉和結(jié)合節(jié)點(diǎn)是完全相同。并且,交互概覽圖介紹了兩種新的元素:交互發(fā)生和交互元素。(1)交互發(fā)生交互發(fā)生引用現(xiàn)有的交互圖。顯示為一個(gè)引用框,左上角顯示 ref 。被引用的圖名顯示在框的中央(2)交互元素交互元素與交互發(fā)生相似之處在于都是在一個(gè)矩形框中顯示一個(gè)現(xiàn)有的交互圖。不同之處在內(nèi)部顯示參考圖的內(nèi)容不同。 所有的活動(dòng)圖控件,都可以相同地被使用于交互概覽圖,如:分叉,結(jié)合,合并等等。它把控制邏輯放入較低一級的圖中。下面的例子就說明了一個(gè)典型的銷售過程。子過程是從交互發(fā)生抽象而來。重要的知識點(diǎn) 狀態(tài)圖1 什么是狀態(tài)圖2 狀態(tài)圖的要素3 狀態(tài)圖的作用 活動(dòng)圖1 什么是活動(dòng)圖2 活動(dòng)圖的要素3 活動(dòng)圖的用途4狀態(tài)圖和活動(dòng)圖的比較活動(dòng)圖建模步驟(1)在采集的原始需求中選擇重點(diǎn)流程;(2)首先要確定要設(shè)計(jì)的活動(dòng)圖是針對

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論