關于系統用例的書籍,太多。不想在這里去解釋什么是系統用例。但為什么要寫系統用例呢,又如何寫好呢?
寫系統用例是為了更清晰的展示系統的業務場景的功能實現。也是為了給程序員參考的一個圖。同時也是與客戶溝通的橋梁。很多東西,千言萬語,不如一張圖那么直觀。但在很多項目中,用例分析這個過程被忽略而過。
程序員往往只看到文本的需求,就自己開始做了,對于小項目或許這樣可以,如果是大項目,后期肯定崩潰。
一個良好的系統用例,用圖形的方式描述了客戶的要求:
1. 有那些人去參與這個事件。
2.這些人具體要做什么 (可以理解為調用的方法)
3.這些人做這個事情,需要什么先決條件 (可以理解為參數,包括權限等等)
4.這些在做這些事情的時候,需要第三方幫忙嗎?或者需要第三方系統接口嗎?
5.做完這些事情,應該達到一個什么樣的目的,也就是結果,這個結果會是下一個用例的輸入嗎?
當你有著人物,事件,參數,輸入,輸出的一張圖 擺在眼前的時候,所有的事情的都清晰了。
看著這張圖,就可以寫出 相關的接口程序,實現方法等。
通過大量的系統用例,可以提取出公共的用例,比如權限等。從而抽象出公共的實現方法,才不會導致同一個方法,不同的程序員各自實現了一套。
以圖書為例子,列表說明一個用例的主要部分,以及要表達清楚的地方。
用例名稱 | bu_借閱圖書 |
用例描述 | 借閱人通過此用例向系統查詢并提交借書請求 |
執行者 | 借閱人 |
前置條件 | 1. 借閱人借閱證件在有效期內 2. 借閱人沒有逾期未歸還的圖書 |
后置條件 | 1. 創建借書定單 2. 更新借閱人借閱記錄 |
主過程描述 | 1用戶用借閱證提供的帳號登錄系統,計算機顯示我的圖書館界面 2.用戶選擇查詢圖書,計算機顯示查詢界面 3.用戶按書名、作者、出版社查詢,計算機顯示查詢結果 4.用戶可單選或多選書本,并確認借閱。計算機顯示確認借閱圖書清單。 5.用戶選擇確認借閱,計算機顯示借閱定單及費用 6用戶選擇提交定單,計算機顯示提交結果和定單號 7.計算機執行后置條件。用例結束 |
分支過程描述 | 2.1.1用戶選擇查看原有定單,計算機執行4; 4.1.1用戶可單選或多選書本,放入借書籃,計算機顯示借書籃現有內容 4.1.2.1.1用戶選擇繼續借書,計算機執行2; 4.1.2.2.1用戶選擇提交借書籃,計算機執行4 4.2.1 用戶選擇放棄,計算機執行2; 6.1.1用戶選擇保存定單,計算機保存并執行1; 6.2.1用戶選擇放棄,計算機執行1; |
異常過程描述 | 1.1.1借閱證已過期,拒絕登錄,用例結束 1.2.1借閱人有逾期未歸還書本,啟動bu_歸還圖書用例 5.1.1用戶余額不足,計算機顯示余額和所需金額 5.1.2.1.1用戶選擇續費,啟動bu_交納借閱費用例 5.1.2.2.1用戶選擇放棄,計算機執行1 |
業務規則 | 4.至少選擇一本,至多選擇三本 |
涉及的業務實體 | Be_費用記錄 Be_圖書 Be_借書籃 Be_借閱定單 Be_借閱證 |