UseCase事件描述叙事流规范
文化/fasiondog
整理的用例需求編寫規(guī)范。分享部分UseCase事件描述敘事流規(guī)范。其中。標(biāo)準(zhǔn)5~10、12來自哪里《編寫有效用例》([美國]?Alistair Cockburn 該)一本書,自身實(shí)踐和要求。
事件流包括正常事件流、可選事件流、異常事件流程,前述三者合在一起的本質(zhì)就是用文字描寫敘述的流程。
事件流由文字描寫敘述的步驟組成,寫作過程中應(yīng)遵循下面準(zhǔn)則,這些準(zhǔn)則是對(duì)用例寫作過程中的常見問題和最佳實(shí)踐的總結(jié)。下述規(guī)范中如沒有特殊說明,事件流同一時(shí)候指正常事件流、可選事件流、異常事件流。
準(zhǔn)則1:文字描寫敘述與流程圖保持一致
事件流的本質(zhì)其實(shí)就是文本描寫敘述的流程。
因此,對(duì)用例輔以說明的流程圖應(yīng)與文字表述的事件流保持一致。其實(shí),用例是以文字描寫敘述為主,流程圖為輔。編寫用例應(yīng)該養(yǎng)成“先寫文字后繪圖”的習(xí)慣。保持一致意味著:
- 流程圖中的動(dòng)作(含推斷)的數(shù)量與事件流中的步驟數(shù)量一致(因?yàn)椴煌膱D形表示方法的限制。最低程度應(yīng)保證和正常事件流中的步驟數(shù)量一致)
- 流程圖中的動(dòng)作(含推斷)與事件流中的步驟描寫敘述一致
句子的結(jié)構(gòu)應(yīng)簡(jiǎn)單明了:“主語+謂語動(dòng)詞+直接賓語”。輔以必要的修飾詞。
準(zhǔn)則3:一個(gè)步驟描寫敘述中僅包括一個(gè)主語
在一個(gè)步驟中僅包括一個(gè)主語。這意味著一個(gè)步驟描寫敘述中能夠是一個(gè)運(yùn)行者運(yùn)行一個(gè)動(dòng)作。也能夠是一個(gè)運(yùn)行者運(yùn)行多個(gè)連貫的動(dòng)作,但不能出現(xiàn)多個(gè)運(yùn)行者運(yùn)行多個(gè)不同的任務(wù)。
比如:
錯(cuò)誤的描寫敘述形式: 1.【用戶】輸入訂購號(hào)碼,【系統(tǒng)】發(fā)現(xiàn)這個(gè)號(hào)碼與本月中獎(jiǎng)號(hào)碼匹配。將用戶和訂購號(hào)碼注冊(cè)為當(dāng)月的中獎(jiǎng)?wù)?#xff0c;發(fā)電子郵件給銷售經(jīng)理,祝賀客戶,并告訴他們?cè)鯓宇I(lǐng)取獎(jiǎng)金 正確的描寫敘述形式1: 1.【用戶】輸入訂購號(hào)碼。 2.【系統(tǒng)】發(fā)現(xiàn)這個(gè)號(hào)碼與本月中獎(jiǎng)號(hào)碼匹配。將用戶和訂購號(hào)碼注冊(cè)為當(dāng)月的中獎(jiǎng)?wù)?#xff0c;發(fā)電子郵件給銷售經(jīng)理,祝賀客戶,并告訴他們?cè)鯓宇I(lǐng)取獎(jiǎng)金。正確的描寫敘述形式2: 1.【用戶】輸入訂購號(hào)碼。 2.【系統(tǒng)】發(fā)現(xiàn)這個(gè)號(hào)碼與本月的中獎(jiǎng)號(hào)碼匹配。 3.【系統(tǒng)】將用戶和訂購號(hào)碼注冊(cè)為當(dāng)月的中獎(jiǎng)?wù)摺?4.【系統(tǒng)】發(fā)電子郵件給銷售經(jīng)理。 5.【系統(tǒng)】祝賀客戶,并告訴他們?cè)鯓宇I(lǐng)取獎(jiǎng)金。在編寫用例時(shí),能夠依據(jù)此準(zhǔn)則。對(duì)較冗長(zhǎng)的多個(gè)步驟進(jìn)行合理的合并。所謂合理,是指合并后的步驟。應(yīng)不影響可選事件流、異常事件流的插入點(diǎn)。
準(zhǔn)則4:在步驟中明白標(biāo)識(shí)參與人
通過在步驟中使用“【參與人】”的方式明白標(biāo)識(shí)“參與人(Actor)”,防止因遺漏主語(以及部分賓語),而使讀者不知道誰是活動(dòng)的運(yùn)行者。演示樣例:
“【用戶】插入ATM卡并輸入PIN。”準(zhǔn)則5:從系統(tǒng)外部的角度來編寫用例
缺少經(jīng)驗(yàn)的用例編寫者(尤其是對(duì)系統(tǒng)內(nèi)部實(shí)現(xiàn)有所了解的開發(fā)者)在描寫敘述用例場(chǎng)景時(shí)。常常有意或無意實(shí)現(xiàn)系統(tǒng)內(nèi)部結(jié)構(gòu)并試圖從系統(tǒng)內(nèi)部動(dòng)作來描寫敘述系統(tǒng)。他們可能寫出這種句子“讀取ATM卡和PIN號(hào)碼。并從賬戶剩余金額中扣除一定數(shù)量。”
而從系統(tǒng)外部來編寫用例,則是:
1.【用戶】插入ATM卡并輸入PIN號(hào)碼; 2.【系統(tǒng)】從賬戶剩余金額中扣除一定數(shù)量。準(zhǔn)則6:顯示過程向前推移
選擇過小的步驟將導(dǎo)致用例過長(zhǎng)。假設(shè)一個(gè)用例有13~17個(gè)步驟。說明每個(gè)步驟完畢的工作過少。假設(shè)將一些小的步驟合并。能夠使用例的可讀性更好、更清晰。而且保持原有的基本信息。一般,一個(gè)用例的步驟數(shù)量應(yīng)控制在7個(gè)以內(nèi)。
為了有效合并用例步驟,應(yīng)找到具有較高層次目標(biāo)的步驟。能夠提出這種問題“為什么參與人須要做這件事?”。可能。須要多次詢問此問題才干得到愜意的答案,而這個(gè)問題的答案就是步驟實(shí)現(xiàn)的目標(biāo)。
下面是一個(gè)通過問“為什么”來提高目標(biāo)層次的樣例。
“用戶按下Tab鍵”為什么用戶要按下Tab鍵?是為了將焦點(diǎn)移到地址框中。
為什么她要將焦點(diǎn)移到地址框中呢?由于在系統(tǒng)開始工作前。她要輸入username和地址。她想讓系統(tǒng)完畢一些工作,為了使系統(tǒng)工作,她必須輸入她的username和地址。
因此,一個(gè)清晰描寫敘述過程向前移動(dòng)的主動(dòng)語態(tài)句子是:
“【用戶】輸入名字和地址”準(zhǔn)則7:顯示參與人的意圖而不是動(dòng)作
通過操縱用戶界面來描寫敘述用戶的動(dòng)作,這是編寫用例時(shí)常見的一種嚴(yán)重錯(cuò)誤,它使得編寫的目標(biāo)處于一個(gè)非常低的層次。界面細(xì)節(jié)描寫敘述使得需求文檔質(zhì)量變差,主要體如今:
- 文檔冗長(zhǎng)拖沓使閱讀困難、維護(hù)費(fèi)用高昂。
- 不論什么用戶界面的變化都將導(dǎo)致用例文檔失效
通常情況下。當(dāng)一些連續(xù)步驟的數(shù)據(jù)在同一方向上運(yùn)動(dòng)時(shí)。能夠?qū)⑦@些步驟合并成一個(gè)步驟(視情況而定。合理合并)。如以下的演示樣例及對(duì)它的改動(dòng):
改動(dòng)前: 1.【系統(tǒng)】要求用戶輸入姓名 2.【用戶】輸入姓名 3.【系統(tǒng)】要求用戶輸入地址 4.【用戶】輸入地址 5.【用戶】點(diǎn)擊“確定” 6.【系統(tǒng)】顯示用戶的簡(jiǎn)單介紹改動(dòng)后: 1.【用戶】輸入姓名與地址 2.【系統(tǒng)】顯示用戶的簡(jiǎn)單介紹準(zhǔn)則8:“確認(rèn)”而不是“檢查是否”
大家常常會(huì)遇到描寫敘述系統(tǒng)檢查某個(gè)條件的步驟。而在步驟描寫敘述中,使用“檢查”這個(gè)動(dòng)詞并不好,這樣說并沒有讓過程明顯的向前發(fā)展,它并非真正的目的,同一時(shí)候它使得檢查的結(jié)果是不確定的。那么為什么系統(tǒng)要檢查條件?答案是為了確認(rèn)、驗(yàn)證或確保某些事情。
這些都是非常好的能夠表示目標(biāo)的動(dòng)詞。比如。能夠?qū)ⅰ跋到y(tǒng)檢查password是否正確”替換為:
“【系統(tǒng)】驗(yàn)證password正確”準(zhǔn)則9:習(xí)慣用語:“用戶讓系統(tǒng)A與系統(tǒng)B交互”
在編寫用例時(shí)。可能會(huì)遇到例如以下情況,正在設(shè)計(jì)的系統(tǒng)A須要從系統(tǒng)B中獲取信息。或者與系統(tǒng)B有一個(gè)交互過程。
通常能夠使用兩個(gè)步驟來描寫敘述:
1.【用戶】通知【系統(tǒng)A】從【系統(tǒng)B】獲取數(shù)據(jù) 2.【系統(tǒng)A】從【系統(tǒng)B】獲取后臺(tái)數(shù)據(jù)。上述寫法盡管能夠接受。但在某些情況下顯得笨拙和冗余,尤其是用例比較復(fù)雜時(shí)。更好的寫法例如以下:
1.【用戶】命令【系統(tǒng)A】從【系統(tǒng)B】獲取后臺(tái)數(shù)據(jù)準(zhǔn)則10:習(xí)慣用語:“循環(huán)運(yùn)行步驟X到Y(jié),直到條件滿足”
有時(shí)候,我們會(huì)遇到須要反復(fù)的步驟。
對(duì)于僅僅有一個(gè)步驟須要反復(fù)。能夠直接在步驟中描寫敘述,如:“【用戶】在各種各樣的產(chǎn)品文件夾中尋找、直到發(fā)現(xiàn)所須要的產(chǎn)品。”
對(duì)于多個(gè)步驟須要反復(fù)的情況,能夠把表達(dá)反復(fù)運(yùn)行的語句放在這些反復(fù)步驟的前面或后面。比如:
1.【客戶】提供賬號(hào)或名字和地址 2.【系統(tǒng)】查出客戶的愛好信息 3.【客戶】選擇一個(gè)商品,并做上購買的標(biāo)記 4.【系統(tǒng)】將該商品增加客戶的“購物車”中客戶反復(fù)步驟3、4,直到客戶指明自己完畢了選購 5.【客戶】購買全部在“購物車”中的商品還有一種形式: 1.【客戶】提供賬號(hào)或名字和地址 2.【系統(tǒng)】查出客戶的愛好信息步驟3、4可反復(fù)運(yùn)行 3.【客戶】選擇一個(gè)商品,并做上購買的標(biāo)記 4.【系統(tǒng)】將該商品增加客戶的“購物車”中 5.【客戶】購買全部在“購物車”中的商品注意:在表達(dá)反復(fù)語句前面不須要加上序號(hào)。
準(zhǔn)則11:命名可選與異常事件流分支
為可選事件流、異常事件流中的分支進(jìn)行適當(dāng)?shù)拿S兄跍y(cè)試和理解。通過簡(jiǎn)單的命名,有利于檢視分支的覆蓋情況,保證全部的分支情況都得到了處理。
比如某系統(tǒng)登錄時(shí)的異常事件流:
5a.(錄入password方式認(rèn)證失敗)假設(shè)password方式認(rèn)證失敗,返回步驟3 5b.(連續(xù)輸入password錯(cuò)誤限制)假設(shè)連續(xù)3次輸出password錯(cuò)誤,則鎖定登錄。用例結(jié)束。5c.(錄入指紋方式認(rèn)證失敗)假設(shè)指紋認(rèn)證方式失敗,返回步驟3a
準(zhǔn)則12:條件處理的縮排方式
縮進(jìn)那些指明條件怎樣處理的運(yùn)行步驟,并在字母后又一次從編號(hào)1開始。運(yùn)行步驟遵循前面的準(zhǔn)則。
演示樣例:
5a.假設(shè)輸入password錯(cuò)誤:5a1.(password錯(cuò)誤)假設(shè)password錯(cuò)誤。系統(tǒng)提示錯(cuò)誤信息,返回步驟4。5a2.(連續(xù)password錯(cuò)誤限制)假設(shè)連續(xù)3次輸入password錯(cuò)誤。賬戶鎖死。用例結(jié)束。5a3.(累計(jì)password錯(cuò)誤限制)假設(shè)當(dāng)日password錯(cuò)誤達(dá)到10次,賬戶鎖死,用例結(jié)束。準(zhǔn)則13:同一條件處理的分支應(yīng)在一起
提出此準(zhǔn)則的原因是在某些條件處理的分支中,被分別放置在可選事件流和異常事件流中,影響閱讀和理解,也不利于檢視發(fā)現(xiàn)錯(cuò)誤。
錯(cuò)誤的示比例如以下: 正常事件流: …… 3.柜面通過核心系統(tǒng)檢驗(yàn)賬戶支取方式為預(yù)留password; …… 可選事件流: 3a.柜面通過核心系統(tǒng)檢驗(yàn)賬戶支取方式為印鑒——3a1.柜面提示“請(qǐng)檢查密封”3a2.柜員后檢查憑證,單擊提交隨機(jī)密鑰,回報(bào)6修改后,它是統(tǒng)一的事件的替代流: 可選的事件流: 3a.(印章的方式平局)賬戶取款設(shè)定方式斬:3a1.【系統(tǒng)】提示客戶檢查憑證;3a2.【出納員】檢查簽名后,。確認(rèn)提交系統(tǒng),運(yùn)行步驟6。 3b.(稅票秘密,畫畫等有效證件)假設(shè)占非印度秘密的方式繪制,畫畫等有效證件,【系統(tǒng)】提示“稅票秘密帳戶不支持的金融賬戶開放”,用例結(jié)束。轉(zhuǎn)載于:https://www.cnblogs.com/blfshiye/p/4560759.html
總結(jié)
以上是生活随笔為你收集整理的UseCase事件描述叙事流规范的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用c#开发微信 (14) 微统计 - 阅
- 下一篇: 线性表之链式存储结构