2015-11-06 131 views
0

enter image description here狀態機定時器自我轉換

請向我解釋如果我正確地理解這三個狀態機的含義。

1,狀態σ輸入動作稱爲(這是什麼的時刻),然後定時器設置。當計時器觸發器Acion1被執行時,然後執行StateA Exit動作(也就是無),然後重複整個循環。所以狀態σ輸入動作,把定時器設置等,這讓人有種投票與措施1

2,StateB輸入動作被調用,定時器設置和10ms之後觸發和執行措施2。定時器不會被更新,所以它是一種延遲動作的狀態

3,StateC輸入動作,Timer被設置,當觸發器接着Action3被調用,然後StateC退出動作,最後StateD Enter動作是執行。

請確認或更正它是否正確。

回答

1

1:您的描述是正確的,但有一個例外:退出操作在執行之前執行至少執行動作1,這就是我如何解釋UML 2.5規範的方式。第14.2.3.4.6節說:

如果組合狀態有一個已定義的退出行爲,它會在任何效果之前執行(...)傳出外部轉換的行爲。

我認爲您可以放心地假設這對非複合狀態也是如此,但UML 2.5規範在這方面應該更加明確。

2:我不認爲這是正確的UML符號,所以我無法證實或否認你的描述。

3:此狀態機圖未指定初始狀態是否是統計中心或說明。如果它是StateC,那麼你的描述是正確的,除了StateC的退出動作在Action3之前執行。爲了明確起見,該圖應該具有初始假狀態(實心圓),並且從初始假狀態到StateC的轉換。

+0

清晰,我認爲 - 正確的答案。中間情況應該是一種定時的「行動」,但你是對的,很可能它不是標準的,所以我就把它留下。 – user2281723

0

一般狀態是用圓角矩形繪製的。

1)沿着過渡的符號是<trigger>/<effect>After(10)的語義留下了一些解釋空間。所以當<trigger>啓動時,它將執行<effect>並返回到相同的狀態。

2)我不知道這種表示法。你可以指定這樣的入口/出口/出口操作 enter image description here

3)就像1,但進入一個新的狀態。

+0

你說得對,我是一個懶惰與圖形,它應該被四捨五入rectngle。據我所知「After」和「At」是標準的UML2定時器觸發器。 「之後」設置在給定時間之後觸發的單次觸發定時器(以毫秒爲單位,我猜),並且「At」也是一次觸發定時器,但不是現在的相對時間點,而是絕對時間值例如6:00 AM)。我的問題是我應該在什麼時候設置計時器,以及在轉換時何時取消計時器。在輸入操作之後或之前,我應該設置嗎? Exit同樣適用。 – user2281723

+0

你說得對。 UML 13.3.4表示它們。但我認爲這是廢話,因爲它在語義上無所謂。示例時間不是以UTC寫的,請說什麼時區?相對標記:5分鐘後 - 呃,確切的說法?對於雞蛋來說沒關係+ - 30秒。對於技術設備,您可能需要幾微秒。現在需要上述3個符號中的哪一個取決於您的用例(您未描述)。 –