日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
UML序列圖中消息和約束概念詳解

本文和大家重點討論一下UMLUML序列圖中的消息和約束,UMLUML序列圖除了在設(shè)計新系統(tǒng)方面的用途外,它們還能用來記錄一個存在系統(tǒng)(稱它為“遺產(chǎn)”)的對象現(xiàn)在如何交互。

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

消息

為了可讀性,UML序列圖的***個消息總是從頂端開始,并且一般位于圖的左邊。然后繼發(fā)的消息加入圖中,稍微比前面的消息低些。
為了顯示一個對象(例如,生命線)傳遞一個消息給另外一個對象,你畫一條線指向接收對象,包括一個實心箭頭(如果是一個同步調(diào)用操作)或一個棍形箭頭(如果是一個異步訊號)。消息/方法名字放置在帶箭頭的線上面。正在被傳遞給接收對象的消息,表示接收對象的類實現(xiàn)的一個操作/方法。在圖4的例子中,analyst對象調(diào)用ReportingSystem類的一個實例的系統(tǒng)對象。analyst對象在調(diào)用系統(tǒng)對象的getAvailableReports方法。系統(tǒng)對象然后調(diào)用secSystem對象上的、包括參數(shù)userId的getSecurityClearance方法,secSystem的類的類型是SecuritySystem。2

圖4:一個在對象之間傳遞消息的實例

除了僅僅顯示UML序列圖上的消息調(diào)用外,圖4中的圖還包括返回消息。這些返回消息是可選擇的;一個返回消息畫作一個帶開放箭頭的虛線,向后指向來源的生命線,在這條虛線上面,你放置操作的返回值。在圖4中,當(dāng)getSecurityClearance方法被調(diào)用時,secSystem對象返回userClearance給系統(tǒng)對象。當(dāng)getAvailableReports方法被調(diào)用時,系統(tǒng)對象返回availableReports。
此外,返回消息是UML序列圖的一個可選擇部分。返回消息的使用依賴建模的具體/抽象程度。如果需要較好的具體化,返回消息是有用的;否則,主動消息就足夠了。我個人喜歡,無論什么時候返回一個值,都包括一個返回消息,因為我發(fā)現(xiàn)額外的細節(jié)使一個UML序列圖變得更容易閱讀。

當(dāng)UML序列圖建模時,有時候,一個對象將會需要傳遞一個消息給它本身。一個對象何時稱它本身?一個純化論者會爭辯一個對象應(yīng)該永不傳遞一個消息給它本身。然而,為傳遞一個消息給它本身的對象建模,在一些情境中可能是有用的。舉例來說,圖5是圖4的一個改良版本。圖5版本顯示調(diào)用它的determineAvailableReports方法的系統(tǒng)對象。通過表示系統(tǒng)傳遞消息“determineAvailableReports”給它本身,模型把注意力集中到過程的事實上,而不是系統(tǒng)對象。
為了要畫一個調(diào)用本身的對象,如你平時所作的,畫一條消息,但是不是連接它到另外的一個對象,而是你把消息連接回對象本身。

圖5:系統(tǒng)對象調(diào)用它的determineAvailableReports方法

圖5中的消息實例顯示同步消息;然而,在UML序列圖中,你也能為異步消息建模。一個異步消息和一個同步的畫法類似,但是消息畫的線帶一個棍形矛頭,如圖6所示。

圖6:表示傳遞到實體2的異步消息的UML序列圖片段

約束

當(dāng)為對象的交互建模時,有時候,必須滿足一個條件,消息才會傳遞給對象。約束在UML圖各處中,用于控制流。在這里,我將會討論UML1.x及UML2.0兩者的約束。在UML1.x中,一個約束只可能被分配到一個單一消息。UML1.x中,為了在一個UML序列圖上畫一個約束,你把約束元件放在約束的消息線上,消息名字之前。圖7顯示UML序列圖的一個片段,消息addStudent方法上有一個約束。

圖7:UML1.xUML序列圖的一個片段,其中addStudent消息有一個約束

在圖7中,約束是文本“[pastDueBalance=0]”。通過這個消息上的約束,如果應(yīng)收帳系統(tǒng)返回一個零點的逾期平衡,addStudent消息才將會被傳遞。約束的符號很簡單;格式是:
[BooleanTest]
舉例來說,
[pastDueBalance=0]
組合碎片(變體方案,選擇項,和循環(huán))
然而,在大多數(shù)的UML序列圖中,UML1.x“in-line”約束不足以處理一個建模序列的必需邏輯。這個功能缺失是UML1.x的一個問題。UML2已經(jīng)通過去掉“in-line”約束,增加一個叫做組合碎片的符號元件,解決了這一個問題。一個組合碎片用來把一套消息組合在一起,在一個UML序列圖中顯示條件分支。UML2規(guī)范指明了組合碎片的11種交互類型。十一種中的三種將會在“基礎(chǔ)”段落中介紹,另外兩種類型將會在“超越基礎(chǔ)”中介紹,而那剩余的六種我將會留在另一篇文章中介紹。(嗨,這是一篇文章而不是一本書。我希望你在一天中看完這部分!)


網(wǎng)頁標(biāo)題:UML序列圖中消息和約束概念詳解
文章鏈接:http://www.5511xx.com/article/ccsgohh.html