2015-11-13 58 views
2

我想創建一個UML序列圖(見下文),其中有兩個條件(狀態等於foo或bar)的alt框架。在foo的情況下,我發送從A到B的同步消息,獲取返回消息,然後繼續序列圖的其餘部分(調用spam())。在酒吧的情況下,我發送另一個從A到C的同步消息,但不會有任何回報。我試圖在SW中建模一個函數調用,它不會返回(它會在信號量上永遠阻塞),所以在這種情況下我將永遠不會進入垃圾郵件()。這可以用序列圖表示嗎?我可以排除返回值,但這隻會告訴我,沒有返回,而不是根本沒有回報。這隻能通過將圖分解爲兩個並分別處理這些條件來表示,還是有更好的圖來表示這一點?用UML建模非返回調用

enter image description here

+2

如果您將包含您正在處理的圖表的圖像,這將會容易得多。 –

+0

@Geert Bellekens我已經按照您的建議添加了一張圖片 – lasplund

+0

現在我明白了您的問題:)。我不知道有什麼更好的方法來分解兩個圖表,但也許別人會這樣做。 –

回答

0

您可以將呼叫和收益之間的持續時間約束。

在正常情況下,這種約束可以用一個整數加一個時間單位來表示,例如「10秒」或一個範圍如「[1,10)秒」。

你的問題很有趣,你想模型無限。 我會去這樣做是這樣的:

enter image description here

不過,我必須承認,我不能確定,如果我的配方違反OMG's UML 2.5 standard。我沒有發現標準中明確禁止使用「無限」作爲時間單位的任何內容;該標準確實提到時間應該是相對的。