2013-06-25 69 views

回答

1

使用規則<<include>><<extend>>很簡單:

  • <<include>>限定了子用例是總是包括在一般使用情況下的:用例-include-->子使用 - 案例。通常它用來表示用例的一個不同部分,或者可以被其他用例重複使用的公共部分。

  • <<extend>>限定可選子,可以在一定的條件下(這應該在較低的水平設計來限定,而不是在用例圖)來執行的用例。這裏關係的方向與<<include>>關係相反:用例<--extend-子用例

將這些規則應用到您的圖表並確定它是否正確。

0

看起來「安全登錄」需要在與<<include>>鏈接的其他活動之前執行。 Include意味着用例每次都運行包含的用例,在這種情況下可能不是您想要的(每個會話只有一個登錄)。您始終可以創建新的刻板印象,例如<<precedes>> or <<requires>>。一貫地使用它們可以讓你表達你的意思。

+1

謝謝布魯斯。我決定使用安全登錄作爲先決條件而不是用例,我認爲它使圖更易於管理。 – aenergi

0

當我試圖區分使用擴展和打算用例圖之間的區別之前,我發現這條建議。我希望它也可以幫助你。最初的建議來自this StackOverflow answer。之間

差分延伸,並且包括

擴展時使用一個用例有條件地添加步驟到另一個 第一類的用例。例如,想象一下「Withdraw Cash」是ATM機使用的一種情況。 「評估費」將擴展Withdraw Cash並且 描述當ATM用戶沒有在ATM所屬機構存款時實例化的條件「擴展點」。注意 基本的「Withdraw Cash」用例本身,不帶 擴展名。

包含用於提取在多個用例中複製的用例碎片。包含的用例不能單獨存在,如果沒有包含用例,則原始用例不完整。這個 應該謹慎使用,只有在重複是 顯着並且通過設計(而不是巧合)存在的情況下。例如,在每個ATM 使用案例(當用戶放入其自動提款卡,輸入其PIN,並且 顯示爲主菜單)開始時發生的事件流將是包括的一個很好的候選者。

此外,從每一本書我讀過,它總是建議使用包括和擴展謹慎。保持簡單愚蠢。

0

許多關係在這裏顯然不正確。然而,我認爲這個圖的主要問題不是包含和擴展的正確使用,而是複雜和整體不明確的關係。儘管在法律上有效,您應該避免使用這些關係中的多個關卡。

你的圖很難跟蹤和解釋。

一些重構的思路和更正:

  • 秀「安全登錄」類分開,只能用演員,然後採用下列先決條件全部用例「包括」它鏈接:「用戶正在securelly登錄「
  • 」5分鐘後註銷「應該是自己的用例,只與Actor連接,並具有2個先決條件:」用戶已安全登錄「和」用戶未激活5分鐘「
  • 刪除包含「5分鐘後註銷」和「發起呼叫」。延長可能更合適
  • 扭轉包括「轉移資金...」和「確保足夠的資金......」之間的方向 - 很明顯,第一個包括第二個而不是反之亦然
  • 考慮在2個或更多簡單和小型的相關聯合國家圖表中打破一個圖表:例如,所有登錄/註銷都可以單獨顯示並簡化視圖。在一張圖上,您不應該有超過5-7個用例