包含(include)是兩個用例之間的有向關系丙曙,?用于表示包含用例的行為被插入(添加)到基礎用例的行為中处铛。
該包含關系可用于:
通過將其分成幾個用例來簡化大型用例殴瘦,
提取兩個或多個用例行為的共同部分一喘。
大型用例可能會有一些行為可能會分離到不同的較小用例中沾谜,以便使用UML包含關系將其包含在基本用例中敛惊。此操作的目的是模塊化行為渊鞋,使其更易于管理。
用例B從較大的用例A中提取到一個的用例中瞧挤。
用例和C從較大的用例A中提取到單獨的用例中锡宋。
當兩個或多個用例具有某些共同行為時,可以將此公共部分提取到單獨的用例中特恬,以便由具有UML包含關系的用例包含在內(nèi)执俩。
用例C是從用例A和B中提取出來的,兩個用例都使用UML包含關系來重用癌刽。
包含的用例的執(zhí)行類似于編程中的子程序調(diào)用或宏命令役首。?在恢復執(zhí)行包含用例之前,包含用例的所有行為都在包含用例中的單個位置執(zhí)行显拜。
請注意衡奥,雖然UML 2.x定義?了擴展關系的擴展點,但沒有“包含點”來指定包含的包含位置或條件远荠。
包括用例取決于基礎用例的添加矮固,這是必需的而非可選的。這意味著包含用例本身并不完整譬淳,因此將包含用例稱為抽象用例(abstract use cases)是有意義的?档址。直到UML 2.5的UML 2.x規(guī)范都沒有提到抽象用例盹兢。許多其他UML源將抽象用例定義為包含用例,而實際上它必須是另一種方式:包括用例是抽象用例守伸。請參閱有關抽象用例定義的討論?绎秒。
包括關系由虛線開放箭頭由基礎用例指向包含用例。箭頭標有關鍵字?include?尼摹。
結帳用例包括幾個用例 – 掃描項目替裆, 計算總計和稅金以及付款
大而復雜的Checkout用例提取了幾個用例,每個較小的用例描述了一些邏輯行為單元窘问。請注意,包括Checkout用例在內(nèi)宜咒,它本身就會變得不完整惠赫,并且需要包含的用例才能完成。
存款資金和提款現(xiàn)金用例包含客戶身份驗證用例故黑。