EA&UML日拱一卒 用例圖開篇

創(chuàng)建用例圖
在Package節(jié)點上調出上下文菜單。

選擇【Add?Diagram...】

選擇【UML Behavioral】分類,選擇【Use Case】圖面類型。

上圖中紅框部分就是用例圖常用的圖形要素。
用例圖基本要素
用例

用例是捕獲建模主體需求的一種手段,一般用來描述主體應該做什么。作為用例描述對象的主體可以與一個或多個參與者之間進行協(xié)作。用例定義主體的行為而不必考慮其內部結構。這些行為涉及之間的相互作用參與者和主體,可能會導致主體狀態(tài)的變化以及與其環(huán)境的通信。一個用例可以包括其基本行為的可能變化,包括異常行為和錯誤處理。
參與者

參與者是可能與主題發(fā)生交互的用戶和任何其他系統(tǒng)。
邊界

邊界用于表示作為建模對象的主體的范圍。所有的參與者都應該處于邊界外側。
第一個用例
假設我們在為自動提款機的取款功能建模,這個功能的概要如下:
顯示待機畫面檢測用戶插入銀行卡,執(zhí)行進卡動作顯示語言選擇畫面等待并處理用戶選擇語言提款機顯示用戶認證畫面等待用戶輸入密碼并按下確定按鈕如果密碼錯誤,提示重新輸入密碼如果密碼正確,顯示該銀行卡類型的有效服務根據(jù)用戶選擇結果進入取款額輸入畫面接受用戶輸入的取款額與銀行系統(tǒng)服務器通信,如果余額不足,提示用戶重新輸入如果余額充足,進入處理中畫面,同時將紙幣搬運到出鈔口打開出鈔口擋板等待用戶取走鈔票關閉出鈔口擋板顯示是否需要其他服務畫面如果用戶選擇打印憑條,進入打印中畫面,完成后返回是否需要其他服務畫面如果用戶選擇其他服務,進入對應服務畫面如果用戶選擇取卡,執(zhí)行出卡動作,并提示客戶取卡檢測用戶取卡后顯示待機畫面超過30秒沒有取卡,執(zhí)行吞卡動作
由于我們是在對提款機建模,因此這段腳本每一句都是提款機視角。這點需要注意。
添加邊界
選擇工具條中的
圖標之后,在繪圖區(qū)雙擊鼠標。

輸入建模對象的名稱:ATM。

這個矩形框就是ATM的邊界。
添加用例
選擇工具條中的
并在繪圖區(qū)雙擊鼠標之后,選擇【General】分頁,輸入用用例名:取款。

選擇Scenarios分頁之后,首先輸入如下基本路徑。
顯示待機畫面檢測用戶插入銀行卡,執(zhí)行進卡動作顯示語言選擇畫面等待并處理用戶選擇語言提款機顯示用戶認證畫面等待用戶輸入密碼并按下確定按鈕顯示該銀行卡類型的有效服務根據(jù)用戶選擇結果進入取款額輸入畫面接受用戶輸入的取款額與銀行系統(tǒng)服務器通信,執(zhí)行取款命令進入處理中畫面,同時將紙幣搬運到出鈔口打開出鈔口擋板等待用戶取走鈔票關閉出鈔口擋板顯示是否需要其他服務畫面如果用戶選擇打印憑條,進入打印中畫面,完成后返回是否需要其他服務畫面如果用戶選擇取卡,執(zhí)行出卡動作,并提示客戶取卡檢測用戶取卡后顯示待機畫面
和基本路徑相比,這段描述去掉的分支和異常處理。結果如下:

按照相同的方式,輸入替代路徑和異常路徑:
| 名稱 | 類型 | 內容 |
| 密碼錯誤 | Exception | 如果密碼錯誤,提示重新輸入密碼 |
| 余額不足 | Execption | 如果余額不足,返回取款額輸入畫面 |
| 打印憑條 | Alternate | 如果用戶選擇打印憑條,進入打印中畫面,完成后返回是否需要其他服務畫面 |
| 辦理其他業(yè)務 | Alternate | 如果用戶選擇其他服務,轉入服務選擇畫面 |
| 超時吞卡 | Execption | 超過30秒沒有取卡,執(zhí)行吞卡動作 |
腳本輸入結果如下:

用例添加完成后畫面的樣子。

添加參與者
選擇
圖標之后在畫面中ATM邊界之外適當?shù)奈恢锰砑觾蓚€參與者:客戶和銀行系統(tǒng)。

添加使用關系
選擇
圖標之后分別在客戶和取款用例之間,取款用例和銀行系統(tǒng)之間連線。

完成!
作者著作介紹
《實戰(zhàn)Python設計模式》是作者去年3月份出版的技術書籍,該書利用Python 的標準GUI 工具包tkinter,通過可執(zhí)行的示例對23 個設計模式逐個進行說明。這樣一方面可以使讀者了解真實的軟件開發(fā)工作中每個設計模式的運用場景和想要解決的問題;另一方面通過對這些問題的解決過程進行說明,讓讀者明白在編寫代碼時如何判斷使用設計模式的利弊,并合理運用設計模式。

對設計模式感興趣而且希望隨學隨用的讀者通過本書可以快速跨越從理解到運用的門檻;希望學習Python GUI 編程的讀者可以將本書中的示例作為設計和開發(fā)的參考;使用Python 語言進行圖像分析、數(shù)據(jù)處理工作的讀者可以直接以本書中的示例為基礎,迅速構建自己的系統(tǒng)架構。
覺得本文有幫助?請分享給更多人。
關注微信公眾號【面向對象思考】輕松學習每一天!
面向對象開發(fā),面向對象思考!
