2013-08-29 48 views
6

我想設計一個簡單的embedded system。關於這個的特別之處是我想用UML來設計它的架構。在我使用的其他圖表中,我有一個Sequence Diagram,如下圖所示。如何在UML序列圖中表示中斷?

enter image description here

我想在這裏描繪的是封閉在「LOOP」片段序列被一次又一次地執行,而沒有事件。

圖的最右側的Interrupt Service Routine(ISR)塊是異步執行並生成等待事件的塊。

這裏的問題是,由於事件可能在循環序列中的任何時間產生,每隔一段時間(例如每10ms)發送一次,併發送到「模塊2」,我不知道如何代表這一點。

如果我只是將消息箭頭從「ISR」塊指向「模塊2」,我知道這意味着包含該事件的消息將作爲部分從「ISR」發送到「模塊2」每次循環執行時,但這不是我所需要的。我需要描述這樣一個事實,即從「ISR」到「模塊2」的消息只能每X毫秒發送一次,或者隨時間發送(如果發生硬件中斷)。

有什麼建議嗎?

回答

2

我不是100%肯定的,但我想這不可能只與序列圖(我會繼續看它...)。 我會保留這個序列圖來建模循環核心,並使用活動圖來建模異常。 如下所示,一般的想法是建模至少一個CallBehavior,它將調用你的序列,一個ExceptionHandler來捕捉你的異常,並且處理你的異常,這可以是另一個調用行爲或你想要的。 希望有幫助, Modelio Exception

+0

如果你不得不使用序列圖,這個破解對我來說很有意義。 –

3

序列圖是專門用於描述一個特定的執行。爲了描述所有可能的執行,你應該使用狀態機圖。