產(chǎn)品經(jīng)理進(jìn)階,需求用例分析之異常流
![](http://image.woshipm.com/wp-files/img/45.jpg)
問題的引出
備選流,又稱備選事件流,英文是Alternative Flow。在RUP和UML中,備選流的解釋如下:備選事件流包括與正常行為相關(guān)的可選或異常特征的行為,同時(shí)也包括正常行為的各種變形。您可以將備選事件流看作是基本事件流的“繞行道”,有些備選事件流將返回到基本事件流,而有些將結(jié)束此用例的執(zhí)行。
分析RUP對(duì)于備選流的定義,可以看到備選流可以分成兩類:
1,不同做法但仍然達(dá)成用例目標(biāo);
2,異常情況,無(wú)法達(dá)成用例目標(biāo)。
在實(shí)際用例分析中,由于備選流可能存在兩種情況,導(dǎo)致備選流存在2種主要寫法:
1.在備選流中說(shuō)明基本流以外的異常情況的處理,可能仍然回到基本流,也可能導(dǎo)致用例結(jié)束。
在備選流中說(shuō)明基本流以外的其它正常和異常情況的處理,覆蓋了其它功能。
第1種寫法的例子比較常見,下文將出現(xiàn),這里不再贅述。
第2種寫法的例子如下:
用例名稱:填寫請(qǐng)購(gòu)單
簡(jiǎn)要說(shuō)明
員工在線填寫圖書請(qǐng)購(gòu)單,內(nèi)容包括:圖書名稱、出版社、作者、價(jià)格、訂購(gòu)人(系統(tǒng)自動(dòng)識(shí)別)、訂購(gòu)部門、訂購(gòu)日期等,填好后提交給圖書管理員審核。
填寫請(qǐng)購(gòu)單的主角是員工。
事件流
員工選擇“填寫請(qǐng)購(gòu)單”,用例開始。
基本流
員工選擇“填寫請(qǐng)購(gòu)單”,提交“填寫請(qǐng)購(gòu)單”請(qǐng)求;
顯示“填寫請(qǐng)購(gòu)單”窗口并列表顯示請(qǐng)購(gòu)單信息(已填寫未提交、已提交審核未通過(guò)), 兩種狀態(tài)的請(qǐng)購(gòu)單信息通過(guò)選擇分別列出,審核未通過(guò)的原因只能查看不能修改;
請(qǐng)購(gòu)單信息包括:請(qǐng)購(gòu)單編碼(系統(tǒng)自動(dòng)生成)、訂購(gòu)部門、訂購(gòu)人、訂購(gòu)日期、訂購(gòu)原因、備注,和圖書明細(xì)包括:圖書名稱、出版社、作者、單價(jià)、數(shù)量等,圖書明細(xì)包括:新增,修改,刪除;
請(qǐng)購(gòu)單信息輸入操作見備選流;
新增:系統(tǒng)具體執(zhí)行見“備選流 新增”
修改:系統(tǒng)具體執(zhí)行見“備選流 修改”
刪除:系統(tǒng)具體執(zhí)行見“備選流 刪除”
選擇“提交”,系統(tǒng)把選中的請(qǐng)購(gòu)單提交給圖書管理員審核,此用例結(jié)束。
備選流
填寫請(qǐng)購(gòu)單基本流中抽取出三個(gè)備選流:
請(qǐng)購(gòu)單信息:新增、修改、刪除;
新增
(一)員工在“填寫請(qǐng)購(gòu)單”信息區(qū)選擇“新增”,提交“新增”請(qǐng)求;
(二)系統(tǒng)彈出“新增請(qǐng)購(gòu)單”空白模式窗口;
(三)請(qǐng)購(gòu)單信息包括:圖書名稱、出版社、作者、單價(jià)、數(shù)量等;
(四)請(qǐng)購(gòu)單信息輸入完畢后,選擇“保存”提交,系統(tǒng)驗(yàn)證數(shù)據(jù)有效性,如驗(yàn)證不成功,針對(duì)所提示錯(cuò)誤信息修正輸入數(shù)據(jù),驗(yàn)證成功關(guān)閉“新增請(qǐng)購(gòu)單”窗口;
若繼續(xù)新增請(qǐng)購(gòu)單,則重復(fù)㈠㈡㈢㈣步驟。
修改
(一)員工在“填寫請(qǐng)購(gòu)單”信息區(qū)列表選中要修改的請(qǐng)購(gòu)單,提交“修改”請(qǐng)求;
(二)系統(tǒng)彈出“修改請(qǐng)購(gòu)單”模式窗口,并顯示當(dāng)前請(qǐng)購(gòu)單信息;
(三)修改相應(yīng)數(shù)據(jù)后,選擇“保存”提交,系統(tǒng)驗(yàn)證數(shù)據(jù)有效性,如驗(yàn)證不成功則根據(jù)錯(cuò)誤提示重新輸入,驗(yàn)證成功后保存數(shù)據(jù)并關(guān)閉“修改請(qǐng)購(gòu)單”模式窗口同時(shí)刷新請(qǐng)購(gòu)單信息列表;
若繼續(xù)修改,則重復(fù)㈠㈡㈢步驟。
刪除
(一)員工在“填寫請(qǐng)購(gòu)單”信息區(qū)列表選中要?jiǎng)h除的請(qǐng)購(gòu)單,提交“刪除”請(qǐng)求;
(二)若選中的請(qǐng)購(gòu)單屬于審核未通過(guò),系統(tǒng)提示“不能刪除審核未通過(guò)的請(qǐng)購(gòu)單”;
(三)刪除后刷新請(qǐng)購(gòu)單列表信息同時(shí)系統(tǒng)提示“編號(hào)為XXX的請(qǐng)購(gòu)單已刪除!”;
若繼續(xù)刪除,則重復(fù)㈠㈡㈢步驟。
特殊需求
無(wú)
前置條件
員工登錄系統(tǒng)。
后置條件
無(wú)
—例子結(jié)束—-
第2種寫法中,在備選流中說(shuō)明了基本功能,用例篇幅已經(jīng)變長(zhǎng),如果備選流中出現(xiàn)異常,備選流將顯得更加臃腫。因此第2種寫法比較少見。
為了解決備選流的不同情況,人們識(shí)別率異常流來(lái)解決上述問題。
異常流是什么?
Bernd Lohmeyer提出來(lái)如下分類規(guī)則
(見?http://www.lohmy.de/2013/03/06/writing-use-cases-exception-or-alternate-flow/?)
l Result negative: An Exception is anything that leads to NOT achieving the use case’s goal. 負(fù)面結(jié)果:異常,任何導(dǎo)致不能達(dá)成用例目標(biāo)的事情
l Result positive: An Alternate Flow is a step or a sequence of steps that achieves the use case’s goal following different steps than described in the main success scenario. But the goal is achieved finally. 正面結(jié)果:備選流,一步或多個(gè)步驟序列達(dá)成了用例目標(biāo),但與主成功場(chǎng)景不一樣的步驟。最終目標(biāo)是達(dá)成的。
見如下例子:
簡(jiǎn)單說(shuō):異常流是基本流的異常情況,不能達(dá)成用例目標(biāo)。
用異常流替代備選流
蒼狼敏捷需求用例分析方法對(duì)于備選流的做法是采用第1種做法,但用異常流替代備選流,從名稱上排除第2種做法,滿足用例目的的可選流程在基本流中表達(dá),如果導(dǎo)致基本流篇幅過(guò)長(zhǎng),那么就分拆用例。
對(duì)照到上述“填寫請(qǐng)購(gòu)單”的例子,蒼狼敏捷需求用例分析方法至少分拆成如下多個(gè)用例:
1,新增請(qǐng)購(gòu)單
2,修改請(qǐng)購(gòu)單
3,刪除請(qǐng)購(gòu)單
其中新增請(qǐng)購(gòu)單的用例規(guī)約
用例屬性 | 說(shuō)明 |
名稱 | 新增請(qǐng)購(gòu)單 |
簡(jiǎn)要說(shuō)明 | 員工在線填寫圖書請(qǐng)購(gòu)單,內(nèi)容包括:圖書名稱、出版社、作者、單價(jià)等,填好后提交給圖書管理員審核。 |
前置條件 | 員工已經(jīng)登錄 |
啟動(dòng)點(diǎn) | 員工在“填寫請(qǐng)購(gòu)單”信息區(qū)選擇“新增”,提交“新增”請(qǐng)求,系統(tǒng)彈出“新增請(qǐng)購(gòu)單”空白模式窗口 |
基本流 | 1. 員工填寫各項(xiàng)請(qǐng)購(gòu)單信息,包括圖書名稱、出版社、作者、單價(jià)、數(shù)量、訂購(gòu)原因、備注,員工請(qǐng)購(gòu)單信息輸入完畢后,選擇“保存”提交2. 系統(tǒng)驗(yàn)證數(shù)據(jù)有效性,有效性規(guī)則見X.Y3. 系統(tǒng)驗(yàn)證如果通過(guò),記錄此請(qǐng)購(gòu)單
4. 系統(tǒng)返回“保存”成功信息 |
異常流 | 3b如果驗(yàn)證不成功,給出具體字段的錯(cuò)誤提示信息,讓用戶修正輸入數(shù)據(jù) |
后置條件 | 提交給圖書管理員審核 |
特殊需求 | 請(qǐng)購(gòu)單輸入信息界面在一個(gè)屏幕內(nèi) |
擴(kuò)展點(diǎn) | 無(wú) |
異常流的好處
根據(jù)以上分析,可以看到,異常流實(shí)質(zhì)上是一種備選流,對(duì)照原RUP備選流說(shuō)明的話,定義如下:異常流是與基本流正常行為相關(guān)的異常行為。
異常流不是基本流的“繞行道”,有些異常流將返回到基本流,有些將結(jié)束用例的執(zhí)行。
異常流替代備選流主要的好處:
1,基本功能全部在基本流中表達(dá)
2,異常流從名稱上清晰的明確了其定位:基本流的異常情況
3,基本流+異常流的組合可以覆蓋所有事件流場(chǎng)景
4,用例的顆粒度將受到基本流篇幅的限制,有助于更精細(xì)的管理,有便于在敏捷開發(fā)環(huán)境下使用。
本文作者 zhangmike
自己就是不太會(huì)考慮異常流程,哎!以后得謹(jǐn)記