通常一個用例對應一項功能或需求,代表程式的一條執行路徑。撰寫用例的思路是:假設聊天程式已經完成,使用者將如何操作?這些操作步驟即構成用例。用例的特點在於每次針對單一功能編寫,最後依據用例撰寫代碼,從而完成整個程式的開發。本專案的需求僅有登入、發送訊息、接收訊息、登出或關閉四項基本功能,上述分析即釐清這幾項功能的具體內容。接下來我們先撰寫第一個用例:登入。
在開始前,先釐清「客戶端」與「伺服端」的概念。因為程式僅支援兩人(兩台機器)對話,大致可繪製如下連線架構圖:

我們期望使用者 A 與使用者 B 進行對話,因此必須在他們之間建立連線。雖然「使用者 A」與「使用者 B」地位對等,但按慣例:發起連線請求的一方稱為客戶端(本地端),另一端稱為伺服端(遠端)。所以登入過程,實際上就是「使用者 A」連線至「使用者 B」的過程,亦即客戶端連線至伺服端的過程。在分析程式流程時,我們總將其分為兩部分:一為發起連線、發送訊息的一方(本地端);一為接受連線、接收訊息的一方(遠端)。
| 主路徑 | 可選路徑 |
|---|---|
| 1. 開啟應用程式,顯示登入視窗 | |
| 2. 輸入使用者名稱 | |
| 3. 點擊「登入」按鈕,登入成功 | 3. 「登入」失敗:若使用者名稱為空,重新進入第 2 步 |
| 4. 顯示主視窗,顯示登入的使用者名稱 | |
| 5. 點擊「連線」,連線至遠端 | |
| 6. 連線成功 | 6. 連線失敗:提示使用者連線不成功 |
| 6.1 提示使用者,連線已經成功 | |
| 5. 在使用者介面變更控制項狀態 | 5.2 「連線」置灰,表示已連線 5.3 「登出」亮色,表示可登出 5.4 「發送」亮色,表示可發送訊息 |
此處用例名稱為「登入與連線」,括號註明「本地端」,意指登入與連線是客戶端(發起連線一方)採取的動作。同樣,我們也需要記錄當客戶端連線至伺服端時,伺服端所採取的動作。
| 主路徑 | 可選路徑 |
|---|---|
| 1-4 同客戶端 | |
| 5. 等待連線 | |
| 6. 若有連線,自動在使用者介面顯示「遠端主機連線成功」 |
發送訊息時,雙方已完成登入並建立連線,因此我們只需關注發送流程:
| 主路徑 | 可選路徑 |
|---|---|
| 1. 輸入訊息 | |
| 2. 點擊發送按鈕 | 2. 未輸入訊息,重新回到第 1 步 |
| 3. 在使用者介面上顯示發出的訊息 | 3. 伺服端已斷線或關閉 3.1 在客戶端介面顯示錯誤訊息 |