什麼時候使用用例關係的擴充套件(Extend)與包含(Include)?
UML用例關係的包含和擴充套件對於許多業務分析師來說仍然是一個混亂的問題。

包含關係和擴充套件關係都是建立在一個基本用例上的。理論上,業務分析師可以編寫一個不使用包含或擴充套件關係的基本用例,。然而,隨著用例變得越來越大和更復雜,選擇使用include或extension的眾多備用流可以減少基本用例的複雜性,並提高用例模型的整體可理解性。
那麼,業務分析師何時會選擇包含用例呢?
建立包含用例的最主要原因是重用。包含關係可以用來分割出一系列連續的步驟,這些步驟隨後可以被其他用例重用。包含用例通常可以是它自己的獨立用例,它直接由actor發起,但不是必須的。但是,它是包含它的use can中的必需步驟,並且它包含在基本用例中的單個特定位置。這意味著如果沒有包含用例,基本用例就不完整。另外,根據關聯箭頭的方向,您可以看到基本用例知道所包含的用例的存在。但是,包含的用例不知道包含它的用例。
業務分析師何時使用擴充套件關係?
擴充套件關係用於分割條件或可選功能,並且可與替代流相媲美。通常在編寫用例時,備用流可能變得非常複雜,或者可能跨越其他子流。這就是將備用流提取為擴充套件基本用例的單獨用例的意義。這稱為擴充套件用例。當然,如果要從主流中提取的流是合理的,則這是有利的。如果這兩者太混雜,那麼擴充套件用例將難以理解
擴充套件用例知道並可以修改基本用例的行為。但是,基本用例不瞭解擴充套件用例。擴充套件用例可以有一個或多個稱為段的行為序列,用於修改基本用例。每個段在基本用例中指出的特定擴充套件點處擴充基本用例。另外,擴充套件用例定義了擴充基本用例的條件。
總結一下:
包括關係用於分割出可重複使用的一系列步驟
如果沒有包含用例,則基本用例不完整(使用包括所需的行為)
包含用例不知道使用它的用例(從系統編碼的角度來看,這變得更加重要)
擴充套件關係
與備用流類似,它包含可選或條件行為
沒有基本用例的擴充套件用例是不完整的
擴充套件用例通常用於將在以後實施的行為
如果增強現有系統,使用Extend可以幫助將新功能與舊功能分開