版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
用戶(hù)需求說(shuō)明書(shū)
編寫(xiě)指南
用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南文檔修訂記錄版本編號(hào)或者更改記錄編號(hào)變化狀態(tài)簡(jiǎn)要說(shuō)明(變更內(nèi)容和變更范圍)日期變更人批準(zhǔn)日期批準(zhǔn)人V1.0C初次創(chuàng)建2010-11-05張海彥V1.1A對(duì)文檔內(nèi)容進(jìn)行重新維護(hù),形成V1.1版本2015-04-24趙景越*變化狀態(tài):C——?jiǎng)?chuàng)建,A——增加,M——修改,D——?jiǎng)h除用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南目錄TOC\o"1-5"\h\z\o"CurrentDocument".確定系統(tǒng)邊界 1目的 1\o"CurrentDocument"確定執(zhí)行者 1\o"CurrentDocument"確定用例 1\o"CurrentDocument"描述執(zhí)行者和用例 2\o"CurrentDocument"處理時(shí)間 2\o"CurrentDocument"潛在的邊界問(wèn)題 3確定項(xiàng)目范圍 3\o"CurrentDocument"邊界和范圍的圖形化 3\o"CurrentDocument".編寫(xiě)基本用例 4\o"CurrentDocument"基本用例 4進(jìn)入與退出標(biāo)準(zhǔn) 5事件流 5\o"CurrentDocument"基本用例的評(píng)審 5\o"CurrentDocument"表示形式 6\o"CurrentDocument"其他需求 7\o"CurrentDocument"基本路徑 7\o"CurrentDocument"可選路徑 7\o"CurrentDocument"文檔化可選項(xiàng) 8\o"CurrentDocument"場(chǎng)景 12\o"CurrentDocument"關(guān)聯(lián)用例和執(zhí)行者 12\o"CurrentDocument". 高級(jí)用例 12\o"CurrentDocument"包含 12擴(kuò)展 14\o"CurrentDocument"繼承 14\o"CurrentDocument"接口 15\o"CurrentDocument".圖形化用例 15\o"CurrentDocument"活動(dòng)圖 16\o"CurrentDocument"時(shí)序圖 17\o"CurrentDocument".圖解用戶(hù)界面 18\o"CurrentDocument".常見(jiàn)錯(cuò)誤 18用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南1,確定系統(tǒng)邊界目的將項(xiàng)目的參與者定位到一個(gè)共同的和明確的方向上。確定系統(tǒng)中有什么(必須為創(chuàng)建他們投入大量精力),系統(tǒng)外有什么(不需要?jiǎng)?chuàng)建,但是必須考慮與它們的接口)。估計(jì)項(xiàng)目規(guī)模,定義要?jiǎng)?chuàng)建系統(tǒng)的哪些部分(在一定時(shí)間段和一定預(yù)算的基礎(chǔ)上。確定執(zhí)行者我們將采用用例分析技術(shù),通過(guò)確定執(zhí)行者和用例來(lái)確定系統(tǒng)邊界。在一些參考資料中,我們會(huì)經(jīng)??吹健巴獠繉?shí)體”這個(gè)術(shù)語(yǔ),我們認(rèn)為外部實(shí)體和執(zhí)行者具有同樣的含義。執(zhí)行者是同系統(tǒng)交互的事物,包括人、其它軟件、硬件設(shè)備、數(shù)據(jù)存儲(chǔ)或者網(wǎng)絡(luò)。每個(gè)執(zhí)行者定義一種特定的角色,每個(gè)系統(tǒng)之外的實(shí)體可以用一個(gè)或多個(gè)執(zhí)行者來(lái)代表。執(zhí)行者總是在系統(tǒng)之外,不是系統(tǒng)的一部分。提出下列問(wèn)題會(huì)幫助分析員確定執(zhí)行者:>誰(shuí)使用這個(gè)系統(tǒng)?>誰(shuí)安裝這個(gè)系統(tǒng)?誰(shuí)啟動(dòng)系統(tǒng)?誰(shuí)維護(hù)系統(tǒng)?誰(shuí)關(guān)閉系統(tǒng)?哪些其它的系統(tǒng)使用這個(gè)系統(tǒng)?誰(shuí)從這個(gè)系統(tǒng)獲取信息?誰(shuí)為這個(gè)系統(tǒng)提供信息?是否有事情自動(dòng)在預(yù)計(jì)的時(shí)間發(fā)生?1.3確定用例用例是系統(tǒng)的一種行為,它為執(zhí)行者產(chǎn)生一種可以估量的價(jià)值結(jié)果,它描述執(zhí)行者想要系統(tǒng)完成的事情。從執(zhí)行者的角度看,用例應(yīng)該是一個(gè)完整的任務(wù),一個(gè)用例行為經(jīng)常是在一個(gè)相對(duì)較短的時(shí)間段內(nèi)完成。如果用例的各部分被分在不同的時(shí)間段,尤其是被不同的執(zhí)行者執(zhí)行時(shí),最好還是將各部分作為單獨(dú)的用例對(duì)待。用例通常由執(zhí)行者啟動(dòng),所以我們可以從執(zhí)行者角度出發(fā),判斷有哪些用例。考慮以下問(wèn)題:執(zhí)行者希望系統(tǒng)提供什么樣的功能?系統(tǒng)存儲(chǔ)信息嗎?執(zhí)行者將要?jiǎng)?chuàng)建、讀取、更新或刪除什么信息?系統(tǒng)是否需要把自身內(nèi)部狀態(tài)的變化通知給執(zhí)行者?系統(tǒng)必須知道哪些外部的事件?執(zhí)行者將怎樣通知系統(tǒng)這些事件?用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南>怎樣修復(fù)系統(tǒng)?是否需要把系統(tǒng)關(guān)閉或者在系統(tǒng)運(yùn)行的情況下進(jìn)行系統(tǒng)維護(hù)?描述執(zhí)行者和用例用一個(gè)名字和簡(jiǎn)單的話描述每個(gè)執(zhí)行者和用例。建議采用“執(zhí)行者列表”和“用例表”分別描述執(zhí)行者和用例。表1 執(zhí)行者列表執(zhí)行者名稱(chēng)執(zhí)行者描述客戶(hù)代表ABC公司處理客戶(hù)請(qǐng)求的雇員客戶(hù)從ABC公司訂購(gòu)商品的人表2用例表用例觸發(fā)器來(lái)源動(dòng)作響應(yīng)目的地客戶(hù)發(fā)送訂單新訂單客戶(hù)生成新訂單實(shí)時(shí)連接信用卡部門(mén)訂單確認(rèn)客戶(hù)訂單細(xì)節(jié)發(fā)貨部門(mén)交易處理銀行用例:引起系統(tǒng)去執(zhí)行某種操作的事情;觸發(fā)器:系統(tǒng)如何知道這個(gè)用例發(fā)生了?或者是進(jìn)入系統(tǒng)的數(shù)據(jù),或者是定義好的時(shí)間點(diǎn)。來(lái)源:執(zhí)行者;動(dòng)作:當(dāng)用例發(fā)生時(shí),系統(tǒng)做了什么操作?響應(yīng):系統(tǒng)產(chǎn)生了什么樣的輸出結(jié)果(如果有的話)?目的地:哪個(gè)執(zhí)行者獲得了產(chǎn)生的輸出結(jié)果?首先,對(duì)每個(gè)用例來(lái)說(shuō),系統(tǒng)怎么知道某一事件發(fā)生了呢?用來(lái)通知系統(tǒng)某一事件發(fā)生了的事物稱(chēng)為觸發(fā)器。對(duì)于一個(gè)外部事件,觸發(fā)器就是系統(tǒng)必須處理的數(shù)據(jù)到達(dá)了。對(duì)于臨時(shí)事件,觸發(fā)器是某一個(gè)時(shí)間點(diǎn)。其次,當(dāng)用例發(fā)生時(shí),系統(tǒng)該做些什么呢?系統(tǒng)對(duì)用例的響應(yīng)稱(chēng)為動(dòng)作。最后,動(dòng)作導(dǎo)致系統(tǒng)產(chǎn)生什么響應(yīng)呢?響應(yīng)是系統(tǒng)的輸出結(jié)果。一個(gè)動(dòng)作通常會(huì)有多個(gè)響應(yīng)。目的地就是系統(tǒng)發(fā)送響應(yīng)的地方,也就是執(zhí)行者。注意,有些時(shí)候不需要系統(tǒng)響應(yīng)。處理時(shí)間在用例中主要用兩種方法來(lái)處理時(shí)間。一個(gè)方法是把時(shí)間當(dāng)作一個(gè)執(zhí)行者,然后由時(shí)間執(zhí)行者啟動(dòng)用例。第二種方法是把它當(dāng)作系統(tǒng)的一部分,用例在某個(gè)時(shí)間自己?jiǎn)?dòng)。2
用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南潛在的邊界問(wèn)題如果某些需求需要一個(gè)執(zhí)行者來(lái)處理,但是這個(gè)執(zhí)行者又超出了已經(jīng)確定的執(zhí)行者的范圍,怎么辦?需要確定這個(gè)執(zhí)行者是否真的是系統(tǒng)的一部分。如果不是,那么需求也就不能成為系統(tǒng)的一部分;如果是,那么看一看對(duì)它的描述,可能需要重新定義執(zhí)行者或者它的角色以使系統(tǒng)邊界清晰。如果執(zhí)行者變成系統(tǒng)的一部分,可能需要重新定義用例。當(dāng)你發(fā)現(xiàn)新的需求時(shí),應(yīng)該考慮的一些問(wèn)題如下:這些需求是否對(duì)系統(tǒng)是必須的?這些需求是系統(tǒng)在邏輯上可以完成的嗎?新的需求將如何影響我們目前的風(fēng)險(xiǎn)分析?這些需求是否可以被系統(tǒng)目前的執(zhí)行者處理?這些需求是客戶(hù)希望系統(tǒng)去做的嗎?這些需求會(huì)使產(chǎn)品在市場(chǎng)上變得與眾不同嗎?1.7確定項(xiàng)目范1.7確定項(xiàng)目范確定了系統(tǒng)的邊界之后,需要為系統(tǒng)確定一個(gè)范圍。一個(gè)項(xiàng)目有特定的開(kāi)始和結(jié)束的時(shí)間,用于完成項(xiàng)目目標(biāo)的資金也有一定的限制。所以,一定要清晰地定義系統(tǒng)將要包括和不包括的成分。使用需求優(yōu)先級(jí)的方法確定系統(tǒng)必須包含的事情,并確定沒(méi)有必要的事情確實(shí)被放在了一邊。建立了用例表以后,系統(tǒng)分析員可以和用戶(hù)進(jìn)一步溝通協(xié)商,也可以召開(kāi)聯(lián)系會(huì)議,確定列表中的用例哪些是在項(xiàng)目范圍以?xún)?nèi)的,哪些是項(xiàng)目范圍以外的。考慮下列問(wèn)題有助于確定下面的范圍:是否能夠應(yīng)付得了把這些需求添加到計(jì)劃和預(yù)算上去?是否應(yīng)該再有一個(gè)后期的版本?如果我們不得不現(xiàn)在考慮這些,是否可以把其它需求移到后期版本?1.8邊界和范圍的圖形化1.8邊界和范圍的圖形化使用用例圖,描述項(xiàng)目的邊界和范圍??梢杂肰isio畫(huà)用例圖。下面是用例圖用到的圖形符號(hào)圖1 用例的圖形符號(hào)主角1系統(tǒng)邊界接口1執(zhí)行者用例接口擴(kuò)展包含
主角1系統(tǒng)邊界接口1執(zhí)行者用例接口擴(kuò)展包含用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南下面是一個(gè)“訂單處理系統(tǒng)”的邊界和范圍圖,本文后續(xù)的部分,都將以“訂單處理系統(tǒng)”為例子。需要注意的是,千萬(wàn)不要認(rèn)為有了用例圖,就可以不寫(xiě)文檔了。事實(shí)上,圖形僅僅是更直觀地表現(xiàn)用戶(hù)需求的一種方式,文字描述還是必不可少的。我們建議采用的文字描述方式還是上文提到的“用例列表”。2,編寫(xiě)基本用例2.1基本用例每個(gè)用例必須包含一些細(xì)節(jié),這些細(xì)節(jié)告訴我們需要完成哪些步驟才能實(shí)現(xiàn)這個(gè)用例的功能。我們需要考慮基本功能、所有可選方案、異常情況,進(jìn)入用例之前以及退出用例時(shí)必須正確的因素。用例可以包含條件、分支和循環(huán)?,F(xiàn)在讓我們看一個(gè)可能的用例例子:訂單處理系統(tǒng)。表3 訂單處理系統(tǒng)的用例
用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南進(jìn)入標(biāo)準(zhǔn):一個(gè)合法的用戶(hù)已經(jīng)登錄到這個(gè)系統(tǒng);事件流:.當(dāng)客戶(hù)選擇訂購(gòu)貨物時(shí),用例開(kāi)始;.客戶(hù)輸入他的姓名和地址;.如果客戶(hù)只輸入郵編,系統(tǒng)將給出城市名;.客戶(hù)輸入想購(gòu)買(mǎi)產(chǎn)品的代碼;.系統(tǒng)為每一項(xiàng)給出產(chǎn)品描述和價(jià)格;.系統(tǒng)保存連續(xù)的已經(jīng)訂購(gòu)的產(chǎn)品清單;.客戶(hù)輸入信用卡支付信息;.客戶(hù)選擇submit;.系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)轉(zhuǎn)發(fā)支付信息。如果客戶(hù)提交的信息不正確,系統(tǒng)將提示客戶(hù)修改;.當(dāng)支付確認(rèn)后,訂單就被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給用戶(hù)一個(gè)訂單ID,用例結(jié)束。如果支付沒(méi)有被確認(rèn),系統(tǒng)將提示客戶(hù)改正支付信息或者取消。如果客戶(hù)選擇修改信息,就回到第7步;如果選擇取消,用例結(jié)束。退出標(biāo)準(zhǔn):如果訂單沒(méi)有被取消,它將被保存在系統(tǒng)里,并做上標(biāo)記。2.1.1進(jìn)入與退出標(biāo)準(zhǔn)2.1.1進(jìn)入與退出標(biāo)準(zhǔn)進(jìn)入與退出標(biāo)準(zhǔn)表示用例開(kāi)始和結(jié)束時(shí)會(huì)發(fā)生什么,即在用例開(kāi)始時(shí)系統(tǒng)必須處在什么狀態(tài),用例結(jié)束時(shí)系統(tǒng)必須處在什么狀態(tài)。不管緊隨用例之后是哪個(gè)分支或選擇,退出標(biāo)準(zhǔn)都必須為真。2.1.2事件流從執(zhí)行者的角度看,事件流是一系列陳述句,它列出了用例的各個(gè)步驟:告訴我們它如何開(kāi)始,使用一個(gè)像“當(dāng)……時(shí)用例開(kāi)始”的描述。用例是為軟件做的,軟件如何知道什么時(shí)候用例開(kāi)始?同樣地,用例如何結(jié)束?可以使用如“用例結(jié)束”的短語(yǔ)清晰地陳述它。使用分支可以表示選擇。為了表示分支,我們可以使用一個(gè)if語(yǔ)句。當(dāng)需要重復(fù)一個(gè)或一系列步驟時(shí),可以使用循環(huán)。要清晰地指出循環(huán)在哪兒開(kāi)始以及在哪兒結(jié)束,還要清楚地指出如何結(jié)束。我們可以使用for語(yǔ)句或者while語(yǔ)句來(lái)表示循環(huán)?;居美脑u(píng)審用例的編寫(xiě)過(guò)程中需要進(jìn)行多次評(píng)審,基本用例結(jié)束之后,是最佳的評(píng)審時(shí)間。我們給出首次評(píng)審用例的基本原則。用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南用例的每一步都應(yīng)該是一個(gè)簡(jiǎn)單的陳述句,缺省時(shí)這些步驟按時(shí)間順序執(zhí)行。如果這些步驟可以按任何順序發(fā)生,需要清晰地描述。避免試圖做得太細(xì),我們將隨著時(shí)間的推進(jìn)添加更多的細(xì)節(jié),但是這一階段,我們是在收集需求,而不是詳細(xì)分析或設(shè)計(jì)。另一方面,用例還要完整,開(kāi)始和結(jié)束時(shí)都必須非常清楚,確保這一系列的步驟大體上包含了完成用例功能所需要的一切。>用例是一個(gè)傳達(dá)工具,只有它們向讀者傳達(dá)關(guān)于系統(tǒng)如何工作的信息時(shí)才有效。因此考慮誰(shuí)會(huì)閱讀用例是很重要的,是最終用戶(hù)、市場(chǎng)專(zhuān)家、開(kāi)發(fā)人員還是管理人員?不管是誰(shuí),他們必須能夠理解用例。如果他們不能理解用例,這個(gè)用例就需要改寫(xiě)了。不要擔(dān)心如何才能使用例完美,這個(gè)過(guò)程的特征就是不斷反復(fù)。要持續(xù)查看已經(jīng)完成的工作,并且精簡(jiǎn)它,以反映了解到的情況。用例質(zhì)量會(huì)隨著分析員對(duì)系統(tǒng)了解的深入而提高。必須在用例中包含足夠的信息,以判斷是不是用了特定的用例處理了特定的功能。表示形式可以非常正式地或者較自由地表示用例,但要清楚用例的讀者,從而選擇一個(gè)易于被讀者接受的形式。我們推薦了兩種形式,項(xiàng)目經(jīng)理可以從中選擇。一種是用編號(hào)序列來(lái)表示用例(表4),另一種是用表格形式表示(表5)。表4取消訂單用例的編號(hào)序列表示.當(dāng)客戶(hù)收到取消訂單的請(qǐng)求時(shí),用例開(kāi)始;.客戶(hù)代表輸入一個(gè)訂單ID;.客戶(hù)代表按下“查找”;.系統(tǒng)顯示這個(gè)訂單的內(nèi)容;.客戶(hù)代表選擇取消;.系統(tǒng)將該訂單做上取消標(biāo)志;.記賬系統(tǒng)收到向客戶(hù)賬號(hào)中加錢(qián)的通知,用例結(jié)束。表5取消訂單用例的表格形式客戶(hù)代表系統(tǒng)記賬系統(tǒng).接收到一個(gè)取消訂單的請(qǐng)求.輸入一個(gè)訂單ID;.按下“查找”用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南5.選擇取消4.顯示訂單內(nèi)容6.給該訂單打上取消標(biāo)志7.向客戶(hù)賬號(hào)中加錢(qián)其他需求分析員編寫(xiě)用例的時(shí)候,可能會(huì)發(fā)現(xiàn)一些需求對(duì)執(zhí)行者并不可見(jiàn),或者有一些特殊的需求很難在用例中表示。這些需求需要和用例一起記錄下來(lái),它們同樣是系統(tǒng)的一個(gè)組成部分。當(dāng)構(gòu)建和測(cè)試系統(tǒng)時(shí),必須將它們考慮進(jìn)去。你可以將它們歸到其他的需求文檔,這些文檔和用例文檔編排在一起。有時(shí)這些需求是非功能性的需求,如可用性、安全性、穩(wěn)定性、可維護(hù)性等方面的內(nèi)容。如果需求是針對(duì)一個(gè)特殊的用例,可以在用例描述中添加一個(gè)專(zhuān)門(mén)的需求部分:“特殊需求”。其他文檔常常是伴隨用例開(kāi)發(fā)出來(lái)的,這些文檔包含一個(gè)術(shù)語(yǔ)表、一個(gè)數(shù)據(jù)定義文檔以及用戶(hù)接口的指導(dǎo)原則。還需要一個(gè)文檔,它列出了需要解決的重要問(wèn)題。到目前為止,我們已經(jīng)確定了用例的基本路徑。但是一個(gè)完整的用例描述可能相當(dāng)復(fù)雜,并不像最開(kāi)始時(shí)所寫(xiě)的那樣,它會(huì)隨著時(shí)間的推移不斷發(fā)展?;韭窂接美幕臼录鞔_定了以后,還要考慮所有可能的出錯(cuò)條件。一個(gè)完整的用例描述可能相當(dāng)復(fù)雜,它是隨著時(shí)間的推移不斷發(fā)展的。事件流分為兩個(gè)部分:基本路徑和可選路徑。當(dāng)一切運(yùn)轉(zhuǎn)正常時(shí)我們就得到了基本路徑。沒(méi)有故障、沒(méi)有錯(cuò)誤,是一個(gè)完美的境界。每個(gè)用例都必須有一個(gè)基本路徑。可選路徑基本路徑確定了之后,就要擴(kuò)充可選路徑。一個(gè)可選路徑指的是不同于基本路徑而允許不同的事件序列的路徑??蛻?hù)可以從用例的若干事情中挑選一件事情來(lái)做,最可能的選擇歸入基本路徑。對(duì)于明顯有可能隨時(shí)發(fā)生的事情來(lái)說(shuō),可選路徑非常有效。找出可選路徑的方法就是沿著基本路徑一條一條地找,并且考慮:在這個(gè)點(diǎn)上,還可以執(zhí)行別的活動(dòng)嗎?在這個(gè)點(diǎn)上,有沒(méi)有什么可以出錯(cuò)的?有什么隨時(shí)可能發(fā)生的行為嗎?用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南另一種方法就是用以下典型問(wèn)題去發(fā)現(xiàn)可選路徑:>執(zhí)行者退出應(yīng)用程序;>執(zhí)行者取消指定操作;>執(zhí)行者請(qǐng)求幫助;>執(zhí)行者提供了不正確的數(shù)據(jù);>執(zhí)行者提供了不完整的數(shù)據(jù);>執(zhí)行者提供了一個(gè)執(zhí)行用例的可選方法;>系統(tǒng)崩潰;>系統(tǒng)不可用。每個(gè)可選路徑需要一個(gè)名字或一個(gè)簡(jiǎn)單的描述,如表6所示。表6 通過(guò)分類(lèi)訂購(gòu)貨物附加的可選項(xiàng)不完整的數(shù)據(jù)沒(méi)有付費(fèi);訂單不完整;運(yùn)送地址不完整不正確的數(shù)據(jù)密碼錯(cuò)誤、用戶(hù)名錯(cuò)誤、產(chǎn)品代碼錯(cuò)誤、無(wú)效支付??蛇x行為客戶(hù)通過(guò)支票付款、客戶(hù)通過(guò)發(fā)郵件或電話訂購(gòu)。取消操作客戶(hù)取消這次訂購(gòu)系統(tǒng)崩潰系統(tǒng)在訂購(gòu)過(guò)程中崩潰系統(tǒng)不可用系統(tǒng)沒(méi)有響應(yīng)、客戶(hù)不能登錄、訂單丟失對(duì)于每個(gè)基本路徑,簡(jiǎn)單地列出所有你能夠想到的可選路徑和異常情況。識(shí)別出可選路徑和異常后,用新的假設(shè)更新假設(shè)列表。這張列表將在評(píng)審時(shí)提交給由用戶(hù)、客戶(hù)、市場(chǎng)人員組成的評(píng)委。文檔化可選項(xiàng)重要而復(fù)雜的可選路徑還需要一系列步驟去細(xì)化它們的行為,可以用寫(xiě)基本路徑的方法去寫(xiě)可選路徑。我們將用訂購(gòu)貨物用例基本路徑,使用不同的方法調(diào)整它,從多方面說(shuō)明此類(lèi)技術(shù),并且討論每種技術(shù)的優(yōu)缺點(diǎn)。表7 原來(lái)的訂購(gòu)貨物用例事件流:基本路徑:.當(dāng)客戶(hù)選擇訂購(gòu)貨物時(shí)用例開(kāi)始;.客戶(hù)輸入他的姓名和地址;.當(dāng)客戶(hù)輸入產(chǎn)品代碼a)系統(tǒng)顯示產(chǎn)品描述和價(jià)格;用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南b)系統(tǒng)在該客戶(hù)的訂單中添加這個(gè)物品的價(jià)格.客戶(hù)輸入信用卡支付信息;.客戶(hù)選擇submit;.系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)提供支付信息;.當(dāng)支付被確認(rèn)后,訂單也被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶(hù)一個(gè)訂單ID,用例結(jié)束。第一個(gè)技術(shù)是直接往用例文本中添加可選項(xiàng),適當(dāng)?shù)靥砑有碌臉?biāo)號(hào)步驟。這個(gè)技術(shù)的優(yōu)點(diǎn)是可以非常容易地看到用例中可能的行為,缺點(diǎn)是它會(huì)導(dǎo)致用例難以理解和閱讀。添加的內(nèi)容以藍(lán)色字體表示。(表7)。表7 添加可選項(xiàng)的訂購(gòu)貨物用例事件流:基本路徑:.當(dāng)客戶(hù)選擇訂購(gòu)貨物時(shí)用例開(kāi)始;.客戶(hù)輸入他的姓名和地址;.如果客戶(hù)只輸入郵編,系統(tǒng)給出城市。.客戶(hù)輸入將要訂購(gòu)產(chǎn)品的代碼.對(duì)每個(gè)輸入的代碼a)如果系統(tǒng)中有該產(chǎn)品代碼,系統(tǒng)提供該產(chǎn)品的介紹和價(jià)格,并在該客戶(hù)的訂單中添加這個(gè)物品的價(jià)格。b)如果系統(tǒng)中沒(méi)有這個(gè)產(chǎn)品代碼則打印出錯(cuò)信息,提示客戶(hù)輸入新的產(chǎn)品代碼。.客戶(hù)輸入信用卡支付信息;.客戶(hù)選擇submit;.系統(tǒng)核查支付信息.如果所有的信息都正確,用例就從第13步繼續(xù)執(zhí)行.如果客戶(hù)沒(méi)有輸入支付信息,系統(tǒng)提示客戶(hù)輸入支付信息或取消.如果客戶(hù)選擇取消,用例結(jié)束.如果客戶(hù)輸入新的支付信息并選擇submit,用例從第8步開(kāi)始重復(fù).系統(tǒng)把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)提供支付信息;.如果記賬系統(tǒng)確認(rèn)支付信息正確,訂單被標(biāo)上已經(jīng)確認(rèn),一個(gè)訂單ID就返回給客戶(hù),用例結(jié)束。.如果記賬系統(tǒng)返回錯(cuò)誤,系統(tǒng)就打印出錯(cuò)信息,提示客戶(hù)輸入新的支付信息或者取消;.如果客戶(hù)選擇取消,用例結(jié)束;.如果客戶(hù)選擇輸入新的支付信息,用例從第6步開(kāi)始重復(fù)。用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南第二個(gè)技術(shù)是在原來(lái)的基礎(chǔ)上,在段落中增加可選項(xiàng)。這比前面的例子更易于閱讀,而以前的步驟成為這個(gè)用例的基本理解的標(biāo)題,可選項(xiàng)細(xì)節(jié)和錯(cuò)誤處理成為編號(hào)步驟的下級(jí)段落。這種方式不改變?cè)瓉?lái)的步驟編號(hào)。(表8)。表8 在段落中添加可選項(xiàng)的訂購(gòu)貨物用例事件流:基本路徑:.當(dāng)客戶(hù)選擇訂購(gòu)貨物時(shí)用例開(kāi)始;.客戶(hù)輸入他的姓名和地址;如果客戶(hù)只輸入郵編,系統(tǒng)提供城市。.客戶(hù)輸入產(chǎn)品代碼.對(duì)每個(gè)輸入的產(chǎn)品代碼a)系統(tǒng)給出該產(chǎn)品的介紹和價(jià)格。如果系統(tǒng)中沒(méi)有這個(gè)產(chǎn)品代碼則顯示出錯(cuò)信息,提示客戶(hù)輸入新的產(chǎn)品代碼。b)系統(tǒng)在該客戶(hù)的訂單中添加這個(gè)物品的價(jià)格若物品未找到,訂單保持不變;循環(huán)結(jié)束。.客戶(hù)輸入信用卡支付信息;.客戶(hù)選擇submit;.系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)提供支付信息;如果客戶(hù)沒(méi)有輸入支付信息,系統(tǒng)將提示客戶(hù)輸入支付信息或取消;如果客戶(hù)選擇取消,用例結(jié)束。入客戶(hù)輸入新的支付信息,客戶(hù)選擇submit,用例從第7步重復(fù)。.當(dāng)支付被確認(rèn)后,訂單也被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶(hù)一個(gè)訂單ID,用例結(jié)束。如果記賬系統(tǒng)返回錯(cuò)誤,系統(tǒng)打印出錯(cuò)信息,提示客戶(hù)輸入新的支付信息或者取消。如果客戶(hù)選擇取消,用例結(jié)束。如果客戶(hù)選擇輸入新的支付信息,用例從第5步重復(fù)。第三個(gè)技術(shù)是把可選項(xiàng)放在用例文檔的其他部分,這個(gè)部分稱(chēng)為可選路徑部分,它緊接著基本路徑(表9)。這個(gè)方法的優(yōu)點(diǎn)是基本路徑很容易理解,同時(shí)又有足夠的空間來(lái)展示可選項(xiàng)的細(xì)節(jié)。但是缺點(diǎn)是查找關(guān)于每一可選項(xiàng)的所有信息時(shí),必須瀏覽好幾頁(yè)文檔。表9 使用可選路徑部分的訂購(gòu)貨物用例事件流:基本路徑:.當(dāng)客戶(hù)選擇訂購(gòu)貨物時(shí)用例開(kāi)始;.客戶(hù)輸入他的姓名和地址;.客戶(hù)輸入產(chǎn)品代碼.對(duì)每個(gè)輸入的產(chǎn)品代碼10用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南c)系統(tǒng)顯示產(chǎn)品描述和價(jià)格;d)系統(tǒng)在該客戶(hù)的訂單中添加這個(gè)物品的價(jià)格.客戶(hù)輸入信用卡支付信息;.客戶(hù)選擇submit;.系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)提供支付信息;.當(dāng)支付被確認(rèn)后,訂單也被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶(hù)一個(gè)訂單ID,用例結(jié)束。可選路徑:在第7步,如果有任何不正確的信息,系統(tǒng)提示客戶(hù)修改這些信息;在選擇submit之前的任何時(shí)候,客戶(hù)可以取消這次訂購(gòu),用例結(jié)束;在第8步,如果支付沒(méi)有確認(rèn),系統(tǒng)將提示客戶(hù)去修正支付信息或取消。如果客戶(hù)選擇修正信息,就回到基本路徑的第5步,否則用例結(jié)束。表9中的可選項(xiàng)部分可以用與基本路徑相同的方式書(shū)寫(xiě),見(jiàn)表10。事件流:基本路徑:.當(dāng)客戶(hù)選擇訂購(gòu)貨物時(shí)用例開(kāi)始;.如果客戶(hù)只輸入郵編,系統(tǒng)提供城市。.客戶(hù)輸入他的姓名和地址;.客戶(hù)輸入產(chǎn)品代碼.對(duì)每個(gè)輸入的產(chǎn)品代碼e)系統(tǒng)顯示產(chǎn)品描述和價(jià)格;f)系統(tǒng)在該客戶(hù)的訂單中添加這個(gè)物品的價(jià)格循環(huán)結(jié)束。.客戶(hù)輸入信用卡支付信息;.客戶(hù)選擇submit;.系統(tǒng)檢驗(yàn)輸入的信息,把該訂單作為未完成的交易保存,同時(shí)向記賬系統(tǒng)提供支付信息;.當(dāng)支付被確認(rèn)后,訂單也被標(biāo)記上已經(jīng)確認(rèn),同時(shí)返回給客戶(hù)一個(gè)訂單ID,用例結(jié)束??蛇x路徑:可選項(xiàng)1:不正確的數(shù)據(jù).如果有任何不正確的信息,可選項(xiàng)就從基本路徑的第8步開(kāi)始;.系統(tǒng)提示客戶(hù)修正錯(cuò)誤的信息;.基本路徑從第8不開(kāi)始繼續(xù)執(zhí)行??蛇x項(xiàng)2:取消.在訂購(gòu)貨物用例的任何時(shí)候,客戶(hù)都可能選擇取消;.系統(tǒng)提示客戶(hù)驗(yàn)證是否取消;11
用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南.客戶(hù)選擇“OK”鍵,用例結(jié)束。可選路徑細(xì)化到什么程度?很多情況下,不必寫(xiě)下整個(gè)的步驟序列,只需要用簡(jiǎn)潔的話描述可選路徑引起的變動(dòng)。.8場(chǎng)景任意一條貫穿用例的特定路徑,我們稱(chēng)為場(chǎng)景。上述訂購(gòu)貨物的用例中,包括的場(chǎng)景有一個(gè)正確付款的完整的賬單到達(dá);缺少支付的訂單到達(dá);缺少送貨地址的訂單到達(dá)。.9關(guān)聯(lián)用例和執(zhí)行者我們已經(jīng)把用例的細(xì)節(jié)寫(xiě)出來(lái)了,知道誰(shuí)開(kāi)始用例一一執(zhí)行者,但是我們還沒(méi)有考慮如何以圖示的形式表示執(zhí)行者和用例之間的關(guān)系。它們之間的關(guān)系是通過(guò)通信關(guān)聯(lián)表示的,啟動(dòng)方向是通過(guò)在通信關(guān)聯(lián)中添加箭頭實(shí)現(xiàn)的。我們用例子來(lái)說(shuō)明,見(jiàn)圖3和圖4。由系統(tǒng)啟動(dòng)的獲得訂單狀態(tài)用例由客戶(hù)啟動(dòng)訂購(gòu)貨物用例客戶(hù)由系統(tǒng)啟動(dòng)的獲得訂單狀態(tài)用例由客戶(hù)啟動(dòng)訂購(gòu)貨物用例客戶(hù)3.高級(jí)用例開(kāi)發(fā)了基本用例之后,系統(tǒng)分析員可能會(huì)發(fā)現(xiàn)有必要對(duì)基本用例進(jìn)行優(yōu)化。用于優(yōu)化的技術(shù)有包含、擴(kuò)展、繼承和接口。然而,我們的目的是制作一個(gè)清楚易懂的文檔。因此,對(duì)于最終用戶(hù),唯一的優(yōu)化技術(shù)是包含(Include)。其它技術(shù)擴(kuò)展(Extend)、接口(1成0f2?6)和繼承(Inheritance)只是開(kāi)發(fā)人員感興趣的,不是最終用戶(hù)關(guān)心的。包含如果你發(fā)現(xiàn)自己經(jīng)常裁剪或粘貼同一部分內(nèi)容,就意味著你已經(jīng)有了可以重用的通用部分了,你可以用一種包含關(guān)系來(lái)抽象這種通用行為。從定義一個(gè)你在很多地方都需要用到的12用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南步驟開(kāi)始,把這些步驟放在一個(gè)用例里,然后給它命名。比如在訂單處理系統(tǒng)中,通過(guò)客戶(hù)ID、訂單ID和客戶(hù)名等一系列步驟來(lái)搜索一個(gè)訂單,這種搜索需要在很多的用例中用到,包括獲得訂單狀態(tài)、取消訂單、退貨等等,我們稱(chēng)這個(gè)用例為搜索訂單?,F(xiàn)在從原始用例中抽出這些步驟,把它們替換成一個(gè)引用,指向新構(gòu)成的用例(表11)。表11搜索訂單用例.當(dāng)客戶(hù)鍵入訂單ID、客戶(hù)ID或者客戶(hù)名時(shí),用例開(kāi)始;.客戶(hù)點(diǎn)擊Find;.如果客戶(hù)鍵入訂單IDa)系統(tǒng)顯示訂單,用例結(jié)束.如果客戶(hù)鍵入客戶(hù)名或者客戶(hù)IDa)系統(tǒng)返回當(dāng)前客戶(hù)的所有訂單表b)客戶(hù)在這個(gè)列表中選擇一個(gè)訂單c)系統(tǒng)顯示這個(gè)訂單,然后用例結(jié)束。表12 有包含關(guān)系的取消訂單用例.客戶(hù)鍵入請(qǐng)求取消一個(gè)訂單,用例開(kāi)始.包含搜索訂單;.如果這個(gè)訂單狀態(tài)被確認(rèn)a)系統(tǒng)標(biāo)志訂單取消b)系統(tǒng)通知記賬系統(tǒng)向客戶(hù)賬號(hào)中加錢(qián),用例結(jié)束;.如果訂單狀態(tài)是已運(yùn)送a)系統(tǒng)通知發(fā)貨部門(mén),用例結(jié)束。當(dāng)取消訂單用例執(zhí)行到搜索訂單步驟的時(shí)候,就會(huì)執(zhí)行搜索訂單中的步驟,然后返回到取消訂單繼續(xù)執(zhí)行以下的步驟。用例圖的表示方法如下(圖5):13用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南圖5圖5.2擴(kuò)展擴(kuò)展一般用于有條件地?cái)U(kuò)展已有用例的行為,這是一種在不改變?cè)加美那闆r下增加用例行為的一種方法。因?yàn)閿U(kuò)展技術(shù)不是必不可少的,我們建議系統(tǒng)分析員盡量不使用。.3繼承在用例圖中,繼承可以在執(zhí)行者或者用例之間使用。繼承是一個(gè)“種屬”關(guān)系,其中一個(gè)元素是其它元素的一種。執(zhí)行者之間的繼承意味著一個(gè)執(zhí)行者可以完成另一個(gè)執(zhí)行者的同樣任務(wù),它也補(bǔ)充額外的角色,它以同樣的方式與相同的用例進(jìn)行交互。用例之間的繼承意味著一個(gè)用例是另一個(gè)用例的特殊的版本。這個(gè)特殊的用例從一個(gè)通用用例中繼承行為或者增加行為??匆幌略谟唵翁幚硐到y(tǒng)中(圖2)的一個(gè)簡(jiǎn)單例子。客戶(hù)和客戶(hù)代表有相同的與之進(jìn)行交互的用例集合。我們通過(guò)加入執(zhí)行者之間的繼承可以使得用例圖大為簡(jiǎn)化。見(jiàn)圖6。客戶(hù)代表SaleReport圖614
客戶(hù)代表SaleReport圖614用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南.4接口接口是為執(zhí)行者、用例或者兩者定義的。一個(gè)接口可以告訴我們希望實(shí)體做什么。接口不是執(zhí)行者或者用例的一部分,是對(duì)怎么樣與執(zhí)行者和用例交互的一種描述。你可以為任何執(zhí)行者和用例設(shè)置多個(gè)接口。第一步:定義接口。接口由名字和操作符號(hào)組成,一個(gè)操作符號(hào)告訴我們操作發(fā)生時(shí)傳輸何種數(shù)據(jù)以及在操作結(jié)束時(shí)將何種數(shù)據(jù)返回給我們,操作告訴我們希望實(shí)體做什么。還是考慮訂購(gòu)貨物的例子,我們發(fā)現(xiàn)從庫(kù)存系統(tǒng)中得到產(chǎn)品描述和價(jià)格是必需的,我們?yōu)閹?kù)存系統(tǒng)定義接口如下:表13接口的例子PRODUCTINFO接口得到產(chǎn)品描述和價(jià)格,返回產(chǎn)品描述、價(jià)格、庫(kù)存數(shù)量第二步,把它們加到用例圖中。執(zhí)行者和接口之間直線的意思是執(zhí)行者支持接口;虛線表示使用這個(gè)接口的用例,見(jiàn)圖7。庫(kù)存系統(tǒng)庫(kù)存系統(tǒng)圖7如果執(zhí)行者不是人,那么這個(gè)接口將是一段程序命令,用它來(lái)與執(zhí)行者進(jìn)行交互。比如,如果執(zhí)行者是一個(gè)網(wǎng)絡(luò),接口可能是TCP/IP命令。如果執(zhí)行者是與訂單處理系統(tǒng)相交互的庫(kù)存系統(tǒng),就需要找出什么樣的命令可以發(fā)送到庫(kù)存系統(tǒng),這些命令將到庫(kù)存系統(tǒng)執(zhí)行者的接口。使用接口技術(shù)的最主要目的主要是兩個(gè)問(wèn)題,一個(gè)是建立用例和人機(jī)界面的聯(lián)系,一個(gè)是確定用例使用到的數(shù)據(jù)。有關(guān)繼承、接口、擴(kuò)展的更進(jìn)一步細(xì)節(jié)可以參考相關(guān)的文獻(xiàn)。.圖形化用例15
用戶(hù)需求說(shuō)明書(shū)編寫(xiě)指南我們已經(jīng)花了很多時(shí)間為用例書(shū)寫(xiě)文本,但是,大家都知道,一幅圖表示的意思勝似千言萬(wàn)語(yǔ),所以我們建議適當(dāng)?shù)臅r(shí)候采用圖形的方式對(duì)用例進(jìn)行描述。所謂適當(dāng)?shù)臅r(shí)候,指的是以下兩種情況。一種是系統(tǒng)分析員理解用戶(hù)的需求,但是不能準(zhǔn)確地用文字描述,可以借助圖形描述;另一種情況是不完全理解用戶(hù)的需求,可以借助圖形進(jìn)一步與用戶(hù)進(jìn)行溝通。圖形化的方式很多,典型的有活動(dòng)圖和時(shí)序圖。這兩種圖各有千秋,由項(xiàng)目經(jīng)理根據(jù)項(xiàng)目的特點(diǎn)進(jìn)行選擇,也可以混合使用?;顒?dòng)圖活動(dòng)圖類(lèi)似于流程圖
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 互聯(lián)網(wǎng)服務(wù)備案管理規(guī)則
- 猶太教堂防水施工墻面協(xié)議
- 研發(fā)經(jīng)理解除聘用合同分析
- 圖書(shū)館環(huán)境衛(wèi)生工招聘合同
- 2024年網(wǎng)絡(luò)游戲運(yùn)營(yíng)合同范本
- 2024年物聯(lián)網(wǎng)技術(shù)應(yīng)用開(kāi)發(fā)與合作合同
- 地下排水樁基夯擴(kuò)樁施工合同
- 2025年酒水新品研發(fā)與技術(shù)合作合同2篇
- 2025版智能家居系統(tǒng)解決方案供貨與安裝合同
- 2024年瑜伽館學(xué)員培訓(xùn)協(xié)議3篇
- 腦卒中偏癱患者早期康復(fù)護(hù)理現(xiàn)狀(一)
- 模特的基礎(chǔ)訓(xùn)練
- 急救技術(shù)-洗胃術(shù) (2)
- 藥品招商流程
- 混凝土配合比檢測(cè)報(bào)告
- 100道遞等式計(jì)算(能巧算得要巧算)
- 【2019年整理】園林景觀設(shè)計(jì)費(fèi)取費(fèi)標(biāo)準(zhǔn)
- 完整word版,ETS5使用教程
- 《血流動(dòng)力學(xué)監(jiān)測(cè)》PPT課件.ppt
- 2018年秋季人教版十一冊(cè)數(shù)學(xué)第7、8單元測(cè)試卷
- 學(xué)生作業(yè)提交與批閱系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)探討
評(píng)論
0/150
提交評(píng)論