用例的概念
在軟件和系統工程中,用例是一系列操作或事件步驟,通過分析用戶的使用場景來獲取需求。每個用例會提供一個或多個場景,用場景說明系統如何和用戶及其他系統交互。
用例和場景的關係?什麼是主場景或 happy path?
每個用例提供了一個或者多個場景。場景是使用場景,說明系統的用途、如何產生交互
主場景是每一個用例中都包含的,對應於系統的主要交互,通常是成功的場景。
happy path:在測試用例時沒有出現預期之外結果的場景。在用例建模中,happy path的執行者順利完成了目標。
用例有哪些形式?
- 簡潔性:通常是用自然語言描述的一段話,即主要的成功場景。
- 隨意型:想到哪裏寫哪裏,可以儘可能覆蓋場景
- 完整型:最詳細,包括了條件和假設
對於複雜業務,爲什麼編制完整用例非常難?
場景數量比較多而且複雜,場景之間有關聯。完整版本需要熟悉整個流程中的方方面面,還需要考慮到各種情況。
什麼是用例圖?
用例圖是由參與者、用例、邊界和關係構成的用於描述系統功能的視圖,是外部用戶即參與者可以觀察到的系統功能的模型圖,是系統的藍圖。
用例圖的基本符號與元素?
-
Actor:一個小人
-
用例:一個圓框
-
系統邊界:一個方框
-
關聯關係:虛線,箭頭指向消息的接受方
-
include關係:虛線箭頭加上《include》標誌,箭頭方向指向被包含者
-
extends關係:虛線箭頭加上《extends》,指向被繼承者
-
泛化關係:實線箭頭,箭頭是個三角形,指向父用例
用例圖的畫法與步驟
- 確定系統邊界
- 確定參與者:確定誰使用該系統主要功能,需要該系統的支持以完成其工作,需要維護、管理該系統,保持該系統處於工作狀態,對本系統結果感興趣,與本系統有關的人或系統等。
- 識別用例:特定參與者希望系統提供什麼功能,由哪個參與者觸發、當系統改變狀態時,是否通知參與者、是否存在影響系統的外部事件等。一般以動詞開頭描述某件事情。
- 確定用例之間的關係:思考用例之間的業務關係,如包含關係、擴展關係和泛化關係。
- 確定關聯的外部系統
用例圖給利益相關人與開發者的價值有哪些?
-
確定開發需求
-
易於傳達需求
-
指導開發,協助人員分工
2、建模練習題(用例模型)
選擇2-3個你熟悉的類似業務的在線服務系統(或移動 APP),如定旅館(攜程、去哪兒等)、定電影票、背單詞APP等,分別繪製它們用例圖。並滿足以下要求:
請使用用戶的視角,描述用戶目標或系統提供的服務
粒度達到子用例級別,並用 include 和 exclude 關聯它們
請用色彩標註出你認爲創新(區別於競爭對手的)用例或子用例
儘可能識別外部系統和服務
然後,回答下列問題:
爲什麼相似系統的用例圖是相似的?
因爲主要場景類似。比如搜索、登陸、註冊。而且外部系統往往都是該領域的巨頭,巨頭只有一個。
如果是定旅館業務,請對比 Asg_RH 用例圖,簡述如何利用不同時代、不同地區產品的用例圖,展現、突出創新業務和技術
- 定製個人喜好,把它放在最顯眼的位置
- 根據旅遊路線定製酒店方案
如何利用用例圖定位創新思路(業務創新、或技術創新、或商業模式創新)在系統中的作用
對創新的用例進行高亮標註。可以方便開發人員和投資方快速找到核心競爭力及可能帶來的結果。
請使用 SCRUM 方法,選擇一個用例圖,編制某定旅館開發的需求(backlog)開發計劃表
ID | 名稱 | Imp | Est | How | Notes |
---|---|---|---|---|---|
1 | 註冊登錄 | 40 | 4 | 註冊時輸入手機號然後接收驗證碼 | 一次登錄長期運行 |
2 | 搜索旅館 | 20 | 5 | 提供不同模式的搜索和排序,輸入字符串返回匹配結果 | 智能排序,但用戶可以選擇模式 |
3 | 預定房間 | 20 | 3 | 選擇入住和離開的日期 判斷這些時間內是否可以入住 | 需要調用日期API |
4 | 支付房費 | 25 | 2 | 15分鐘內支付失敗則取消訂單 | 對接微信支付接口,完成後需要發短信給客戶 |
5 | 查詢訂單 | 10 | 1 | 檢查當前訂單狀態 |
根據任務4,參考 使用用例點估算軟件成本,給出項目用例點的估算
用例 | 事務 | 計算 | 原因 | UC權重 |
---|---|---|---|---|
註冊登錄 | 4 | 2 | 常規 | 簡單 |
搜索旅館 | 3 | 2 | 性能要求高 | 平均 |
預定房間 | 3 | 4 | 數據同步問題 | 複雜 |
支付訂單 | 3 | 1 | 數據同步問題,但主要是外部系統 | 平均 |
查詢 | 3 | 1 | 簡單 |