自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

專家解析 UML順序圖如何使用

開發(fā) 架構
在學習UML的過程中經(jīng)常會遇到UML圖的問題,你對UML順序圖是否了解,這里就向大家介紹一下UML順序圖,相信本文的介紹一定會讓你收獲不小。

本節(jié)繼續(xù)向大家介紹UML順序圖,這里主要包括分類器的原則,消息的原則,對象以及參數(shù)等內容,希望本節(jié)的學習能讓你對UML順序圖有深入的了解。下面是有關UML順序圖的具體介紹。

分類器的原則

注意∶分類器命名規(guī)則的在別處描述。其中,類和接口的命名規(guī)則在UML類圖的風格指南中描述,用例的命名規(guī)則在UML用例圖的風格指南中描述,而組件的命名規(guī)則在UML組件圖的風格指南中描述。
當你在消息上引用對象時要命名他們。
UML順序圖上的對象應使用標準的UML格式"name:ClassName"來標記,其中"name"可選的(擁有一個名稱的對象稱作已命名的對象,而那些沒有名稱的對象則被稱作匿名對象)。在圖1中,Student的實例以theStudent來命名,因為它是一條消息已引用返回值,然而SecurityLogon類的實例則不需要名稱,因為圖的其它地方并沒有應用它,因此它可以使匿名的。
當存在部分相同的類型時需要命名對象。

當一個UML順序圖包含幾個同樣類型的對象時,例如圖3存在兩個Account類的實例,你應該為該類型的所有對象命名,以避免圖的意義含糊不清。
圖⒊在賬戶間轉帳。

一致地應用文本版型。

表1總結了一些通用版型,你可以在UML順序圖的分類器上應用它們。不要花過多的時間來爭論應該使用哪個版型,例如<>和<>都是不錯的版型,只要隨便選擇一個并保證一致性就好了。

表⒈通用的版型.

版型用法

<>在設計期間表示微軟的ActiveServerPage。
<>在設計期間用于注明一個組件。
<>用來注明一個控制器類,實現(xiàn)了和使用情境有關的業(yè)務邏輯,或包括幾個業(yè)務類的邏輯。
<>設計期間表示一個圖形用戶界面屏幕。
<>設計期間表示一個超文本頁。
<>設計期間表示一個Java接口
<>設計期間表示一個JavaServerPage。
<>設計期間表示一個打印的或電子的報告。
<>表示系統(tǒng)角色。
<>一個一般的用戶界面類。一般使用在分析級的圖上,此時你尚未決定使用何種的實現(xiàn)平臺。
少量地應用可視化的版型。

在你的UML順序圖上應用可視化的版型時完全正確的,就如同你在圖2和圖3所見的,但它并非一個十分通用的慣例,因此它可能會減少圖的可理解性。在圖2中,顧客是一個角色(使用與用例圖相同的符號),OrderCheckout是一個控制器類,CheckoutPage是一個用戶界面類,而Order是一個業(yè)務實體類。
注意,那些需要開發(fā)穩(wěn)定性較高的圖的團隊會使用可視化的版型Rosenberg&Scott1999;Ambler2002),就像在圖2描繪的可視化的版型一樣,因此對項目中的所有人都必須熟悉這些符號。
集中在關鍵的交互。
AM的實踐--創(chuàng)建簡單內容建議,當創(chuàng)建一個模型時,你應當集中于系統(tǒng)的關鍵性特征,而不要包含無關的細節(jié)。因此,如果順序圖是探究業(yè)務邏輯的,你就不要包含對象和數(shù)據(jù)庫的具體交互,諸如save()和delete()的操作就已經(jīng)足夠了,你可以簡單地假定持久性已經(jīng)能夠處理,而不需要去理會細節(jié)。例如,在圖2中,你看不到從數(shù)據(jù)庫或對象緩存中讀取orders和orderitems的任何邏輯,只是他們會在適當點發(fā)生而已。你也看不到CreditCardPayment類連接到payment處理器的邏輯,但這個邏輯是必定會發(fā)生的。只把注意力集中在和你正在建模的東西相關的關鍵性交互上,你可以在盡可能的保持圖的簡單的同時達到目的,不但提高了建模者的生產(chǎn)力,也增加了圖的可讀性。

消息的原則

注意∶操作符號的命名規(guī)則,和消息、參數(shù)、返回值的命名有關的原則都在UML類圖的風格指南中描述。
把消息名放在箭頭旁邊。
大多數(shù)的建模者都會調整消息名,例如圖2中的calculateTotal(),因此消息名總是靠近箭頭的。一般我們認為消息的接受者將會實現(xiàn)相應的操作,因此把消息名放在離分類器接近的位置是有意義的。
注意,圖3并沒有遵循這些原則,所有的消息名都排列在接近發(fā)送者的地方。這種方法的優(yōu)點在于它很容易看出欲建模的情境的邏輯,而且,如果你使用了清楚的消息和參數(shù)名稱,那你也許可以不用遵循包含邏輯的敘述性描述的原則。而這種方法的缺點是很難判斷哪個操作是被圖右方的分類器所調用的。象往常一樣,選擇一種方法并一致的應用它。

直接創(chuàng)建對象

在一個UML順序圖上注明對象的創(chuàng)建通常有兩種方法。首先,你可以用<>版型來發(fā)送一個消息,如同圖2如...中所示OrderCheckout所示的那樣。其次,你可以通過把圖中分類器位置下移,在其側面調用一個消息的方式直接的顯示創(chuàng)建,如你在圖1所見的theStudent和圖⒉的CreditCardPayment。直接方法的最主要的好處是它可以形象的表示出對象從無到有的邏輯。
為軟件消息使用操作符號。

當一個消息被發(fā)給一個軟件實現(xiàn)的分類器時,例如類、接口、或組件。通用的準則是使用實現(xiàn)語言的語法來描述消息名。例如,在圖3中,消息commit(transactionID)被發(fā)送給sourceaccount對象,它使用了類似于Java、C++、和C_#語言的語法。
為涉及人和組織角色的消息使用敘述性文字。
當一條消息的來源或目標人或組織的角色時,需要使用簡短的敘述性文字來描述傳達的信息、來標記消息。例如,在圖1中,被student角色發(fā)送出的消息是providesname和providesstudentnumber,它們描述了這個人在做什么。

推薦使用參數(shù)名稱,而不是參數(shù)類型
注意在圖3中,大多數(shù)的消息都使用參數(shù)名稱來注明參數(shù),而不是使用類型。唯一的例外是start()消息中傳遞的UserID參數(shù)。這可以使你正確地判定該消息傳遞了什么值,有時候類型信息是不夠的。例如,消息addDeposit(amount,target,transactionID)傳達的信息要比addDeposit(Currency,Account,int)多。

為參數(shù)占位符注明類型
有時參數(shù)傳遞的信息和你正在建模的信息并沒有什么關系,雖然這些信息對你而言非常的重要。在這種情況下就需要注明參數(shù)的類型,如圖3中的start(UserID)。

類的消息實現(xiàn)為靜態(tài)操作
當一條消息被發(fā)給一個類時(類使用ClassName的格式標記),我們需要在類的定義中增加一條相應的靜態(tài)操作。例如,圖1描述了被發(fā)送給Seminar類的消息getAvailableSeminars(),因此該類的定義中應該有一條靜態(tài)操作。如果這條消息被發(fā)給Seminar一個實例,那就應該有一個相應的實例操作。這是順序圖和類圖間的一項非常重要的一致性檢驗,某些CASE工具可以自動化實現(xiàn)。

為用例調用使用<>版型
圖3顯示了一個用例在UML順序圖中是如何經(jīng)由一個用<>版型標記的消息被調用的,當你在建模一個包含一個被直接調用的用例的使用情境時,就可以使用這個小技巧。

返回值的原則

當返回值非常明顯時就不要對返回值建模。
返回值的顯示是使用帶返回值標記的虛線箭頭,返回值是可選的。例如,圖1中返回值theStudent表示了對SecurityLogon類調用的消息的返回值,然而圖2中對order發(fā)送getTotal()消息就沒有返回值。在第一個例子中,創(chuàng)建一個securitylogon對象會產(chǎn)生一個student對象,這是不明顯的,然而向order要求一個小計的返回值是很明顯的。
只有當你需要在別處引用返回值時才對返回值建模。
如果你需要在順序圖的另一處(一般是作為參數(shù)傳遞給另一個消息)引用返回值,那就需要在圖中著名返回值,這樣就能清楚的表明它的出處。

在箭頭旁邊調整返回值。

大多數(shù)的建模者都會把返回值放在靠近箭頭地方,例如圖2中的theStudent。一般我們認為返回值的接受者將會使用返回值,因此把返回值放在靠近分類器的位置是有意義的。

返回值建模為方法調用的一部分。

不要使用虛線來弄亂UML順序圖,考慮在消息名上注明返回值來替代虛線。使用符號message(parameters):returnValue,圖2就使用了這種符號:reserve():AuthorizationCode。用這個方法,你只會有單條消息路線,而不會有一條消息路線和一條返回值路線。

為返回值占位符注明類型

有時返回值傳遞的信息和你的模型并沒有什么關系,盡管這些信息對你而言非常的重要。在這種情況下就需要注明參數(shù)的類型,如圖2中的reserve():AuthorizationCode。

明確的為簡單值標明實際值

圖1中isValid()message返回了值yes,這就清楚的表明了該學生的名稱和編號是合法的。如果返回值命名為Boolean,就只是注明回應的類型,如果命名為eligibilityIndicator,就只是注明了返回值的名稱,這樣就不夠明確了。

【編輯推薦】

  1. 基于UML順序圖的場景測試用例生成方法
  2. 術語匯編 UML順序圖簡介
  3. 如何繪制UML用例圖
  4. UML中各種UML圖形的建立步驟簡明介紹
  5. UML用例圖用法實例剖析
責任編輯:佚名 來源: csdn.net
相關推薦

2010-07-02 14:04:24

UML圖

2010-06-11 10:31:19

UML部署圖

2010-07-01 15:36:22

UML順序圖

2010-07-01 15:22:28

UML順序圖

2010-07-12 11:36:32

UML活動圖

2010-07-06 10:00:08

UML部署圖

2010-07-01 12:21:35

UML類圖關系

2010-07-07 13:54:00

UML用例圖

2010-07-09 11:01:30

UML動態(tài)建模

2010-07-05 10:20:27

UML圖

2010-06-17 10:05:35

UML動態(tài)建模

2010-06-11 11:28:00

UML視圖

2010-06-13 15:03:25

UML實踐

2010-07-06 16:11:52

UML序列圖

2010-07-12 10:25:44

UML類圖

2010-07-09 09:26:06

UML順序圖

2010-07-12 09:18:36

UML模型圖

2010-07-06 11:51:21

UML活動圖

2010-06-29 13:45:50

UML類圖教程

2010-07-02 10:25:50

UML模型圖
點贊
收藏

51CTO技術棧公眾號