1、用例圖
用例圖描述參與者所理解的系統功能。主要元素是用例和參與者。
用例圖的4個基本組件:參與者(Actor)、用例(Use Case)、關系(Relationship)和系統。
下面以銀行儲蓄系統為例。
(1)用例:用戶和計算機系統間的一次交互,代表系統的一個完整功能,是一組動作序列。系統執行完這組動作序列后將產生一個對參與者有價值的結果。
銀行儲蓄系統的用例:存款、取款、輸入存款信息、打印存單、輸入取款信息、打印余額......
用例圖中用橢圓表示。
(2)參與者:與系統交互的人或物。
銀行儲蓄系統的參與者:業務員、儲戶。
用例圖中用小人表示。
(3)聯系
參與者和用例:通過<<communicate>>關系進行通信。communicate是一種關聯關系,是單向關聯。比如:業務員(角色)->取錢(用例),業務員是通信的啟動者,業務員啟動取錢用例。
參與者和參與者:如果參與者和參與者之間有關聯,可以認為是一種泛化關系。泛化關系就是一般類和特殊類之間的繼承關系。比如汽車和輪船,與交通工具是泛化關系。它們同屬交通工具,用具備各自的特點。
用例和用例:通常有泛化、包含(使用)和擴展。
用例泛化:一個用例可以被特別列舉為一個或多個子用例。"電話預訂"和"網上預訂"泛化為"預訂"。
包含(使用)和擴展的表示是在依賴關系上加構造型,英文描述為:<<include>>(<<use>>)和<<extend>>。
銀行儲蓄系統:
<<include>>關系:一個用例執行的功能總是包括被包含用例的特征。在上圖中,取款的行為序列就包含輸入取款信息、檢查余額、驗證密碼等行為序列,因此取款用例“包含”取款信息用例。
<<extends>>關系:一個用例的執行可能需要其他用例功能來擴展,但主要用途是使基本用例的功能不依賴於擴展用例。在上圖中,取款行為序列要擴展到打印存款單,但取款行為不依賴打印存款單。也就是說,即使不打印存款單,存款行為也可以進行;但是只有存款行為進行時,才會打印存款單。擴展用例是通過基本用例來激活的。
2、用Visio畫用例圖
(1)打開Visio 2010軟件
(2)點擊“新建”->“軟件和數據庫”->“UML模型圖”。
(3)在“模型資源管理器”中右擊“頂層包”或者先新建一個子系統,“新建”->“用例圖”
(4)在左邊的“形狀”->“UML用例”中拖拽“系統邊界”,雙擊繪制界面中的系統邊界,更改系統名稱。
(5)下面就可以拖拽參與者和用例構建自己的用例圖了。
(6)在繪制關系時,用例圖所需要的圖示都在“UML用例”中找到,如果找不到<<communicate>>,則單機菜單上的“UML”->“構造型”,在彈出的“UML構造型”對話框中,點擊"新建",輸入communicate的信息。如下圖所示: