以 UML 順序圖表說明具有片段的控制流程
在 Visual Studio Ultimate 的 UML 順序圖表中,「合併片段」(Combined Fragment) 可讓您顯示迴圈、分支和其他替代項目。
合併片段是由一個或多個「互動運算元」(Interaction Operand) 所構成,且每一個都會包圍一個或多個訊息、互動使用或合併片段。
注意事項 |
---|
本主題說明順序圖表中的片段。 如需如何讀取 UML 順序圖表的詳細資訊,請參閱 UML 順序圖表:參考。 如需如何繪製 UML 順序圖表的詳細資訊,請參閱 UML 順序圖表:方針。 |
圖中顯示的項目如下。
合併片段。 合併片段有數種。 此範例為其他合併片段,可用來顯示可能發生的替代訊息序列。
互動運算元。 每一個合併片段至少包含一個互動運算元,而互動運算元可包含訊息、互動使用和較小的合併片段。 在此範例中,其他合併片段有兩個互動運算元,會顯示兩個替代的訊息序列。
您可以按一下互動運算元的內部,分別選取各個互動運算元。 在此範例中,頂端的互動運算元已選取,因此可以看見它的界限。 通常只能看見互動運算元之間的分隔行。
注意事項 若要選取頂端的互動運算元,您不可在太接近合併片段頂端的位置按下滑鼠。
成立條件。 您可以為每一個互動運算元設定成立條件。 這樣即可說明互動運算元內的訊息將在何種情況下執行。
建立合併片段
如需您可建立之片段類型的清單,請參閱合併片段的類型。
若要建立合併片段
選取全部在相同的生命線或執行位置開始的一則訊息或訊息序列。
注意事項 如果您選取多個訊息,則這些訊息必須形成不中斷的序列。
以滑鼠右鍵按一下其中一則訊息,指向 [範圍陳述式],然後按一下需要的合併片段類型,例如 [其他合併片段]。
新的合併片段隨即出現。 標題會指出您選取的合併片段類型,例如 [其他]。
合併片段內會有一個包含您所選取訊息的片段。
您可以將更多互動運算元加入至幾種不同的合併片段中。
若要將新的互動運算元加入至合併片段
以滑鼠右鍵按一下互動運算元 (2) 內、任何包含的片段外,以及合併片段標題下方的空白區域。
指向 [加入]。
按一下 [Before 互動運算元] 或 [After 互動運算元]。
您可以使用訊息工具將訊息加入至新互動運算元內,或是複製和貼上現有的訊息。
您可以設定互動運算元的 [成立條件] 屬性,說明執行內含訊息的各種情況。 例如,在 [迴圈] 合併片段中,您可以使用成立條件指定迴圈繼續執行的條件。 在 [其他] 合併片段中,您可以為每一個互動運算元指定不同的條件。
若要設定互動運算元的成立條件
按一下互動運算元 (2) 內、任何包含的片段外的空白區域。
選取框線會出現在互動運算元的周圍,以及成立條件的周圍。
在 [屬性] 視窗中的標題會顯示 [互動運算元]。
輸入成立條件。
這個條件將出現在片段 (4) 頂端附近。
您可以設定某些合併片段類型的屬性。
若要設定或檢視合併片段的屬性
以滑鼠右鍵按一下合併片段的標題,然後按一下 [屬性]。
注意事項 不同類型的合併片段會擁有不同的屬性。
合併片段的類型
說明控制流程的片段
簡單的順序圖表可顯示單獨一種典型序列。 您可以使用下列類型的合併片段說明不同情況下發生的變化。
片段類型 |
說明 |
---|---|
Opt |
選擇性。 包圍不一定會發生的序列。 您可以在成立條件中指定發生的條件。 |
ALT |
包含片段清單,其中包含替代的訊息序列。 任何情況下都只會發生一個序列。 您可以在每一個片段中放入成立條件,表示在何種情況下可以執行該片段。 else 成立條件表示片段應在沒有其他成立條件為 true 時執行。 如果所有成立條件都是 false 且沒有 else,則不會執行任何片段。 |
Loop |
片段會重複執行幾次。 您可以在成立條件中指出重複執行的條件。 迴圈合併片段擁有 [Min] 和 [Max] 屬性,表示片段可重複的最少和最多次數。 預設為無限制。 |
Break |
如果執行此片段,就會放棄序列的其餘部分。 您可以使用成立條件指出中斷將發生的條件。 |
Par |
平行。 片段中的事件可以交錯。 |
Critical |
用於 Par 或 Seq 片段內。 指出此片段中的訊息不得與其他訊息交錯。 |
Seq |
有兩個以上的運算元片段。 涉及相同生命線的訊息必須依照片段的順序發生。 只要未涉及相同的生命線,不同片段的訊息就可以平行交錯。 |
Strict |
有兩個以上的運算元片段。 片段必須依照指定的順序發生。 |
關於如何解譯序列的片段
根據預設,順序圖表會說明可能發生的一系列訊息。 在正在執行的系統中,可能會發生您未選擇在圖表上顯示的其他訊息。
下列片段類型可以用來變更此解譯。
片段類型 |
說明 |
---|---|
Consider |
指定此片段說明的訊息清單。 其他訊息可能在正在執行的系統中發生,但是對於此說明的目的而言並不重要。 在 [訊息] 屬性中輸入清單。 |
Ignore |
此片段未說明的訊息清單。 這些訊息可能在正在執行的系統中發生,但是對於此說明的目的而言並不重要。 在 [訊息] 屬性中輸入清單。 |
Assert |
運算元片段只會指定有效的序列。 通常用於 Consider 或 Ignore 片段內。 |
Neg |
此片段中的序列不得發生。 通常用於 Consider 或 Ignore 片段內。 |