用例(use case),或使用案例、用況,是軟件工程或系統工程中對系統如何反應外界請求的描述,是一種經過用戶的使用場景來獲取需求的技術。每一個用例提供了一個或多個場景,該場景說明了系統是如何和最終用戶或其它系統互動,也就是誰能夠用系統作什麼,從而得到一個明確的業務目標。編寫用例時要避免使用技術術語,而應該用最終用戶或者領域專家的語言。用例通常是由軟件開發者和最終用戶共同創做的。
主成功場景應該包括如下信息:ios
複雜業務的場景較多,場景較爲複雜。在前期的考慮中,很難不遺漏一些業務條件和需求,且這些需求條件還可能發生變化。因此對於複雜業務,編制完整用例且不遺漏情景、良好地安排每一個場景、場景內元素地關係很是困難。
用例圖是描述系統與其餘外部系統以及用戶之間交互的圖形,即用例圖描述了誰將使用
系統,用戶但願以什麼方式與系統交互。用例圖肯定系統中所包含的參與者、用例和二者之間
的對應關係, 它描述的是關於系統功能的一個概述, 描述軟件應具有哪些功能模塊以及這些模
塊之間的調用關係。 用例圖包含了用例和參與者, 用例之間用關聯來鏈接以求把系統的整個結
構和功能反映給非技術人員(一般是軟件的用戶)。
關係算法
關聯(Association):表示參與者與用例之間的通訊,任何一方均可發送或接受消息。架構
泛化(Inheritance):就是一般理解的繼承關係,子用例和父用例類似,但表現出更特別的行爲;子用例將繼承父用例的全部結構、行爲和關係。子用例可使用父用例的一段行爲,也能夠重載它。父用例一般是抽象的。app
包含(Include):包含關係用來把一個較複雜用例所表示的功能分解成較小的步驟;工具
擴展(Extend):擴展關係是指 用例功能的延伸,至關於爲基礎用例提供一個附加功能。測試
依賴(Dependency):表示源用例依賴於目標用例;spa
肯定參與者,包括:設計
對於利益相關人:code
對於開發者來講:繼承
1. 請使用用戶的視角,描述用戶目標或系統提供的服務 2. 粒度達到子用例級別,並用 include 和 exclude 關聯它們 3. 請用色彩標註出你認爲創新(區別於競爭對手的)用例或子用例 4. 儘量識別外部系統和服務
類似系統面對的參與者和用例是類似的,用例之間的關係也是同構的。用戶預期的功能都是類似的,即不一樣的同類系統必定具備一致基本功能以及帶有本身特點的擴展功能。因此體如今用例圖上也是類似的。
不一樣時代對預約的酒店的需求不一樣。可讓篩選算法與時俱進,知足一些不一樣的主流要求。且用戶會須要更加優秀、好用、有參考價值的評價系統,也須要隨時更新。而不一樣地區的消費特色不一樣,旅遊勝地和普通城市用戶對於酒店預訂的需求有差異,能夠在用例圖上突出一些特色。
應該經過創新點在圖中的位置來判斷。若是創新位於較高的父級,則做用比較大。若是是子類或者是被包括的關係,則做用相對較小。
ID | Name | Imp | Est | How to demo |
---|---|---|---|---|
1 | find hotel | 10 | 3 | Find the hotel by name or location or type |
2 | make reservation | 7 | 4 | determine hotel, room type, time and then confirm |
3 | pay reservation | 7 | 3 | payment supported by pay system |
4 | modify reservation | 5 | 2 | modify reservation and hotel make approval |
5 | comment hotel | 4 | 2 | Comment of the hotel and show to others |
根據用戶點方法,對用例分配權重的標準是:
用例 | 業務 | 計算 | 緣由 | UC比重 |
---|---|---|---|---|
查找酒店 | 3 | 2 | 簡單 | |
下訂單 | 7 | 6 | 通常 | |
支付 | 2 | 1 | 簡單 | |
修改訂單 | 3 | 2 | 簡單 | |
評論 | 3 | 2 | 簡單 |