2015-04-29 25 views
1

在搜索到我擁有的網絡和一些舊式書籍後,我仍然沒有找到如何爲特定用例建模活動的答案。 我對UML以及活動圖很新穎。如何在UML活動圖上對可選操作建模

活動爲添加酒店。這是虛構的,但問題與我的問題完全相同。我的合同阻止我談論第三方的真實交易。

在此活動的用戶提供必要的細節,並有他可以隨時選擇兩種可選的動作,而在加入酒店活動:

  1. 加入連鎖酒店
  2. 添加會員計劃

如上所述,這些是可選的,而不是強制性的。用戶也可以繼續保存輸入的數據。然而,當選擇其中一個動作時,我想應該調用另一個活動圖,命名與用戶所做的選擇相同。在此活動中輸入所有相關內容,並在端點處用戶返回到添加酒店活動,之後用戶可以選擇再次選擇可選活動或繼續保存提供的數據。

唯一有點答非所問我發現了this one

但據我瞭解,叉指後,所有動作都流之前進行後加入仍將繼續。 而且在做出決定的情況下,只能選擇一個選項。

上述操作1和2也可從應用程序中的其他位置獲得。我只需要讓他們在上添加酒店活動。

那麼我將如何去建模在活動流程中始終可用的可選操作?爲什麼要這樣做(如果閱讀後不明顯) 另外,如果這些可選操作是Atomic操作還是CallBehavior操作,是否重要?就像說的,我對UML相當陌生,所以我很可能會錯誤地解釋一些事情。

回答

2

假設分支將在所有路徑中繼續,這是正確的。爲了使一個可選的過程簡單地使用決定節點(看起來像一個菱形)。從那裏,您可以繼續進行兩項可選操作或跳過。最後再次用同樣的菱形加入路徑來合併可選路徑。

基本上它看起來像這樣(不考慮你的活動的所有細節考慮在內),

enter image description here 不理會有關不同的操作所有這些模糊的細節。原子足夠一開始。

+0

感謝您的快速回答。你的建議很容易理解。但是,我的問題是,選擇添加忠誠計劃後,我仍然需要能夠選擇添加酒店連鎖店。我是否可以繼續進行合併,返回提供詳細信息?如果是這樣,這是否意味着第二個菱形可以省略? 我將第一個菱形的中間邊緣視覺化爲前往端點,其他人前往可選動作,並將動作的輸出邊緣返回到提供細節。 猜猜我剛剛給我的自己很難與此。你肯定會把我推向正確的方向。 –

+0

我只會回到「添加忠誠計劃」的決定,所以在此之後,您仍然可以轉到「添加酒店連鎖店」或直接轉到合併節點。 –

+0

謝謝吉爾特。這很清楚。 –