標(biāo)識(shí)方法,并闡明他們的好處和缺點(diǎn)。能選擇最適合你的方法。
(1) 序列號(hào)最簡(jiǎn)單的方法是賦予每個(gè)需求一個(gè)唯一的序列號(hào),例如SRS-13。當(dāng)一個(gè)新的需求加入到商業(yè)需求管理工具的數(shù)據(jù)庫(kù)之后,這些管理工具就會(huì)為其分配一個(gè)序列號(hào)(許多這樣的工具也支持層次化編號(hào))。序列號(hào)的前綴代表了需求類(lèi)型,例如SRS代表“軟件需求說(shuō)明”。由于序列號(hào)不能重用,所以把需求從數(shù)據(jù)庫(kù)中刪除時(shí),并不釋放其所占據(jù)的序列號(hào),而新的需求只能得到下一個(gè)可用的序列號(hào)。這種簡(jiǎn)單的編號(hào)方法并不能提供所有相關(guān)需求在邏輯上或?qū)哟紊系牟顒e,而且需求的標(biāo)識(shí)不能提供所有有關(guān)每個(gè)需求內(nèi)容的信息。
(2) 層次化編碼這也許是最常用的方法。如果功能需求出目前軟件需求規(guī)格說(shuō)明中第3 . 2部分,那么他們將具有諸如3.2.4.3這樣的標(biāo)識(shí)號(hào)。標(biāo)識(shí)號(hào)中的數(shù)字越多則表示該需求越周詳,屬于較低層次上的需求。即使在一個(gè)中型的軟件需求規(guī)格說(shuō)明中,這些標(biāo)識(shí)號(hào)也會(huì)擴(kuò)展到許多位數(shù)字,并且這些標(biāo)識(shí)也不提供所有有關(guān)每個(gè)需求目的的信息。如果你要插入一個(gè)新的需求,那么該需求所在部分其后所有需求的序號(hào)將要增加。刪除或移去一個(gè)需求,那么該需求所在部分其后所有需求的序號(hào)將要減少。但其他地方的引用將混亂,對(duì)于這種簡(jiǎn)單的層次化編號(hào)的一種改進(jìn)方法是對(duì)需求中主要的部分進(jìn)行層次化編號(hào),然后對(duì)于每個(gè)部分中的單一功能需求用一個(gè)簡(jiǎn)短文字代碼加上一個(gè)序列號(hào)來(lái)識(shí)別。例如,軟件需求規(guī)格說(shuō)明可能包含“第3.2.5部分?編輯功能”,并將此部分編寫(xiě)成子模塊文件,然后設(shè)置管理。
有時(shí),你覺(jué)得缺少特定需求的某些信息。在解決這個(gè)不確定性之前,可能必須和客戶商議、檢查和另一個(gè)系統(tǒng)的接口或定義另一個(gè)需求。使用“待確定”(to be determined, TBD或采用漢語(yǔ)拼音略寫(xiě)DQD)符號(hào)作為標(biāo)準(zhǔn)指示器來(lái)強(qiáng)調(diào)軟件需求規(guī)格說(shuō)明中這些需求的缺陷。通過(guò)這種方法,你能在軟件需求規(guī)格說(shuō)明中查找所要澄清需求的部分。記錄誰(shuí)將解決哪個(gè)問(wèn)題、怎樣解決及什么時(shí)候解決。把每個(gè)TBD編號(hào)并創(chuàng)建一個(gè)TBD列表,這有助于方便地跟蹤每個(gè)項(xiàng)目。
在繼續(xù)進(jìn)行構(gòu)造需求集合之前,必須解決所有的TBD問(wèn)題,因?yàn)樗羞z留下來(lái)的不確定問(wèn)題將會(huì)增加出錯(cuò)的風(fēng)險(xiǎn)和需求返工。當(dāng)研發(fā)人員遇見(jiàn)一個(gè)TBD問(wèn)題或其他模糊之處時(shí),他可能不會(huì)返回到原始需求來(lái)解決問(wèn)題。多半研發(fā)者對(duì)他進(jìn)行猜測(cè),但并不總是正確的。如果有TBD問(wèn)題尚未解決,而你又要繼續(xù)進(jìn)行研發(fā)工作,那么盡可能推遲實(shí)現(xiàn)這些需求,或解決這些需求的開(kāi)放式問(wèn)題,把產(chǎn)品的這部分設(shè)計(jì)得易于更改。
編寫(xiě)優(yōu)秀的需求文件沒(méi)有現(xiàn)成固定的方法,最佳是根據(jù)經(jīng)驗(yàn)進(jìn)行。從過(guò)去所遇見(jiàn)的問(wèn)題中可使你受益匪淺。許多需求文件能通過(guò)使用有效的技術(shù)編寫(xiě)風(fēng)格和使用用戶術(shù)語(yǔ)而不是計(jì)算機(jī)專業(yè)術(shù)語(yǔ)的方式得以改進(jìn)。
你在編寫(xiě)優(yōu)秀的需求文件時(shí),希望讀者還需牢記以下幾點(diǎn)建議:
保持語(yǔ)句和段落的簡(jiǎn)短。
采用主動(dòng)語(yǔ)態(tài)的表達(dá)方式。
編寫(xiě)具有正確的語(yǔ)法、拼寫(xiě)和標(biāo)點(diǎn)的完整句子。
使用的術(shù)語(yǔ)和詞匯表中所定義的應(yīng)該一致。
需求陳述應(yīng)該具有一致的樣式,例如“系統(tǒng)必須..”或“用戶必須..”,并緊跟一個(gè)行為動(dòng)作和可觀察的結(jié)果。例如,“倉(cāng)庫(kù)管理子系統(tǒng)必須顯示一張所請(qǐng)求的倉(cāng)庫(kù)中有存貨的庫(kù)存清單。”
為了減少不確定性,必須避免模糊的、主觀的術(shù)語(yǔ),例如,用戶友好、簡(jiǎn)單、有效、、最新技術(shù)、優(yōu)越的、可接受的等。當(dāng)用客說(shuō)“用戶友好”或“快”時(shí),你應(yīng)該明確他們的真正含義并且在需求中闡明用戶的意圖。
避免使用比較性的詞匯,定量地說(shuō)明所需要提高的程度或說(shuō)清一些參數(shù)可接受的最大值和最小值。當(dāng)客戶說(shuō)明系統(tǒng)應(yīng)該“