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