我該如何在UML活動圖中描述這一點?
最新(earliest_start_date,早到(latest_start_date,起始日期))
,這意味着:從latest_start_date和起始日期最早,如果以後再之前的判決結果使用earliest_start_date。 我嘗試了鑽石,但我想我需要更多一點。
希望你能幫幫我
謝謝。
我該如何在UML活動圖中描述這一點?
最新(earliest_start_date,早到(latest_start_date,起始日期))
,這意味着:從latest_start_date和起始日期最早,如果以後再之前的判決結果使用earliest_start_date。 我嘗試了鑽石,但我想我需要更多一點。
希望你能幫幫我
謝謝。
最複雜的部分是決策節點將所收到的令牌(即「值」)傳遞給選定的邊緣,那麼您需要明確說明值取決於執行的是哪個分支。如果模擬start_date
作爲一個對象流(其中的start_date
值流經圖)和earliest_start_date
和latest_start_date
是在範圍變量或常量,則可以表示該操作爲:
(注我假設earliest<latest
爲了簡化分支) 上面的「鑽石」是決策節點。根據每個邊緣的括號之間給出的分支(即條件),選擇三個分支之一。較低的菱形是合併節點(其中可選執行路徑相遇)。在守衛的表示中,我認爲<
運算符適用於start_date的類型。
另一種方法是編寫一個表示操作的轉換。在這種情況下,ActionState2
的輸入將是轉換的結果,其中start_date
是ActionState1
的輸出。
第三種方法是寫入操作,其中執行這種計算動作的後置條件(即具有附連到動作原型«postcondition»
一個約束)。
如果Latest
和Earliest
被定義爲在模型中的功能,後置條件是:
result = Latest (earliest_start_date,
Earliest (latest_start_date, start_date))
如果start_date
類型定義min
和max
,後置條件可被寫爲:
result = min(Set{latest_start_date,
max(Set{earliest_start_date,start_date})});
(即最小值由a)latest_start_date組成的集合,b)由earliest_start_date和start_date組成的集合的最大值。
如果<
操作者用於start_date
類型定義,後置條件是:
result = if start_date<earliest_start_date
then earliest_start_date
else
if start_data>latest_start_date
then latest_start_date
else start_date
endif
endif
您也可以表示它作爲一個ConditionalNode(即選擇一箇中的一些數目的替代品的一個結構化的活動節點),但是沒有爲條件節點定義的標準符號。
什麼是latest_start_date和earliest_start_date?常量?變量?輸入參數? 將start_date建模爲變量還是作爲對象流? – Javier 2013-02-27 15:50:15
這些都是常量 – 2013-02-27 15:59:46
是否需要最早的<最新的,或可能不是這樣的? – Javier 2013-02-27 16:03:29