解析UML順序圖中如何直接創(chuàng)建對(duì)象以及返回值原則
UML順序圖是將交互關(guān)系表示為一個(gè)二維圖。縱向是時(shí)間軸,時(shí)間沿豎線向下延伸。橫向軸代表了在協(xié)作中各獨(dú)立對(duì)象的類元角色。類元角色用生命線表示。當(dāng)對(duì)象存在時(shí),角色用一條虛線表示,當(dāng)對(duì)象的過(guò)程處于激活狀態(tài)時(shí),生命線是一個(gè)雙道線。
UML順序圖中直接創(chuàng)建對(duì)象
在一個(gè)UML順序圖上注明對(duì)象的創(chuàng)建通常有兩種方法。首先,你可以用<>版型來(lái)發(fā)送一個(gè)消息,如同圖2如...中所示OrderCheckout所示的那樣。其次,你可以通過(guò)把圖中分類器位置下移,在其側(cè)面調(diào)用一個(gè)消息的方式直接的顯示創(chuàng)建,如你在圖1所見(jiàn)的theStudent和圖⒉的CreditCardPayment。直接方法的最主要的好處是它可以形象的表示出對(duì)象從無(wú)到有的邏輯。
◆為軟件消息使用操作符號(hào)。
當(dāng)一個(gè)消息被發(fā)給一個(gè)軟件實(shí)現(xiàn)的分類器時(shí),例如類、接口、或組件。通用的準(zhǔn)則是使用實(shí)現(xiàn)語(yǔ)言的語(yǔ)法來(lái)描述消息名。例如,在圖3中,消息commit(transactionID)被發(fā)送給sourceaccount對(duì)象,它使用了類似于Java、C++、和C_#語(yǔ)言的語(yǔ)法。
◆為涉及人和組織角色的消息使用敘述性文字。
當(dāng)一條消息的來(lái)源或目標(biāo)人或組織的角色時(shí),需要使用簡(jiǎn)短的敘述性文字來(lái)描述傳達(dá)的信息、來(lái)標(biāo)記消息。例如,在圖1中,被student角色發(fā)送出的消息是providesname和providesstudentnumber,它們描述了這個(gè)人在做什么。
◆推薦使用參數(shù)名稱,而不是參數(shù)類型
注意在圖3中,大多數(shù)的消息都使用參數(shù)名稱來(lái)注明參數(shù),而不是使用類型。唯一的例外是start()消息中傳遞的UserID參數(shù)。這可以使你正確地判定該消息傳遞了什么值,有時(shí)候類型信息是不夠的。例如,消息addDeposit(amount,target,transactionID)傳達(dá)的信息要比addDeposit(Currency,Account,int)多。
UML順序圖中返回值的原則
當(dāng)返回值非常明顯時(shí)就不要對(duì)返回值建模。
返回值的顯示是使用帶返回值標(biāo)記的虛線箭頭,返回值是可選的。例如,圖1中返回值theStudent表示了對(duì)SecurityLogon類調(diào)用的消息的返回值,然而圖2中對(duì)order發(fā)送getTotal()消息就沒(méi)有返回值。在第一個(gè)例子中,創(chuàng)建一個(gè)securitylogon對(duì)象會(huì)產(chǎn)生一個(gè)student對(duì)象,這是不明顯的,然而向order要求一個(gè)小計(jì)的返回值是很明顯的。
只有當(dāng)你需要在別處引用返回值時(shí)才對(duì)返回值建模。
如果你需要在UML順序圖的另一處(一般是作為參數(shù)傳遞給另一個(gè)消息)引用返回值,那就需要在圖中著名返回值,這樣就能清楚的表明它的出處。
◆在箭頭旁邊調(diào)整返回值。
大多數(shù)的建模者都會(huì)把返回值放在靠近箭頭地方,例如圖2中的theStudent。一般我們認(rèn)為返回值的接受者將會(huì)使用返回值,因此把返回值放在靠近分類器的位置是有意義的。
◆返回值建模為方法調(diào)用的一部分。
不要使用虛線來(lái)弄亂UML順序圖,考慮在消息名上注明返回值來(lái)替代虛線。使用符號(hào)message(parameters):returnValue,圖2就使用了這種符號(hào):reserve():AuthorizationCode。用這個(gè)方法,你只會(huì)有單條消息路線,而不會(huì)有一條消息路線和一條返回值路線。
【編輯推薦】
- 解析UML順序圖中分類器分層
- 深入學(xué)習(xí)UML順序圖的通用準(zhǔn)則和消息原則
- 實(shí)例介紹UML順序圖使用
- 三大常用UML工具性能對(duì)比
- 基于UML順序圖的場(chǎng)景測(cè)試用例生成方法





















