從設計程式考慮,規格序列圖只顯示一個特定的執行緒。因此,某些實例及訊息將會遺漏。但是,執行(動畫)序列圖會反映物件之間的完整協同作業。這是規格序列圖與執行序列圖之間的簡單比較一律失敗的原因。IBM® Rational® Rhapsody® 會提供各種選項,可讓您在執行順序比較時補償這兩類圖表之間的部分必要差異。
在「序列圖比較」視窗中選取選項以開啟「序列圖比較選項」視窗。
使用一般標籤上的下列欄位以指定是否使用同步化,以及是否儲存或上傳選項設定:
有時,抵達訊息的順序無關緊要。同步化選項可讓您忽略訊息的抵達時間,而只考量這些訊息的傳送順序。
在產生的比較顯示畫面中,相當的訊息會在相鄰的窗格中垂直同步。這可協助您在這兩個圖表中尋找對應的訊息。
若要啟用或停用同步化選項,請選取或清除一般標籤中的同步化方框。
您可以將選項設定儲存至檔案,然後重新載入它們以用於後續的訊息比較。
若要儲存設定,請執行下列動作:
<SD2>_<SD1>.sdo
副檔名 .sdo 代表「序列圖選項」。如果需要,請編輯選項檔案的路徑及預設名稱。
若要重新載入選項設定,請執行下列動作:
順序比較選項會還原為上次儲存在檔案中的設定。
下圖中顯示的訊息選取標籤可讓您選取要包括的訊息,以及是否要在比較中包括引數。

在此訊息選取標籤上,單字「忽略」是所有訊息「引數」直欄的預設值。這意味著,依預設會忽略訊息的引數比較。
使用此標籤,您可以:
規格序列圖通常包括對特定使用案例或範例情節很重要的資訊。在許多案例中,它們會排除起始設定階段訊息,而執行序列圖會包括所有訊息。因此,在執行比較時可能有必要忽略某些訊息,如建構子。忽略的訊息在產生的比較視窗中無法存取。
若要從比較中排除訊息,請執行下列動作:

用於確定訊息是否相同的選項有兩個:第一個是比較訊息名稱及所有引數,第二個是只比較訊息名稱。後者選項更加有用,因為序列圖顯示四種不同類型的引數:
在規格序列圖中,您可能無法一律提供有關訊息引數的完整資訊。因為執行序列圖會記錄系統實際執行的動作,所以它們一律同時顯示引數值與名稱。因此,訊息比較在理想情況下不會使用引數,而是主要側重於訊息名稱。
當兩個訊息的名稱相同時,您可以比較它們的引數。
例如,請考量稱為 evDigitDialed(Digit) 的訊息。如果您只比較它們的引數名稱 (Digit),它們將會相等。但是,如果您比較它們的值(EvDigitDialed(Digit=0)、EvDigitDialed(Digit=1) 等),則它們的引數值將不相等。
引數比較會在下列步驟中發生:
若要指定是否使用引數名稱或值,請執行下列動作:
以下是常用的設定:
| 規格序列圖 | 執行序列圖 | 值 |
|---|---|---|
| Message() | Message(Arg = 1) | 忽略引數 |
| Message(Arg) | Message(Arg = 1) | 僅比較名稱 |
| Message(1) | Message(Arg = 1) | 比較名稱和值 |
在規格序列圖中,由環境傳送的所有訊息均來自特定物件。但是,在執行序列圖中,這些訊息可能潛在來自您與動畫的互動。此差異會損害比較。
一般而言,要求物件在執行序列圖與規格序列圖之間完全符合過於嚴格。解決方案是將一個序列圖中的物件與其他序列圖中的其他物件相關聯。如果訊息的來源與目標物件在兩個序列圖中均已關聯,這些訊息可能會相符。
若要將物件相互關聯,請建立物件群組。物件群組在本質上是橋接高階使用案例及實際實作的實例摘要,或是黑盒與白盒範例情節之間的實例摘要。使用物件群組,您可以比較沒有相同名稱的物件,或將一個物件與多個其他物件進行比較。
若要檢視物件群組,請選取「序列圖比較」選項視窗中的實例群組標籤。下圖所示的實例群組標籤會顯示模型中的現有物件群組清單。每一個物件均有一個物件群組,並且依預設是其自己群組的唯一成員。

屬於群組的物件會顯示在視窗底端的物件群組清單中。這意味著為 SD1 列出的物件與為 SD2 列出的那些物件在邏輯上視為相同。
實例群組標籤可讓您執行下列作業:
若要建立實例群組,請執行下列動作:
若要刪除現有的物件群組,請執行下列動作:
屬於所刪除群組的任何物件現在都未使用,因此可以指派給另一個物件群組。
若要刪除所有實例群組,請執行下列動作:
所有物件現在都未使用,因此可以指派給新的物件群組。
如果您想要關聯與所示物件不同的物件,請將一個以上物件移至不同的物件群組或建立一個群組。在任一情況下,您均需要從物件目前所在的群組中移除要移動的物件,因為一個物件每次只能屬於一個群組。
若要從群組中移除物件,請執行下列動作:
若要將物件新增至群組,請執行下列動作:
若要將所有物件群組按物件設定回一個群組的預設值,請按一下實例群組標籤上的設定為預設值。針對每個物件會新增一個物件群組,其中 SD1 與 SD2 中相同的物件屬於該群組。
在規格序列圖中,您通常必須假設訊息佇列的運作方式才能決定訊息的順序。在規格序列圖中,訊息的順序將極可能與狀態圖中指定的實際順序不同。不正確的排序假設可能會導致較大的不符。
為避免此問題,比較必須能夠忽略訊息計時。例如,由實例 A2 傳送的訊息 M2 之後由實例 A1 傳送的訊息 M1 可能符合在 M2 之前傳送的相同訊息:

同時可以存在有兩則以上的訊息要傳送,但其順序並不重要的情況。訊息群組可讓您指定排序對其並不重要的訊息群組。如果群組中的任何訊息以任何順序出現,則會存在相符訊息。
透過下列範例中所示的訊息群組標籤,您可以建立、修改及刪除訊息群組。
