一、用例圖的定義:
由參與者(Actor)、用例(Use Case)以及它們之間的關系構成的用於描述系統功能的動態視圖稱為用例圖。用例圖上繪制一個參與者(表示一個系統用戶),可繪制一個人形符號。參與者和用例之間的關系使用帶箭頭或者不帶箭頭的線段來描述,箭頭表示在這一關系中哪一方是對話的主動發起者,箭頭所指方是對話的被動接受者。
用例圖描述了系統提供的一個功能單元.用例圖的主要目的是幫助開發團隊以一種圖形化的方式理解系統的功能需求,包括給基於基本流程的"角色"關系,以及系統內部用例之間的關系。使用用例圖可以表現出用例的組織關系。這種組織關系包括整個系統的全部用例或者完成相關功能的一組用例.
二、用例之間的關系
1、 包含關系
1)包含關系指用例可以簡單地包含其他用例具有的行為,並把它所包含的用例行為作為自身行為的一部分。在UML中,包含關系是通過帶箭頭的虛線段加<<include>>字樣來表示,箭頭由基礎用例(Base) 指向被包含用例(Inclusion) 。
包含關系代表着基礎用例會用到被包含用例,具體的講就是將被包含用例的事件流插入到基礎用例的事件流中。需要注意的是,同等語義的關系被表述為使用(uses) 。
2)在處理包含關系時,具體的做法就是把幾個用例的公共部分單獨的抽象出來成為一個新的用例。主要有兩種情況需要用到包含關系:
A) 第一,多個用例用到同一段的行為,則可以把這段共同的行為單獨抽象成為一個用例,然后讓其他用例來包含這一用例。
B) 第二,某一個用例的功能過多、事件流過於復雜時,我們也可以把某一段事件流抽象成為一個被包含的用例,以達到簡化描述的目的。
2、擴展關系
1)在一定條件下,把新的行為加入到已有的用例中,獲得的新用例叫做擴展用例(Extension) ,原有的用例叫做基礎用例(Base) ,從擴展用例到基礎用例的關系就是擴展關系。一個基礎用例可以擁有一個或者多個擴展用例,這些擴展用例可以一起使用。
3、泛化關系
用例的泛化指的是一個父用例可以被特化形成多個子用例,而父用例和子用例之間的關系就是泛化關系。在用例的泛化關系中,子用例繼承了父用例所有的結構、行為和關系,子用例是父用例的一種特殊形式。子用例還可以添加、覆蓋、改變繼承的行為。在UML中,用例的泛化關系通過一個帶有空心三角箭頭的直線從子用例指向父用例來表示。
泛化的示例:銀行存款有兩種方式,一種是銀行櫃台存款,一種是AT M機存款。在這里,銀行櫃台存款和AT M機存款都是存款的一種特殊方式,因此“存款” 為父用例,“銀行櫃台存款” 和“ATM 機存款” 為子用例。
實例演示:
下面的用例圖是我根據《機房收費系統》中的操作員的權限進行繪制的: