日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
學(xué)習(xí)筆記解析UML動(dòng)態(tài)建模機(jī)制

本節(jié)和大家學(xué)習(xí)一下UML動(dòng)態(tài)建模機(jī)制,主要包括消息,狀態(tài)圖,順序圖,合作圖和活動(dòng)圖介紹及四種圖的運(yùn)用等內(nèi)容,相信通過(guò)本節(jié)的介紹你對(duì)UML動(dòng)態(tài)建模機(jī)制一定會(huì)有深刻的認(rèn)識(shí)。

讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名注冊(cè)、網(wǎng)頁(yè)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、界首網(wǎng)站維護(hù)、網(wǎng)站推廣。

UML動(dòng)態(tài)建模機(jī)制

1.消息

在面向?qū)ο蠹夹g(shù)中,對(duì)象間的交互是通過(guò)對(duì)象間消息的傳遞來(lái)完成的。在UML的四個(gè)動(dòng)態(tài)模型中均用到消息這個(gè)概念。通常,當(dāng)一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象中的操作時(shí),即完成了一次消息傳遞。當(dāng)操作執(zhí)行后,控制便返回到調(diào)用者。對(duì)象通過(guò)相互間的通信進(jìn)行合作,并在其生命周期中根據(jù)通信的結(jié)果不斷改變自身的狀態(tài)。
在UML中,消息的圖形表示是用帶有箭頭的線(xiàn)段將消息的發(fā)送者和接收者聯(lián)系起來(lái),箭頭的類(lèi)型表示消息的類(lèi)型,如圖2所示。

UML定義中UML動(dòng)態(tài)建模的消息類(lèi)型有三種:

簡(jiǎn)單消息表示簡(jiǎn)單的控制流。用于描述控制如何在對(duì)象間進(jìn)行傳遞,而不考慮通信的細(xì)節(jié)。
同步消息表示嵌套的控制流。操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才可繼續(xù)執(zhí)行自己的操作。
異步消息表示異步控制流。當(dāng)調(diào)用者發(fā)出消息后不用等待消息的返回即可繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實(shí)時(shí)系統(tǒng)中的并發(fā)行為。

2.狀態(tài)圖

UML動(dòng)態(tài)建模狀態(tài)圖用來(lái)描述一個(gè)特定對(duì)象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個(gè)對(duì)象在其生命周期中的行為。一個(gè)狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。
狀態(tài) 所有對(duì)象都具有狀態(tài),狀態(tài)是對(duì)象執(zhí)行了一系列活動(dòng)的結(jié)果。當(dāng)某個(gè)事件發(fā)生后,對(duì)象的狀態(tài)將發(fā)生變化。狀態(tài)圖中定義的狀態(tài)有:初態(tài)、終態(tài)、中間狀態(tài)、復(fù)合狀態(tài)。其中,初態(tài)是狀態(tài)圖的起始點(diǎn),而終態(tài)則是狀態(tài)圖的終點(diǎn)。一個(gè)狀態(tài)圖只能有一個(gè)初態(tài),而終態(tài)則可以有多個(gè)。
中間狀態(tài)包括兩個(gè)區(qū)域:名字域和內(nèi)部轉(zhuǎn)移域,如圖3所示。圖中內(nèi)部轉(zhuǎn)移域是可選的,其中所列的動(dòng)作將在對(duì)象處于該狀態(tài)時(shí)執(zhí)行,且該動(dòng)作的執(zhí)行并不改變對(duì)象的狀態(tài)。

一個(gè)狀態(tài)可以進(jìn)一步地細(xì)化為多個(gè)子狀態(tài),我們將可以進(jìn)一步細(xì)化的狀態(tài)稱(chēng)作復(fù)合狀態(tài)。子狀態(tài)之間有"或關(guān)系"和"與關(guān)系"兩種關(guān)系?;蜿P(guān)系說(shuō)明在某一時(shí)刻僅可到達(dá)一個(gè)子狀態(tài)。例如,一個(gè)處于行駛狀態(tài)的汽車(chē),在"行駛"這個(gè)復(fù)合狀態(tài)中有向前和向后兩個(gè)不同的子狀態(tài),在某一時(shí)刻汽車(chē)要么向前,要么向后。與關(guān)系說(shuō)明復(fù)合狀態(tài)中在某一時(shí)刻可同時(shí)到達(dá)多個(gè)子狀態(tài)。具有并發(fā)子狀態(tài)的狀態(tài)圖稱(chēng)為并發(fā)狀態(tài)圖。

轉(zhuǎn)移 狀態(tài)圖中狀態(tài)之間帶箭頭的連線(xiàn)被稱(chēng)為轉(zhuǎn)移。狀態(tài)的變遷通常是由事件觸發(fā)的,此時(shí)應(yīng)在轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。假如轉(zhuǎn)移上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動(dòng)執(zhí)行完畢后自動(dòng)觸發(fā)轉(zhuǎn)移。#p#

3.順序圖

UML動(dòng)態(tài)建模順序圖用來(lái)描述對(duì)象之間動(dòng)態(tài)的交互關(guān)系,著重體現(xiàn)對(duì)象間消息傳遞的時(shí)間順序。順序圖存在兩個(gè)軸:水平軸表示不同的對(duì)象,垂直軸表示時(shí)間。順序圖中的對(duì)象用一個(gè)帶有垂直虛線(xiàn)的矩形框表示,并標(biāo)有對(duì)象名和類(lèi)名。垂直虛線(xiàn)是對(duì)象的生命線(xiàn),用于表示在某段時(shí)間內(nèi)對(duì)象是存在的。對(duì)象間的通信通過(guò)在對(duì)象的生命線(xiàn)間畫(huà)消息來(lái)表示。消息的箭頭指明消息的類(lèi)型。
順序圖中的消息可以是信號(hào)、操作調(diào)用或類(lèi)似于C++中的RPC和Java中的RMI。當(dāng)收到消息時(shí),接收對(duì)象立即開(kāi)始執(zhí)行活動(dòng),即對(duì)象被激活了。通過(guò)在對(duì)象生命線(xiàn)上顯示一個(gè)細(xì)長(zhǎng)矩形框來(lái)表示激活。
消息可以用消息名及參數(shù)來(lái)標(biāo)識(shí)。消息也可帶有順序號(hào),但較少使用。消息還可帶有條件表達(dá)式,表示分支或決定是否發(fā)送消息。假如用于表示分支,則每個(gè)分支是相互排斥的,即在某一時(shí)刻僅可發(fā)送分支中的一個(gè)消息。
在順序圖的左邊可以有說(shuō)明,用于說(shuō)明消息發(fā)送的時(shí)刻、描述動(dòng)作的執(zhí)行情況以及約束等。一個(gè)典型的例子就是用于說(shuō)明一個(gè)消息是重復(fù)發(fā)送的。另外,可以定義兩個(gè)消息間的時(shí)間限制。
一個(gè)對(duì)象可以通過(guò)發(fā)送消息來(lái)創(chuàng)建另一個(gè)對(duì)象,當(dāng)一個(gè)對(duì)象被刪除或自我刪除時(shí),該對(duì)象用"X"標(biāo)識(shí)。
另外,在很多算法中,遞歸是一種很重要的技術(shù)。當(dāng)一個(gè)操作直接或間接調(diào)用自身時(shí),即發(fā)生了遞歸。產(chǎn)生遞歸的消息總是同步消息,返回消息應(yīng)是一個(gè)簡(jiǎn)單消息。

4.合作圖

合作圖用于描述相互合作的對(duì)象間的交互關(guān)系和鏈接關(guān)系。雖然順序圖和合作圖都用來(lái)描述對(duì)象間的交互關(guān)系,但側(cè)重點(diǎn)不一樣。順序圖著重體現(xiàn)交互的時(shí)間順序,合作圖則著重體現(xiàn)交互對(duì)象間的靜態(tài)鏈接關(guān)系。
UML動(dòng)態(tài)建模中合作圖對(duì)象的外觀與順序圖中的一樣。假如一個(gè)對(duì)象在消息的交互中被創(chuàng)建,則可在對(duì)象名稱(chēng)之后標(biāo)以。類(lèi)似地,假如一個(gè)對(duì)象在交互期間被刪除,則可在對(duì)象名稱(chēng)之后標(biāo)以。對(duì)象間的鏈接關(guān)系類(lèi)似于類(lèi)圖中的聯(lián)系。通過(guò)在對(duì)象間的鏈接上標(biāo)志帶有消息串的消息來(lái)表達(dá)對(duì)象間的消息傳遞。

鏈接 

鏈接用于表示對(duì)象間的各種關(guān)系,包括組成關(guān)系的鏈接、聚集關(guān)系的鏈接、限定關(guān)系的鏈接以及導(dǎo)航鏈接。各種鏈接關(guān)系與類(lèi)圖中的定義相同,在鏈接的端點(diǎn)位置可以顯示對(duì)象的角色名和模板。

消息流 

在合作圖的鏈接線(xiàn)上,可以用帶有消息串的消息來(lái)描述對(duì)象間的交互。消息的箭頭指明消息的流動(dòng)方向。消息串說(shuō)明要發(fā)送的消息、消息的參數(shù)、消息的返回值以及消息的序列號(hào)等。

5.活動(dòng)圖

活動(dòng)圖的應(yīng)用非常廣泛,它既可用來(lái)描述操作的行為,也可以描述用例和對(duì)象內(nèi)部的工作過(guò)程。UML動(dòng)態(tài)建模中活動(dòng)圖是由狀態(tài)圖變化而來(lái)的,它們各自用于不同的目的?;顒?dòng)圖依據(jù)對(duì)象狀態(tài)的變化來(lái)捕捉動(dòng)作與動(dòng)作的結(jié)果?;顒?dòng)圖中一個(gè)活動(dòng)結(jié)束后將立即進(jìn)入下一個(gè)活動(dòng)。圖1給出了一個(gè)活動(dòng)圖的例子。

活動(dòng)和轉(zhuǎn)移

一項(xiàng)操作可以描述為一系列相關(guān)的活動(dòng)?;顒?dòng)僅有一個(gè)起始點(diǎn),但可以有多個(gè)結(jié)束點(diǎn)?;顒?dòng)間的轉(zhuǎn)移答應(yīng)帶有g(shù)uard-condition、send-clause和action-expression,其語(yǔ)法與狀態(tài)圖中定義的相同。一個(gè)活動(dòng)可以順序地跟在另一個(gè)活動(dòng)之后,這是簡(jiǎn)單的順序關(guān)系。假如在活動(dòng)圖中使用一個(gè)菱形的判定標(biāo)志,則可以表達(dá)條件關(guān)系,判定標(biāo)志可以有多個(gè)輸入和輸出轉(zhuǎn)移,但在活動(dòng)的運(yùn)作中僅觸發(fā)其中的一個(gè)輸出轉(zhuǎn)移。
活動(dòng)圖對(duì)表示并發(fā)行為也很有用。在活動(dòng)圖中,使用一個(gè)稱(chēng)為同步條的水平粗線(xiàn)可以將一條轉(zhuǎn)移分為多個(gè)并發(fā)執(zhí)行的分支,或?qū)⒍鄠€(gè)轉(zhuǎn)移合為一條轉(zhuǎn)移。此時(shí),只有輸入的轉(zhuǎn)移全部有效,同步條才會(huì)觸發(fā)轉(zhuǎn)移,進(jìn)而執(zhí)行后面的活動(dòng),如圖2所示。

泳道

活動(dòng)圖告訴你發(fā)生了什么,但沒(méi)有告訴你該項(xiàng)活動(dòng)由誰(shuí)來(lái)完成。在程序設(shè)計(jì)中,這意味著活動(dòng)圖沒(méi)有描述出各個(gè)活動(dòng)由哪個(gè)類(lèi)來(lái)完成。泳道解決了這一問(wèn)題。它將活動(dòng)圖的邏輯描述與順序圖、合作圖的責(zé)任描述結(jié)合起來(lái)。如圖2所示,泳道用矩形框來(lái)表示,屬于某個(gè)泳道的活動(dòng)放在該矩形框內(nèi),將對(duì)象名放在矩形框的頂部,表示泳道中的活動(dòng)由該對(duì)象負(fù)責(zé)。

對(duì)象

在活動(dòng)圖中可以出現(xiàn)對(duì)象。對(duì)象可以作為活動(dòng)的輸入或輸出,對(duì)象與活動(dòng)間的輸入/輸出關(guān)系由虛線(xiàn)箭頭來(lái)表示。假如僅表示對(duì)象受到某一活動(dòng)的影響,則可用不帶箭頭的虛線(xiàn)來(lái)連接對(duì)象與活動(dòng),如圖2所示。

信號(hào)

在活動(dòng)圖中可以表示信號(hào)的發(fā)送與接收,分別用發(fā)送和接收標(biāo)志來(lái)表示。發(fā)送和接收標(biāo)志也可與對(duì)象相連,用于表示消息的發(fā)送者和接收者。

6.四種圖的運(yùn)用

上面對(duì)UML中用于描述系統(tǒng)動(dòng)態(tài)行為的四個(gè)圖做了簡(jiǎn)單地介紹。UML動(dòng)態(tài)建模中這四個(gè)圖均可用于系統(tǒng)的動(dòng)態(tài)建模,但它們各自的側(cè)重點(diǎn)不同,分別用于不同的目的。下面對(duì)如何正確使用這幾個(gè)圖做一簡(jiǎn)單的總結(jié),在實(shí)際的建模過(guò)程中要根據(jù)具體情況靈活運(yùn)用這些建議。
首先,不要對(duì)系統(tǒng)中的每個(gè)類(lèi)都畫(huà)狀態(tài)圖。盡管這樣做很***,但太浪費(fèi)精力,其實(shí)你可能只關(guān)心某些類(lèi)的行為。正確的做法是:為幫助理解類(lèi)而畫(huà)它的狀態(tài)圖。狀態(tài)圖描述跨越多個(gè)用例的單個(gè)對(duì)象的行為,而不適合描述多個(gè)對(duì)象間的行為合作。為此,常將狀態(tài)圖與其它技術(shù)組合使用。
順序圖和合作圖適合描述單個(gè)用例中幾個(gè)對(duì)象的行為。其中順序圖突出對(duì)象間交互的順序,而合作圖的布局方法能更清楚地表示出對(duì)象之間靜態(tài)的連接關(guān)系。當(dāng)行為較為簡(jiǎn)單時(shí),順序圖和合作圖是***的選擇。但當(dāng)行為比變復(fù)雜時(shí),這兩個(gè)圖將失去其清楚度。因此,假如想顯示跨越多用例或多線(xiàn)程的復(fù)雜行為,可考慮使用活動(dòng)圖。另外,順序圖和合作圖僅適合描述對(duì)象之間的合作關(guān)系,而不適合對(duì)行為進(jìn)行精確定義,假如想描述跨越多個(gè)用例的單個(gè)對(duì)象的行為,應(yīng)當(dāng)使用狀態(tài)圖。


當(dāng)前文章:學(xué)習(xí)筆記解析UML動(dòng)態(tài)建模機(jī)制
當(dāng)前URL:http://www.dlmjj.cn/article/ccdpodc.html