uml用例如何描述
來源:http://space.itpub.net/118838/viewspace-483405
?
一、難點:
寫 好用例就必須理解以下三個概念: --范圍 scope:真正被討論的系統(tǒng)是什么? --主執(zhí)行者 primary actor: ? ?誰有要實現(xiàn)的目標(biāo)? --層次 level: ? 目標(biāo)泊層次是高,還是低? 經(jīng)典,現(xiàn)在只體會到先確定范圍和 主執(zhí)行者才能提到描述用例,還要在沉淀。經(jīng)驗只能借鑒而不能照搬!!!! 轉(zhuǎn): --------------------------- 正體字為原文,斜體字 為本人見解1、用例是代表系統(tǒng)中各個項目相關(guān)人員之間就系統(tǒng)的行為所達(dá)成的契約。用例描述了在不同 條件下,系統(tǒng)對某一項目相關(guān)人員的請求所作出的響應(yīng)。
從文字上看,比較難理解,舉個比較經(jīng)典的例 子:某人在ATM機提款,這個本身就可以看作一個用例,只是它的層次比較高,細(xì)分下去,人可以在ATM上做什么?粗略一想,就有幾條:(1)查詢余額 (2)提款(3)轉(zhuǎn)帳(4)存款,這四點都可以獨立成為一個用例,而且執(zhí)行者都是人,簡單來說,用例就是描述執(zhí)行者和系統(tǒng)之間的交互的集合。
2、 從根本上說,用例是文本形式;他們是作為人與人之間,尤其是沒有受過專門培訓(xùn)的人員之間互相交流的一種手段。因此,簡單的文本通常是編寫用例的首選形式。
很 多人一看到“用例”這兩個字就和用例圖聯(lián)系在一起,就是一個小人,一個橢圓,中間有線連接那種圖,其實用例圖只是用例的圖形化表示,用例真正的內(nèi)容體現(xiàn)在 它的文本描述中,而且描述的語言和平時人們?nèi)粘懽鞯恼Z言一樣,一般有初中文化的人都看的懂。
3、 編寫用例必須掌握的三個概念:
(1) ? ? 范圍(scope):真正被討論的系統(tǒng)是什么?
(2) ? ? 主執(zhí)行者(primary actor):誰有要實現(xiàn)的目標(biāo)?
(3) ? ? 層次(level):目標(biāo)的層次是高還是低?
范圍很重要,這個和項目管理 里 面的項目范圍概念差不多,不過可能它的粒度小一點,有個可能一個用例只是一個項目的一小塊功能交互,只有明確好范圍,才能真正把握需求,但這個還需開發(fā)方 與客戶不斷的溝通才能確定。主執(zhí)行者與項目管理的項目干系人有些聯(lián)系,很多用例主執(zhí)行者就是項目干系人中的一員。
4、 只有一個用例模板是不夠的。至少要有兩個用例模板:一個是非正式的(或稱隨意的),在要求不嚴(yán)的項目中使用;另一個是完整正式的,在要求嚴(yán)格的項目中使 用。
無論正式還是非正式,只要能使客戶和開發(fā)人員能建立有效的溝通途徑,就是好用例,只是有時候一 些項目要求比較嚴(yán)格,文檔寫的也比較正式而已。
5、如果把用例作為需求來編寫,請謹(jǐn)記以下兩點 :
(1) ? ? 用例確實是需求。不必將用例轉(zhuǎn)變成行為需求的其他形式。
(2) ? ? 用例不是所有的需求。用例不詳細(xì)地描述外部接口、數(shù)據(jù)格式、業(yè)務(wù)規(guī)則和復(fù)雜公式。
需求包含用例,用 例屬于需求的一部分,這恰恰反應(yīng)了:“用例不是萬能的....”,下一句想必不用說都知道了吧,呵呵。
6、用例僅僅是行為需求,并且是所有的行為需 求。
注意后半句
小結(jié):這一章 主要是為用例定位,以及怎么樣在不同的環(huán)境和時間安排下編寫用例,使其達(dá)到最好的效果。 ------------------------------------------------ 二、基本定義: 執(zhí) 行者 actor:任何具有行為的人或物。 項目相關(guān)人員 stakeholder :對被討論系統(tǒng)的行為有特定興趣的人或物。 主 執(zhí)行者 primary actor:啟動與被討論系統(tǒng)的一次交互活動,從而達(dá)到某一目標(biāo)的人或物。 用例 use case:規(guī)定被討論系統(tǒng)行為的契約。 范圍 scope:界定被討論的系統(tǒng)。 前置條件和保證 precondition and guarantee:在用例執(zhí)行之前和之后必須滿足的條件。 主成功場景 main success scenario:一切順利的情況。 擴展 extension:場景執(zhí)行過程中出現(xiàn) 的不同情況。 擴 展中的編號:是指在主成功場景中不同情況發(fā)生時所處的執(zhí)行步驟號碼(例如,步驟4a步驟4b是指主成功場景中步驟4的兩種不同情況) 下 劃線:當(dāng)一個用例引用另一個用例時,被引用的用例加下劃線。 ----詳細(xì) ?格式 ?begin ------ 用例名稱:?
通常為動賓詞組,體現(xiàn)出對用戶有價值的功能目標(biāo)?
類型:?
BUC|BUCR|SUC?
范 圍:?
寫出具體的SuD名稱?
層次:?
++|+|!|-|--?
優(yōu)先級:?
High|Medium|Low?
版 本:?
當(dāng)前版本?
作者:?
當(dāng)前版本的作者?
日期:?
當(dāng)前版本的日期?
變更歷史:?
歷史 版本號 (日期) 版本說明;變更事項 修訂者?
用例圖: 說明此用例的 SuD 以及主要用角關(guān)系(主用角、次用角、輔用角)和用例關(guān)系(包含、擴展、繼承)等?
相關(guān)用例:?
與此用例相關(guān)、存在重要聯(lián)系的用 例?
簡述/背景:?
說明此用例的主要目的,基本內(nèi)容和相關(guān)背景?
實現(xiàn)的特性:?
依次列出此用例實現(xiàn)的主要系統(tǒng)特 性(Feature)?
情節(jié)舉例:?
用具體的實例說明用例執(zhí)行的一個情況。?
主用角責(zé)權(quán)利:?
主用角: 責(zé)權(quán)利?
其他干系者責(zé)權(quán)利:?
說明除主用角外,其他次用角、干系人、外部系統(tǒng)的責(zé)權(quán)利,所扮演的角色?
干系者名 稱:責(zé)權(quán)利?
...?
后置狀態(tài)?
與條件?
最小保證:?
無論用例執(zhí)行成功或失敗,系統(tǒng)對所有干系者作出的 最小/最起碼的承諾?
保證條件說明?
成功保證:?
用例目標(biāo)成功達(dá)成后,系統(tǒng)為滿足所有干系者的利益而作出的承諾,達(dá)到的 狀態(tài)和滿足的條件?
成功狀態(tài)名稱:狀態(tài)說明,應(yīng)滿足的條件?
...?
失敗保證:?
用例目標(biāo)失敗后,系統(tǒng) 為滿足所有干系者的利益而作出的承諾,達(dá)到的狀態(tài)和滿足的條件?
失敗狀態(tài)名稱:狀態(tài)說明,應(yīng)滿足的條件?
...?
前置狀 態(tài)與條件:?
用例開始執(zhí)行前所處的狀態(tài)和/或應(yīng)滿足的條件?
狀態(tài)名稱:狀態(tài)說明,條件說明?
...?
觸發(fā)事 件:?
觸發(fā)用例從前置狀態(tài)開始執(zhí)行的事件?
基本流:?
說明一個最主要的成功執(zhí)行路徑?
{名稱標(biāo)記}?
步 驟編號 事件/步驟描述?
...?
公共流: 被此用例的其他動作流引用的公共步驟?
{動作流名稱}?
{片 斷名稱標(biāo)記}?
步驟編號 事件/步驟描述?
...?
擴展流:?
說明除基本流之外的其他成功流、 失敗流和可選、替換流?
{擴展名稱標(biāo)記}?
擴展位置引用?
擴展條件:?
擴展處理?
...?
擴 展點:?
此用例允許其他用例擴展插入的位置?
擴展點名稱 {擴展點在基本流、擴展流當(dāng)中的位置}?
技術(shù)和數(shù)據(jù)變化:?
此 用例執(zhí)行時,在技術(shù)和數(shù)據(jù)方面不同的做法?
非功能需求:?
(URPS+)?
包括易用性、可靠性、性能、可維護性等方面的要求?
業(yè) 務(wù)規(guī)則:?
作用于此用例的各項業(yè)務(wù)約束?
數(shù)據(jù)字段:?
說明此用例中用到數(shù)據(jù)的字段名稱、類型等細(xì)節(jié),可與領(lǐng)域模型聯(lián)系起 來?
未決問題:?
此用例當(dāng)前存在的問題?
備注:?
其他任何需要說明、補充的事項?
---- 詳細(xì) ?格式 ?end ------
三、例子 用例1:(符號)通過萬維網(wǎng)購買股票 (注:這里的符號可以是“黑盒”符號,表示程序運行在與萬維網(wǎng)相連的工作站上,表示所討論的系統(tǒng) 是一個計算機系統(tǒng),符號的使用完全可以根據(jù)個人的喜好來選擇,但對范圍和層次的標(biāo)記卻不是)
| ?主 執(zhí)行者:購買者 范圍:私人顧問/金融包 層次:用戶目標(biāo) 項目相關(guān)人員和利益: ?? ? ? ?購買者----購買股票,并希望所買股票能自動被加到PAF記錄中。 ?? ? ? ?股票代理商----希望得到全部的購買信息。 前置 條件:用戶已經(jīng)打開PAF。 最小保證:有足夠的登錄信息,以便當(dāng)出現(xiàn)問題時,PAF能夠檢測到問題,并要求用戶提供更詳細(xì)的信息。 成功保 證:遠(yuǎn)程web 站點認(rèn)可此次購買事件;日志和用戶記錄被更新。 主 成功場景: 1、購買者選擇通過萬維網(wǎng)來購買股票。 2、PAF從用戶那里得到所用站點的名稱(如E*Trade、Schwab等)。 3、 PAF與該站點建立網(wǎng)絡(luò)連接,并保持控制權(quán)。 4、購買者在該站點上瀏覽并購買股票。 5、PAF截取站點的響應(yīng)信息,并更新購買者的記錄。 6、 PAF向用戶顯示更新后的記錄情況。 擴展: 2a、購買者要使用一個PAF不支持的站點: ?? ?2a1:系統(tǒng)從購買者那里獲取新建議,帶有取消用例的選項。 3a、在設(shè)置過程中,網(wǎng)絡(luò)發(fā)生故障: ?? ?3a1:系統(tǒng)向購買者報告錯誤,并建議他退回到前一步。 ?? ?3a2:購買者或者此用例,或者重新再試。 4a、計算機系統(tǒng)崩潰或者在 交易過程中被關(guān)掉: ?? ?4a1:(這時,我們該怎么辦?) 4b、Web站點沒有及時認(rèn)可此次購買活動,而是把它推遲處理: ?? ?4b1:PAF把這次推遲事件記入日志,設(shè)置一個時鐘,定期向購買者詢問結(jié)果。 5a、Web站點沒有返回關(guān)于購買情況的必要信息: ?? ?5a1:PAF把缺少信息的事件記入日志,要求購買者更新存有疑問的交易 。 |
用例:
用例視圖向外部用戶展示了其捕獲的系統(tǒng)、子系統(tǒng)、類 或者組件的行為。它將系統(tǒng)功能劃分成對執(zhí)行者和有意義的事物。而交互功能的部分被稱作用例。
是 代表系統(tǒng)中各個項目相關(guān)人員之間就形態(tài)行為。所達(dá)成的契約。
編寫用例必須掌握三個概念
- 范 圍:真正被討論的系統(tǒng)是什么?
- 主執(zhí)行者:誰有要實現(xiàn)的目標(biāo)?
- 層 次:目標(biāo)的層次是高是低?
?
其它概念:
- 執(zhí) 行者:任何具有行為的人或物
- ? 項 目相關(guān)人員:對被討論的系統(tǒng)的行為有特定興趣的人或物
- 主執(zhí)行者:啟動與被討論系統(tǒng)得一次交互活動,從而達(dá)到 某一個目標(biāo)的人或物
- 用例:規(guī)定被討論系統(tǒng)行為的契約
- 范圍:界 定被討論的系統(tǒng)
- 前置條件和保證:在用例執(zhí)行之前和之后必須滿足的條件
- 主 成功場景:一切順利的情況
- 擴展:場景執(zhí)行過程中出現(xiàn)的不同情況
?
三 個命名的目標(biāo)層次
1.????????? 概 要層次
包含多個用戶目標(biāo)。在描述系統(tǒng)時,它們有如下三個方面的功能:
??????? 顯示用戶目標(biāo)運行的語境
??????? 顯示相關(guān)目標(biāo)的生命周期順序
??????? 為 低層用例(包括白色用例和藍(lán)色用例)提供一個目錄表。
2.????????? 用 戶目標(biāo)級
它是主執(zhí)行者努力使工作得以完成的目標(biāo),或是用戶使用系統(tǒng)的目標(biāo)。
3.????????? 子 功能級
是指那些再實現(xiàn)用戶目標(biāo)時可能會被用到的目標(biāo)。
用例模板
??? 用例圖只是簡單地可視化描述系統(tǒng),我們還需要對用例進行詳細(xì)的說明。為了明確的描述用例我們需要一個用例模板,但是至今并沒有統(tǒng)一的用例模板。用例模板的 內(nèi)容一般包括:簡要描述、前置條件、后置條件、基本事件流、備選事件流等等。
簡要描述:對用例的角色、目的的簡要描述。
前置條 件:執(zhí)行用例之前系統(tǒng)必須要處于的狀態(tài),或者要滿足的條件。
后置條件:用例一旦執(zhí)行后系統(tǒng)所處的狀態(tài)。
基本事件流:描述該用例的 基本流程,指每個流程都“正常”運作時所發(fā)生的事情,沒有任何備選流而只有最有可能發(fā)生的事件流。
備選事件流:表示這個行為或流程是可選的或 備選的,并不是總要總要執(zhí)行它們。
下面是一個用例模板的示例:
用例: < 編號 >< 名 稱 >
特 征信息:
???? 用例在系統(tǒng)中的目標(biāo)(用例目標(biāo)描述)
???? 范圍(當(dāng)前考慮的是哪個系統(tǒng))
???? 級別(概要任務(wù) / 首 要任務(wù) / 子功能)
???? 前提條件(用例執(zhí)行前系統(tǒng)用具有的狀態(tài))
???? 成功后繼條件(用例成功執(zhí)行后應(yīng)具有的狀態(tài))
???? 失效后繼條件(用例沒有完成目標(biāo)的狀態(tài))
???? 首要角色(與該用例關(guān)聯(lián)的首要角色)
???? 觸發(fā)(啟動該用例執(zhí)行的系統(tǒng)動作)
主 要步驟:
???? < 步驟編號 >< 動作描述 >
擴 展:
???? < 有變化情況的步 驟編號 >< 條件 >:< 動作或另外一個用例 >
變 異:
???? < 步驟或變化編號 >< 變異列表 >
相 關(guān)信息:(可選)
???? 優(yōu)先級(該用例對于系統(tǒng)組織 的關(guān)鍵程度)
???? 性能目標(biāo)(該 用例的執(zhí)行時間耗費)
???? 頻 度(該用例被執(zhí)行的頻度)
從屬用例:(可選)
下 屬用例:
與首要角色的聯(lián)系渠道(包括交互式、靜態(tài)文件、數(shù)據(jù)庫 等)
公 開問題:(可選)
posted on 2006-11-06 22:50?王興 ?閱讀 (474)?評論(1) ??編輯 ?收藏 ?網(wǎng)摘 ?所屬分類:?技術(shù)文章
評論
#1樓 ? [樓主 ] ?2006-11-07 22:09? 王興 ??????
用例名 稱:?
通常為動賓詞組,體現(xiàn)出對用戶有價值的功能目標(biāo)?
類型:?
BUC|BUCR|SUC?
范圍:?
寫 出具體的SuD名稱?
層次:?
++|+|!|-|--?
優(yōu)先級:?
High|Medium|Low?
版 本:?
當(dāng)前版本?
作者:?
當(dāng)前版本的作者?
日期:?
當(dāng)前版本的日期?
變更歷史:?
歷史 版本號 (日期) 版本說明;變更事項 修訂者?
用例圖: 說明此用例的 SuD 以及主要用角關(guān)系(主用角、次用角、輔用角)和用例關(guān)系(包含、擴展、繼承)等?
相關(guān)用例:?
與此用例相關(guān)、存在重要聯(lián)系的用 例?
簡述/背景:?
說明此用例的主要目的,基本內(nèi)容和相關(guān)背景?
實現(xiàn)的特性:?
依次列出此用例實現(xiàn)的主要系統(tǒng)特 性(Feature)?
情節(jié)舉例:?
用具體的實例說明用例執(zhí)行的一個情況。?
主用角責(zé)權(quán)利:?
主用角: 責(zé)權(quán)利?
其他干系者責(zé)權(quán)利:?
說明除主用角外,其他次用角、干系人、外部系統(tǒng)的責(zé)權(quán)利,所扮演的角色?
干系者名 稱:責(zé)權(quán)利?
...?
后置狀態(tài)?
與條件?
最小保證:?
無論用例執(zhí)行成功或失敗,系統(tǒng)對所有干系者作出的 最小/最起碼的承諾?
保證條件說明?
成功保證:?
用例目標(biāo)成功達(dá)成后,系統(tǒng)為滿足所有干系者的利益而作出的承諾,達(dá)到的 狀態(tài)和滿足的條件?
成功狀態(tài)名稱:狀態(tài)說明,應(yīng)滿足的條件?
...?
失敗保證:?
用例目標(biāo)失敗后,系統(tǒng) 為滿足所有干系者的利益而作出的承諾,達(dá)到的狀態(tài)和滿足的條件?
失敗狀態(tài)名稱:狀態(tài)說明,應(yīng)滿足的條件?
...?
前置狀 態(tài)與條件:?
用例開始執(zhí)行前所處的狀態(tài)和/或應(yīng)滿足的條件?
狀態(tài)名稱:狀態(tài)說明,條件說明?
...?
觸發(fā)事 件:?
觸發(fā)用例從前置狀態(tài)開始執(zhí)行的事件?
基本流:?
說明一個最主要的成功執(zhí)行路徑?
{名稱標(biāo)記}?
步 驟編號 事件/步驟描述?
...?
公共流: 被此用例的其他動作流引用的公共步驟?
{動作流名稱}?
{片 斷名稱標(biāo)記}?
步驟編號 事件/步驟描述?
...?
擴展流:?
說明除基本流之外的其他成功流、 失敗流和可選、替換流?
{擴展名稱標(biāo)記}?
擴展位置引用?
擴展條件:?
擴展處理?
...?
擴 展點:?
此用例允許其他用例擴展插入的位置?
擴展點名稱 {擴展點在基本流、擴展流當(dāng)中的位置}?
技術(shù)和數(shù)據(jù)變化:?
此 用例執(zhí)行時,在技術(shù)和數(shù)據(jù)方面不同的做法?
非功能需求:?
(URPS+)?
包括易用性、可靠性、性能、可維護性等方面的要求?
業(yè) 務(wù)規(guī)則:?
作用于此用例的各項業(yè)務(wù)約束?
數(shù)據(jù)字段:?
說明此用例中用到數(shù)據(jù)的字段名稱、類型等細(xì)節(jié),可與領(lǐng)域模型聯(lián)系起 來?
未決問題:?
此用例當(dāng)前存在的問題?
備注:?
其他任何需要說明、補充的事項
總結(jié)
- 上一篇: 先美国一步!瑞士开发受超级高铁启发的地下
- 下一篇: 对Hibernate赖加载对象在sess