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

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
UML動態(tài)建模機(jī)制詳解

UML動態(tài)建模機(jī)制你是否熟悉,這里和大家分享一下UML動態(tài)建模機(jī)制方面的知識,相信通過本節(jié)的介紹你對UML動態(tài)建模機(jī)制一定會有全面的認(rèn)識。下面就是詳細(xì)介紹。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括魚臺網(wǎng)站建設(shè)、魚臺網(wǎng)站制作、魚臺網(wǎng)頁制作以及魚臺網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,魚臺網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到魚臺省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

UML動態(tài)建模機(jī)制軟件工程

UML動態(tài)模型包括狀態(tài)模型、順序模型、協(xié)作模型和活動模型,通常以狀態(tài)圖、順序圖、協(xié)作圖和活動圖來表示。其中,順序圖和協(xié)作圖通常合起來稱為交互圖。狀態(tài)模型關(guān)注一個(gè)對象的生命周期內(nèi)的狀態(tài)及狀態(tài)變遷,以及引起狀態(tài)變遷的事件和對象在狀態(tài)中的動作等。順序模型和協(xié)作模型強(qiáng)調(diào)對象間的合作關(guān)系,通過對象間的消息傳遞以完成系統(tǒng)的用例?;顒訄D用于描述多個(gè)對象在交互時(shí)采取的活動,它關(guān)注對象如何相互活動以完成一個(gè)事務(wù)。

一、消息

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

UML定義的消息類型有三種:
(1)簡單消息(simplemessage)表示簡單的控制流。用于描述控制如何在對象間進(jìn)行傳遞,而不考慮通信的細(xì)節(jié)。
(2)同步消息(synchronousmessage)表示嵌套的控制流。操作的調(diào)用是一種典型的同步消息。調(diào)用者發(fā)出消息后必須等待消息返回,只有當(dāng)處理消息的操作執(zhí)行完畢后,調(diào)用者才可繼續(xù)執(zhí)行自己的操作。
(3)異步消息(asynchronousmessage)表示異步控制流。調(diào)用者發(fā)出消息后不用等待消當(dāng)息的返回即可繼續(xù)執(zhí)行自己的操作。異步消息主要用于描述實(shí)時(shí)系統(tǒng)中的并發(fā)行為。
可以將一個(gè)簡單消息和一個(gè)同步消息合并成一個(gè)消息,原同步消息的箭頭和簡單消息的箭頭分別放在合并后的消息兩端。這樣的消息意味著操作調(diào)用一旦完成就立即返回。

二、順序圖

UML動態(tài)建模機(jī)制中順序圖用來描述對象之間動態(tài)的交互關(guān)系,著重體現(xiàn)對象間消息傳遞的時(shí)間順序。順序圖存在兩個(gè)軸:水平軸表示不同的對象,垂直軸表示時(shí)間。在順序圖中,對象用一個(gè)帶有垂直虛線的矩形框表示,在矩形框內(nèi)標(biāo)有對象名和類名。垂直虛線稱為對象的生命線,代表在對象之間的交互作用中該對象的生命期。在生命線上的窄矩形條被稱作激活(activation),表示該對象正在執(zhí)行某個(gè)操作。激活矩形的長度表示計(jì)劃的持續(xù)時(shí)間,既可以直接執(zhí)行,也可以通過下級過程執(zhí)行。矩形條的頂部表示動作的開始,底部表示動作的結(jié)束。兩根對象的生命線之間的箭頭表示消息。消息的箭頭形狀指明消息的類型是發(fā)送還是返回。消息按發(fā)生的時(shí)間順序從上到下排列。每個(gè)消息旁標(biāo)注消息名,也可加上參數(shù)并標(biāo)注一些控制信息。返回自身生命線的消息箭頭叫回授(selfcall),表示對象發(fā)送消息給自己。
控制信息由兩種。***種是條件控制信息,說明在什么情況下才會發(fā)送信息(例如,在[needsToReorder()=true]的條件下),消息僅當(dāng)條件為真時(shí)才會被發(fā)送。第二種是重復(fù)控制信息,表示消息多次發(fā)送給多個(gè)作為接收者的對象。這種控制信息通常在當(dāng)一個(gè)對象向某個(gè)對象集合中的每一個(gè)對象逐個(gè)地發(fā)送消息時(shí)使用(例如*prepare())。

交互圖是一種非常簡單扼要的可視化圖解,這也正是交互圖的優(yōu)勢。同時(shí)也可看到,順序圖比較適合交互規(guī)模較小的可視化圖解,如果對象很多,交互又很頻繁,則會使順序圖變得復(fù)雜起來,這是順序圖的一個(gè)弱點(diǎn)。在順序圖中可以使用返回(return)消息,表示從消息處理中返回,而不是一個(gè)新消息。為了畫圖清晰,經(jīng)常將返回消息省略掉。一般的對象放在圖的頂部,但還有一種特殊的消息new是創(chuàng)建一個(gè)對象消息,由于該消息而創(chuàng)建的對象放在圖中中間位置合適的地方。在面向?qū)ο蟪绦蛟O(shè)計(jì)中,總體的控制流程往往是難以理解的。一個(gè)好的設(shè)計(jì)應(yīng)當(dāng)將很多小方法放入不同的類中,并且隨時(shí)能巧妙地指出總體的行為順序,這樣可以十分有效地幫助你加速了解代碼。對于***接觸面向?qū)ο蟪绦蛟O(shè)計(jì)的人來說尤其是如此,順序圖可以幫助你看清行為的次序。

三、協(xié)作圖

UML動態(tài)建模機(jī)制中交互圖的第二種形式是協(xié)作圖。協(xié)作圖也是用來描述對象與對象之間的消息連接關(guān)系的,但是它更側(cè)重于說明哪些對象之間有消息傳遞,而不像順序圖那樣側(cè)于在某種特定的情形下對象之間傳遞消息的時(shí)序性。在協(xié)作圖中,對象同樣是用一個(gè)對象圖符號來表示,箭頭表示消息發(fā)送的方向,而消息的執(zhí)行順序則由消息的編號來標(biāo)明。
與順序圖中從上而下的生命線相比,通過編號來看消息執(zhí)行的時(shí)間順序顯然要困難得多。但是,協(xié)作圖中對象間靈活的空間布局使我們可以更方便地展示另外一些有用信息,不同的軟件工程師可能偏好不同形式的交互圖。例如,有些人喜歡使用順序圖,因?yàn)轫樞驁D突出使用執(zhí)行的時(shí)序,能更方便地看出事情發(fā)生的次序;有些人更喜歡協(xié)作圖,因?yàn)閰f(xié)作圖的布局方法能更清楚的表示出對象之間靜態(tài)的連接關(guān)系。那么如何選擇呢?一個(gè)最基本的原則是用哪種圖更簡明清楚,則選用哪種圖。

四、狀態(tài)圖

UML動態(tài)建模機(jī)制中狀態(tài)圖(StateDiagram)用來描述一個(gè)特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。大多數(shù)面向?qū)ο蠹夹g(shù)都用狀態(tài)圖表示單個(gè)對象在其生命周期中的行為。一個(gè)狀態(tài)圖包括一系列的狀態(tài)以及狀態(tài)之間的轉(zhuǎn)移。所有對象都具有狀態(tài),狀態(tài)是對象執(zhí)行了一系列活動的結(jié)果。當(dāng)某些事情發(fā)生后,對象的狀態(tài)將發(fā)生變化,稱改變對象狀態(tài)的事情為“事件”,狀態(tài)圖用來顯示對象對事件的反應(yīng)以及對象狀態(tài)的改變。狀態(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è)黑圓點(diǎn)表示,終態(tài)用黑圓點(diǎn)外加一個(gè)圓表示(很像一只牛眼)。狀態(tài)圖中的狀態(tài)用一個(gè)圓角四邊形表示。狀態(tài)之間為狀態(tài)轉(zhuǎn)換,用一條帶箭頭的線表示。引起狀態(tài)轉(zhuǎn)換的事件可以用狀態(tài)轉(zhuǎn)換線旁邊的標(biāo)簽表示。當(dāng)事件發(fā)生時(shí),狀態(tài)轉(zhuǎn)換開始。

一個(gè)狀態(tài)一般包含三個(gè)部分,***部分為狀態(tài)的名稱;第二部分為可選的狀態(tài)變量的變量名和變量值,這部分是可選的;第三部分為可選的活動表,列出有關(guān)事件和活動。在活動表中,常常使用下面三種標(biāo)準(zhǔn)事件即entry(進(jìn)入)、exit(退出)和do(做)。entry事件用來指定一個(gè)狀態(tài)的活動,exit事件用來指定退出一個(gè)狀態(tài)的活動,do事件用來指定在該狀態(tài)下的活動。
活動部分的語法如下:
事件參數(shù)表“/”活動表達(dá)式
事件可以是任何事件,包括上述3種標(biāo)準(zhǔn)事件?;顒颖磉_(dá)式用來指定應(yīng)該進(jìn)行何種活動。有時(shí)還需要為事件指定一些參數(shù)。
狀態(tài)圖中狀態(tài)之間帶箭頭的連線被稱為轉(zhuǎn)移。狀態(tài)的變遷通常是由事件觸發(fā)的,此時(shí)應(yīng)在轉(zhuǎn)移上標(biāo)出觸發(fā)轉(zhuǎn)移的事件表達(dá)式。如果轉(zhuǎn)移上未標(biāo)明事件,則表示在源狀態(tài)的內(nèi)部活動執(zhí)行完畢后自動觸發(fā)轉(zhuǎn)移。

轉(zhuǎn)移的語法表示如下:
事件說明[守衛(wèi)條件]/動作表達(dá)式
其中,事件說明的語法為:事件名{參數(shù)}
守衛(wèi)條件是狀態(tài)轉(zhuǎn)移的一個(gè)布爾表達(dá)式。如果將守衛(wèi)條件和事件說明放在一起使用,則當(dāng)且僅當(dāng)事件發(fā)生且布爾表達(dá)式成立時(shí)狀態(tài)才發(fā)生轉(zhuǎn)移。如果狀態(tài)轉(zhuǎn)移只有守衛(wèi)條件這一個(gè)條件,則只要守衛(wèi)條件為真,狀態(tài)就發(fā)生轉(zhuǎn)移。動作表達(dá)式是一個(gè)過程表達(dá)式,當(dāng)狀態(tài)轉(zhuǎn)移開始時(shí)執(zhí)行。轉(zhuǎn)移中使用的術(shù)語是“動作”,而在狀態(tài)中使用的術(shù)語是“活動”。盡管它們都是一種過程,都是由對象中的方法實(shí)現(xiàn),但是處理它們的方式有所不同。動作與轉(zhuǎn)移關(guān)聯(lián),能被極快處理且不會被中斷?;顒雍蜖顟B(tài)關(guān)聯(lián),持續(xù)時(shí)間長且可以被一些事件中斷。
轉(zhuǎn)移中的事件表示輸入,當(dāng)狀態(tài)中的活動完成后,并且當(dāng)相應(yīng)的輸入事件發(fā)生時(shí),轉(zhuǎn)移才會發(fā)生。有的轉(zhuǎn)移上沒有標(biāo)明引發(fā)轉(zhuǎn)移的條件的事件,則表示狀態(tài)中的活動一旦完成,轉(zhuǎn)移不需要等待任何輸入,便立即發(fā)生轉(zhuǎn)移。
“空閑”狀態(tài),把狀態(tài)變量timer的值置為0,然后遞增timer的值,直到“上行”或“下行”事件發(fā)生或守衛(wèi)條件“timer=超時(shí)值”為真,觸發(fā)狀態(tài)轉(zhuǎn)換。
狀態(tài)圖適合于描述跨越多個(gè)用例的單個(gè)對象的行為,而不適合于描述多個(gè)對象之間的狀態(tài)圖確實(shí)有用,但不要對系統(tǒng)中的每個(gè)類都畫出它的狀態(tài)圖。從理論上講,如果能刻畫每個(gè)類的狀態(tài)圖,就可以準(zhǔn)確描述每個(gè)類的動態(tài)行為。但是這樣要花費(fèi)大量精力,而且也沒有必要。事實(shí)上,我們關(guān)心的是某些關(guān)鍵類的行為,為此為這些類建立狀態(tài)圖可以
幫助我們理解所研究的問題,在這種情況下才有必要繪制狀態(tài)圖。

五、活動圖

UML動態(tài)建模機(jī)制中活動圖顯示動作及其結(jié)果,著重描述操作實(shí)現(xiàn)中所完成的工作以及用例實(shí)例或?qū)ο笾械幕顒??;顒訄D是狀態(tài)圖的一個(gè)變種,與狀態(tài)圖的目的有一些小的差別?;顒訄D的主要目的是描述動作(執(zhí)行的工作或活動)以及對象狀態(tài)改變的結(jié)果。當(dāng)狀態(tài)中的動作被執(zhí)行時(shí)(不象正常的狀態(tài)圖,它不需指定任何事件),活動圖中的狀態(tài)(稱作動作狀態(tài))直接轉(zhuǎn)移到下一階段?;顒訄D和狀態(tài)圖的另一個(gè)區(qū)別是活動途中的動作可以放到泳道中去。泳道聚合一組活動,并指定負(fù)責(zé)人和所屬組織?;顒訄D是另一種描述交互的方式,描述采取何種動作,做什么(對象狀態(tài)改變),何時(shí)發(fā)生(動作序列),以及在何處發(fā)生(泳道)。
活動圖可以用作下列目的:
(1)描述成操作執(zhí)行過程中(操作實(shí)現(xiàn)的實(shí)例化)所完成的工作(動作),這是活動圖最常用的用途。
(2)描述對象內(nèi)部工作。
(3)顯示如何執(zhí)行一組相關(guān)的動作,以及這些動作如何影響它們周圍的對象。
(4)顯示用例的實(shí)例是如何執(zhí)行動作以及改變對象狀態(tài)的。

泳道將一個(gè)活動圖中的活動狀態(tài)分組,每一組表示負(fù)責(zé)那些活動的業(yè)務(wù)組織。尤其當(dāng)你對業(yè)務(wù)過程的工作流建模時(shí),泳道是很有用的。在UML中,每個(gè)組被稱為一個(gè)泳道,因?yàn)閺囊曈X上,每組用一條垂直實(shí)線把它與鄰居分開,一個(gè)泳道說明一個(gè)活動軌跡。
每個(gè)泳道在圖中都有一個(gè)唯一的名稱。泳道除了可能代表現(xiàn)實(shí)世界的某些實(shí)體之外,實(shí)際上沒有很深的語義。每個(gè)泳道代表一個(gè)活動圖的全部活動中部分活動的高層職責(zé),并且每個(gè)泳道最終可能由一個(gè)或多個(gè)類實(shí)施。在一個(gè)被劃分為泳道的活動圖中,每個(gè)活動都明確地屬于一個(gè)泳道,而轉(zhuǎn)移可以跨越泳道。


本文題目:UML動態(tài)建模機(jī)制詳解
URL地址:http://www.dlmjj.cn/article/djcgeeo.html