新聞中心
上一節(jié)我們介紹了類圖和對(duì)象圖主要用于靜態(tài)建模,本節(jié)我們將描述UML動(dòng)態(tài)建模機(jī)制。在UML動(dòng)態(tài)建模機(jī)制中,以消息來(lái)完成對(duì)象之間的交互,用狀態(tài)圖、順序圖、協(xié)作圖和活動(dòng)圖來(lái)描述系統(tǒng)的行為。

UML動(dòng)態(tài)建模
在動(dòng)態(tài)建模機(jī)制中,以消息來(lái)完成對(duì)象之間的交互,用狀態(tài)圖、順序圖、協(xié)作圖和活動(dòng)圖來(lái)描述系統(tǒng)的行為。
4.1消息
在面向?qū)ο箢I(lǐng)域,兩個(gè)對(duì)象的交互是通過消息的發(fā)送和接收來(lái)完成的。消息分為簡(jiǎn)單消息、同步消息和異步消息:
(1)簡(jiǎn)單消息:只是表示控制如何從一個(gè)對(duì)象發(fā)給另一個(gè)對(duì)象,并不包含控制的細(xì)節(jié);
(2)同步消息:同步意味著阻塞和等待,如果對(duì)象A給對(duì)象B發(fā)送一個(gè)消息,對(duì)象A會(huì)等待對(duì)象B執(zhí)行完這個(gè)消息,接著才進(jìn)行自身的工作;
(3)異步消息:異步意味著非阻塞,如果對(duì)象A給對(duì)象B發(fā)送一個(gè)消息,對(duì)象A不必等待對(duì)象B執(zhí)行完這個(gè)消息,就可以接著進(jìn)行自身的工作。
4.2順序圖
UML動(dòng)態(tài)建模中順序圖(也稱序列圖)是一種交互圖(InteractionDiagram,用于描述執(zhí)行系統(tǒng)功能的各個(gè)角色之間相互傳遞消息的順序關(guān)系,顯示跨越多個(gè)對(duì)象的系統(tǒng)控制流程),強(qiáng)調(diào)的是時(shí)間和消息的次序,用來(lái)說(shuō)明系統(tǒng)的動(dòng)態(tài)情況,順序圖由參與者、對(duì)象、對(duì)象生命線和消息組成。一個(gè)順序圖顯示了一系列的對(duì)象(通常是類的實(shí)例,也可以代表其他事物的實(shí)例,例如協(xié)作、組件和節(jié)點(diǎn))和在這些對(duì)象之間發(fā)送和接收的消息。圖4.1圖書入庫(kù)順序圖
圖書管理系統(tǒng)中圖書入庫(kù)的順序圖如圖4.1所示,對(duì)于順序圖,往往在文字表述上會(huì)出現(xiàn)“當(dāng)…時(shí)…”、“首先”、“然后”、“接著”、“…發(fā)出…消息”,“…響應(yīng)…消息”等詞匯。例如
圖4.1的順序圖可用文字表達(dá)為:
當(dāng)管理人員把新書入庫(kù)時(shí),首先要求登錄(輸入用戶名和口令),經(jīng)系統(tǒng)的“注冊(cè)表單”驗(yàn)證,若正確無(wú)誤,則可繼續(xù)下一步交互,否則拒絕該管理人員進(jìn)入系統(tǒng)。若登錄正確,管理人員可發(fā)出查詢請(qǐng)求消息,系統(tǒng)的“圖書入庫(kù)表單”對(duì)象響應(yīng)請(qǐng)求。若管理人員發(fā)出增加或刪除庫(kù)存圖書請(qǐng)求,“庫(kù)存圖書”對(duì)象將響應(yīng)該消息,找出數(shù)據(jù)庫(kù)中的相關(guān)數(shù)據(jù)并執(zhí)行相應(yīng)的操作。此后,管理人員應(yīng)按下提交鍵確認(rèn)請(qǐng)求,“圖書入庫(kù)表單”接口對(duì)象應(yīng)該響應(yīng)該請(qǐng)求,并發(fā)出存儲(chǔ)消息,才由“庫(kù)存圖書”對(duì)象響應(yīng)存儲(chǔ)消息,進(jìn)行數(shù)據(jù)庫(kù)存儲(chǔ)操作。如果管理人員結(jié)束圖書入庫(kù),發(fā)出退出系統(tǒng)的請(qǐng)求,則系統(tǒng)的“注冊(cè)表單”接口對(duì)象響應(yīng)請(qǐng)求,關(guān)閉系統(tǒng)。圖4.2購(gòu)買商品順序圖
而圖4.2則給出了電子購(gòu)物系統(tǒng)中購(gòu)買商品的順序圖,通過觀察順序圖,我們可以很清晰地看出顧客購(gòu)買商品的流程。#p#
4.3狀態(tài)圖
UML動(dòng)態(tài)建模中狀態(tài)圖是UML中的狀態(tài)機(jī)視圖。狀態(tài)機(jī)由對(duì)象的各個(gè)狀態(tài)和連接這些狀態(tài)的轉(zhuǎn)換組成。每個(gè)狀態(tài)對(duì)一個(gè)對(duì)象在其生命期中滿足某種條件的一個(gè)時(shí)間段建模,當(dāng)一個(gè)事件發(fā)生時(shí),它會(huì)觸發(fā)狀態(tài)間的轉(zhuǎn)換,導(dǎo)致對(duì)象從一種狀態(tài)轉(zhuǎn)化到另一新的狀態(tài)。與轉(zhuǎn)換相關(guān)的活動(dòng)執(zhí)行時(shí),轉(zhuǎn)換也同時(shí)發(fā)生。
狀態(tài)圖用于描述對(duì)象可以擁有的狀態(tài)以及引起狀態(tài)相互轉(zhuǎn)移的事件和條件,它揭示了對(duì)象的生命周期,是針對(duì)類的一種建模工具。狀態(tài)是對(duì)象前一次操作的結(jié)果,事件是引起狀態(tài)向另一狀態(tài)轉(zhuǎn)化的活動(dòng)。所有對(duì)象都有狀態(tài),但通常只對(duì)具有復(fù)雜行為的類建立狀態(tài)圖。狀態(tài)圖強(qiáng)調(diào)的是事件驅(qū)動(dòng)的對(duì)象的動(dòng)作,這在對(duì)反應(yīng)式系統(tǒng)的建模是相當(dāng)重要的。
兩個(gè)類的狀態(tài)圖之間可以相互發(fā)送消息,一個(gè)狀態(tài)還可以有嵌套的子狀態(tài),各子狀態(tài)之間的關(guān)系可以為與/或關(guān)系。
在如圖4.3所示的車載GPS終端系統(tǒng)中,車載GPS終端一方面與GPS衛(wèi)星通信,另一方面將從GPS衛(wèi)星獲得的位置信息(經(jīng)度、維度等)通過GSM短消息與車輛監(jiān)控調(diào)度中心進(jìn)行交互。
圖4.3車載GPS終端系統(tǒng)
在這樣的系統(tǒng)中,鑒于通信過程中GPS終端可能處于不同的狀態(tài),我們可用狀態(tài)圖來(lái)對(duì)其進(jìn)行描述,這樣很直觀和明確。圖4.4給出了GPS終端的狀態(tài)(待命、有問題、通話中、短消息通訊中)及其狀態(tài)之間的變遷關(guān)系。圖4.4GPS終端的狀態(tài)圖
4.4活動(dòng)圖
UML動(dòng)態(tài)建模中活動(dòng)圖用于描述系統(tǒng)、用例、程序模塊中的邏輯流程的先后執(zhí)行次序、并行次序,是對(duì)人類組織的現(xiàn)實(shí)世界中的工作流程的建模,有助于理解系統(tǒng)高層活動(dòng)的執(zhí)行行為。
活動(dòng)圖中的主要概念是“活動(dòng)”,而“活動(dòng)”的具體含義又取決于作圖目的和抽象層次:
(1)當(dāng)活動(dòng)圖用于描述系統(tǒng)行為時(shí),主要側(cè)重于系統(tǒng)多個(gè)用例活動(dòng)之間相互制約的執(zhí)行順序,同時(shí),識(shí)別出系統(tǒng)中存在的可以并行進(jìn)行的用例,此時(shí),活動(dòng)表示系統(tǒng)要完成的任務(wù);
(2)當(dāng)活動(dòng)圖用于描述用例時(shí),用于描述用例中的操作執(zhí)行次序和操作完成的結(jié)果,顯示多個(gè)對(duì)象的操作是如何相互結(jié)合起來(lái)共同完成用例的一個(gè)腳本,揭示出操作之間的并行性,為編碼實(shí)現(xiàn)提供開發(fā)并行程序的便利,此時(shí),活動(dòng)表示類中的方法,即操作。允許將某個(gè)組織或執(zhí)行者要完成的若干操作聚集在泳道中,以明確責(zé)任。
活動(dòng)圖用于低層次程序模塊的作用類似于流程圖,但活動(dòng)圖還可以描述并行操作,而流程圖則只能描述串行操作。例如,圖4.5給出了生產(chǎn)管理系統(tǒng)中的定單處理用例的活動(dòng)圖,它明顯地帶有流程圖的特色,但是,它還表示了處理過程中的并行過程。圖4.5中的付款認(rèn)可活動(dòng)屬于財(cái)務(wù)管理用部門的職責(zé),其它活動(dòng)屬于銷售部門的職責(zé),這兩個(gè)部門在并行運(yùn)作。
圖4.5定單處理的活動(dòng)圖
圖4.6則給出了藥品管理系統(tǒng)中藥品采購(gòu)入庫(kù)過程的活動(dòng)圖。
圖4.6藥品入庫(kù)的活動(dòng)圖#p#
4.5協(xié)作圖
與順序圖一樣,UML動(dòng)態(tài)建模中協(xié)作圖也是一種交互圖,用于描述對(duì)象之間的協(xié)作關(guān)系,其模型元素與序列圖的基本相同,但它側(cè)重于描述對(duì)象之間是如何相互連接的,強(qiáng)調(diào)的是發(fā)送和接收消息的對(duì)象之間的組織結(jié)構(gòu)。順序圖著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序,協(xié)作圖著重于哪些對(duì)象間有消息傳遞,表達(dá)了對(duì)象之間的靜態(tài)連接關(guān)系。順序圖和協(xié)作圖是同構(gòu)的,它們相互之間可以轉(zhuǎn)化而不損失信息,依靠工具協(xié)作圖和順序圖可互相轉(zhuǎn)換。
圖4.7注冊(cè)新課程的協(xié)作圖
圖4.7給出了注冊(cè)新課程的協(xié)作圖,圖中描述了注冊(cè)者、課程表單、管理員和課程對(duì)象之間的協(xié)作關(guān)系,對(duì)象之間的連接關(guān)系上給出了發(fā)送和接收的消息。
4.6UML圖之間的關(guān)系
連載2-4給出了多種類型的圖,這些圖之間存在著或直接或間接的關(guān)系(如圖4.8),這體現(xiàn)了UML中的辯證法。
圖4.8UML圖的關(guān)系
UML動(dòng)態(tài)建模中用例圖主要用來(lái)描述系統(tǒng)的外部行為;類圖和對(duì)象圖用來(lái)定義類和對(duì)象以及它們的屬性和操作;狀態(tài)圖描述類的對(duì)象所有可能的狀態(tài)以及事件發(fā)生時(shí)狀態(tài)的轉(zhuǎn)移條件;順序圖顯示對(duì)象之間的動(dòng)態(tài)合作關(guān)系,它強(qiáng)調(diào)對(duì)象之間消息發(fā)送的順序,同時(shí)顯示對(duì)象之間的交互;合作圖強(qiáng)調(diào)對(duì)象間的動(dòng)態(tài)合作關(guān)系;活動(dòng)圖描述滿足用例要求所要進(jìn)行的活動(dòng)以及活動(dòng)間的約束關(guān)系,有利于識(shí)別并行活動(dòng)。
除此之外,我們還沒有詳細(xì)講解的包圖用于描述系統(tǒng)的分層結(jié)構(gòu),構(gòu)件圖描述代碼部件的物理結(jié)構(gòu)及各部件之間的依賴關(guān)系,配置圖定義系統(tǒng)中軟硬件的物理體系結(jié)構(gòu)。
標(biāo)題名稱:UML輕松入門--UML動(dòng)態(tài)建模
轉(zhuǎn)載來(lái)于:http://m.fisionsoft.com.cn/article/cdsspog.html


咨詢
建站咨詢
