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