[英]UML Use Case diagram I created. Is my usage of include/extend correct?
我只想確定我是否正在使用擴展和正確包含。 如果我在此處某處使用不正確,請指出錯誤的位置以及可能的原因。
https://imageshack.com/scaled/large/163/nlnk.jpg
干杯。
使用<<include>>
和<<extend>>
很簡單:
<<include>>
定義了一個子用例,該用例始終包含在一般用例中: use-case -include-->
sub use-case 。 通常,它用於表示用例的不同部分或可以由其他用例重用的公共部分。
<<extend>>
定義了一個可選的子用例,可以在某些條件下執行(應該在較低級別的設計中定義,而不是在用例圖中定義)。 這里關系的方向與<<include>>
關系相反: 用例 <--extend-
-sub用例 。
將這些規則應用於您的圖表,並找出是否正確。
似乎需要在與<<include>>
鏈接的其他活動之前執行“安全登錄”。 Include意味着用例每次也會運行包含的用例,在這種情況下,這可能不是您想要的(每次會話一次登錄)。 您始終可以創建新的構造型,例如<<precedes>> or <<requires>>
。 持續使用它們將使您傳達自己的意思。
在嘗試區分使用擴展和用例圖之間的區別之前,我會找到這條建議。希望對您有所幫助。 原始建議來自此StackOverflow答案 。
擴展和包含之間的區別
當用例有條件地將步驟添加到另一個一流用例時,將使用Extend。 例如,假設“取現”是ATM機的用例。 “評估費”將擴展“提取現金”並描述有條件的“擴展點”,該條件在ATM用戶未在ATM擁有機構開戶時實例化。 請注意,基本的“提取現金”用例獨立存在,沒有擴展名。
Include用於提取在多個用例中重復的用例片段。 附帶的用例不能單獨存在,沒有附帶的原始用例是不完整的。 僅當重復很重要並且是通過設計(而非巧合)存在時,才應謹慎使用此選項。 例如,在每個ATM用例開始時發生的事件流(當用戶放入他們的ATM卡,輸入其PIN並顯示主菜單時)將是一個不錯的選擇。
另外,從我讀過的每本書中,總是建議盡量使用include和extension 。 保持簡單愚蠢。
許多關系在這里顯然是不正確的。 但是,我認為該圖的主要問題不是正確地使用包含和擴展,而是針對復雜且總體上不清楚的關系。 盡管從理論上講是有效的,但您應避免使用這些關系中的多個層次。
您的圖表確實很難遵循和解釋。
一些重構思路和更正:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.