(1)需求分析(用例技術)、系統分析(ooa)、系統設計(ood)、系統實現(oop)
(2)用例的主要作用是:用來捕獲系統的高層次(high level)使用者功能性需求
(3)用例從使用者的視角描述了在邏輯上相對完整的乙個功能流程。用例演示了人們如何使用系統。
(4)用例 vs 功能列表。
(5)用例最主要的價值在於:它強調了使用者的目標和觀點。
(6)用例表示法:用例圖和用例文字
舉例:pos系統處理銷售用例圖:
pos系統處理銷售的用例文字:
1.顧客攜帶所購買的商品到達收銀台。
2.收銀員開始一次新的銷售交易。
3.收銀員輸入商品條碼。
4.系統逐條記錄**的商品,並顯示該商品的描述、**和累計金額。 **通過一組**規則來計算。
收銀員重複3~4步,直到輸入結束。
5.系統顯示總額。
6.收銀員告知顧客總額,並請顧客付款。
7.顧客付款,系統處理支付。
8.系統記錄完整的銷售資訊,並將資訊通知給帳務系統和庫存系統。
9.系統列印票據。
10.顧客攜帶商品和票據離開。
(7)場景。
場景是用例執行的一條路徑。
主(成功)場景、交替(擴充套件)場景
通常,乙個用例包含乙個主場景和多個(或0個)擴充套件場景。
用例的主場景不要超過十步。
用例的最大價值不在於主場景,而是在於備選行為。主場景可能只占用例長度的四分之一到十分之一。
2.用例的作用
在使用uml的整個軟體開發過程中,用例處於乙個中心地位。
(1)工作量的預估需要依據當前發現的用例。
(2)介面(ui)是在用例的輔助下進行設計
(3)很多類是根據用例來發現的
(4)用例的場景描述是建立時序圖和協作圖的依據。
(6)測試例項是根據用例來生成的
(7)整個開發的管理和任務分配,需要依據用例來進行組織
3.從何處發現用例線索
(1)藍**檔。
(2)預排文件。
(3)域術語表。
(4)與域專家和終端使用者會談。
(5)功能規範和工作陳述。
4.如何發現用例
(1)確定誰會直接使用該系統。這些都是參與者
(2)選取其中乙個參與者
(3)定義該參與者希望系統做什麼。參與者希望系統做的每件事成為乙個用例
(4)對每件事來說,參與者何時會使用系統,使用的過程中通常會發生什麼,這就是用例的基本過程(主成功場景)
(5)描述該用例的基本過程。(此時,可能會發現更多的參與者)
(6)考慮一些可變情況,把他們建立為擴充套件場景。
(7)重複步驟2~6,以找出每乙個用例。
5.編寫用例的準則
(1)準則1:用例不是圖形而是文字
用例建模的主要活動是編寫文字,而非建立圖形。唯有文字才可以完整地描述乙個用例。
文字和圖形是相互補充的兩個方面,我們可以通過圖形來快速瀏覽、檢視所有用例,如果需要深入到乙個用例的細節,則可以閱讀相應的用例文字。
(2)準則2:以本質風格編寫用例
例子:收銀員登入
具體風格:比如介面上的textbox、button
本質風格:
a.收銀員標誌自己的身份
b.系統對此身份進行認證
編寫用例時,需要屏除使用者介面並且關注參與者的意圖。以具體風格編寫用例會造成對以後設計的潛在約束,如果沒有這些約束,設計者能更自由地建立乙個正確實現客觀可見行為的系統,並為突破性方案的出現提供了可能性。
(3)準則3:編寫黑盒用例
黑盒用例不對系統內部工作、構件或設計進行描述,相反,它通過職責來描述系統。
用例規定了系統必須做什麼(行為和功能性需求),而不必決定系統如何去做(設計)。在用例建模中,應避免進行「如何」的決策。
(4)準則4:從參與者的角度來定義用例
面向用例的需求與傳統的功能列表式需求之間最顯著的區別在於actor ,系統之所以存在是因為actors 要通過與該系統進行互動來實現某些目標。
系統的視點=》actor視點
(5)準則5:編寫簡潔的用例
6.如何判斷系統用例是否有效
如果系統用例能通過下列三個測試,則表明該系統用例有效。
(1)老闆測試 (避免用例的層次太低)
(2)ebp(基本業務過程)測試 (避免時間過長或過短、避免步驟過多或過少)
(3)規模測試 (避免規模過小或過大)
使用用例捕獲需求
在使用uml的整個軟體開發過程中,用例處於乙個中心地位。1 工作量的預估需要依據當前發現的用例。2 介面 ui 是在用例的輔助下進行設計 3 很多類是根據用例來發現的 4 用例的場景描述是建立時序圖和協作圖的依據。6 測試例項是根據用例來生成的 7 整個開發的管理和任務分配,需要依據用例來進行組織 ...
Linux awk 使用用例
環境 centos 鑑於語句描述蒼白無力,用例子直接說明。檔案內容 zilzhang 19881110 jiangxi 18 film zhagnsan 21321 sichuan 100 card 1.列印整行 awk mytxt zilzhang 19881110 jiangxi 18 film...
C 模版使用用例
include include string.h include stdio.h include errno.h include syslog.h include unistd.h include sys time.h include include include include include ...