關聯關係

  關聯關係是指執行者與用例之間的關係,又稱為通訊關係,如果某個執行者可以對某個用例進行操作,它們之間就具有關聯關係,如下圖所示,“經理”有一個功能為“檢視庫存報表”,因此可以在執行者“經理”和用例“檢視庫存報表”之間建立一個關聯關係,關聯關係用實線表示。

泛化關係

  執行者之間的關係只有一種,即泛化關係,用一個帶有空心三角形的實線表示,如下圖所 示,在該圖中,倉庫管理員、系統管理員、經理都是員工的一種,因此員工擁有的功能這三 者都擁有,如登入、修改個人資訊等,為了減少用例的個數並且使系統更加符合面向物件設 計規範,可以對執行者進行泛化,將各類執行者都具有相同的功能移至父執行者,而將每類 執行者特有的功能保留在子執行者中。

     

  參與者:經理,安全主管,保安               用例:管理人事,批准預算,批准安全證書,監視周邊

  在參與者之間不存在泛化關係的情況下,各個參與者參與 用例的情況分別是:經理參與用例管理人事和批准預算;安全主管參與用例批准安全證書;保安參與用例監視周邊。由於安全主管與經理,安全主管與保安之間泛化關係的存在,意味著安全主管可以擔任經理和保安的角色,就能夠參與經理和保安參與的用例。這樣,安全主管就可以參與全部4個用例。但經理或者保安卻不能擔任安全主管的角色,也就不能參與用例批准安全證書。

常見的用例之間的關係有兩種,分別是包含關係和擴充套件關係

包含關係

  如果多個用例都具有一部分相同的行為,可以將這部分相同的行為作為一個單獨的用例抽取出來,與原來的用例形成一個包含關係。如倉庫管理員在進行入庫、出庫等操作之前需要先登入,登入是入庫、出庫流程的基本組成部分,因此用例“入庫”和“出庫”包含用例“登入”。為了更加清晰地描述多個用例的相同行為,在用例圖中提供了用例與用例之間的包含關係。在UML中,包含關係用依賴線(虛線)加一個<<include>>表示,由原始用例指向包含用例,如下圖所示:

  

擴充套件關係 

  擴充套件關係又稱為延伸關係,如果一個用例在執行時可能會使用到另一個用例,或者使用一個新的用例對原有用例的行為進行擴充套件時可以使用擴充套件關係,如倉庫管理員在入庫時發現某種商品在系統中暫不存在,則可以增加新的商品資訊;如果入庫商品均已存在,則無需增加商品資訊,此時用例“增加商品資訊”可以作為用例“入庫”的擴充套件用例。
 在UML中,包含關係用依賴線(虛線)加一個<<extend>>表示,由擴充套件用例指向原始用例,如下圖所示:

        

  用例之間擴充套件和包含關係 :

  用例的上下文是:短途旅行但汽車的油不足以應付全部路程。那麼為汽車加油的動作在旅行的每個場景(事件流)中都會出現,不加油就不會完成旅行。吃飯則可以由司機決定是否進行,不吃飯不會影響旅行的完成。

圖解總結