UML用例建模解析(二)

Liuwei-Sunny發表於2011-03-06

(1) 關聯關係

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

(2) 泛化關係

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

常見的用例之間的關係有兩種,分別是包含關係和擴充套件關係,下面介紹這兩種關係的含義以及在用例圖中如何表示。

 

(3) 包含關係

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

UML中,包含關係用依賴線(虛線)加一個<<include>>表示,由原始用例指向包含用例,如下圖所示:

(4) 擴充套件關係

擴充套件關係又稱為延伸關係,如果一個用例在執行時可能會使用到另一個用例,或者使用一個新的用例對原有用例的行為進行擴充套件時可以使用擴充套件關係,如倉庫管理員在入庫時發現某種商品在系統中暫不存在,則可以增加新的商品資訊;如果入庫商品均已存在,則無需增加商品資訊,此時用例“增加商品資訊”可以作為用例“入庫”的擴充套件用例。在需要擴充套件的用例(原始用例)中需指定一個擴充套件點(即需擴充套件的位置),在下一節編寫用例文件中將學習如何設定擴充套件點。

UML中,包含關係用依賴線(虛線)加一個<<extend>>表示,由擴充套件用例指向原始用例,如下圖所示:

 

關於包含關係和擴充套件關係箭頭的指向,可以記住兩句口訣:包含進來,箭頭向外;擴充套件出去,箭頭向裡。

除了上述的包含關係和擴充套件關係外,用例之間還存在一種與執行者泛化類似的泛化關係,但不太常見,在這裡不予以詳細介紹。

 

 

【作者:劉偉 http://blog.csdn.net/lovelion

相關文章