合格的軟件需求規(guī)格說明書
軟件需求規(guī)格說明作為產(chǎn)品需求的最終成果必須具有綜合性:必須包括所有的需求。開發(fā)者和客戶不能作任何假設(shè)。如果任何所期望的功能或非功能需求未寫入軟件需求規(guī)格說明那么它將不能作為協(xié)議的一部分并且不能在產(chǎn)品中出現(xiàn)。
構(gòu)造并編寫軟件需求規(guī)格說明,并使用戶和其它讀者能理解它牢記以下可讀性的建議:
• 對節(jié)、小節(jié)和單個需求的號碼編排必須一致。
• 在右邊部分留下文本注釋區(qū)。
• 允許不加限制地使用空格。
• 正確使用各種可視化強(qiáng)調(diào)標(biāo)志(例如,黑體、下劃線、斜體和其它不同字體)。
• 創(chuàng)建目錄表和索引表有助于讀者尋找所需的信息。
• 對所有圖和表指定號碼和標(biāo)識號,并且可按號碼進(jìn)行查閱。
• 使用字處理程序中交叉引用的功能來查閱文檔中其它項(xiàng)或位置,而不是通過頁碼或節(jié)號。
1.5 優(yōu)秀需求具有的特性
怎樣才能把好的需求規(guī)格說明和有問題的需求規(guī)格說明區(qū)別開來?下面討論單個需求陳述說明的幾個特點(diǎn)( Davis 1993;IEEE 1998)。讓風(fēng)險承擔(dān)者從不同角度對S R S需求說明進(jìn)行認(rèn)真評審,能很好地確定哪些需求確實(shí)是需要的。只要你在編寫、評審需求時把這些特點(diǎn)記在心中,就會寫出更好的(盡管并不十分完美)需求文檔,同時也會開發(fā)出更好的產(chǎn)品。
1.5.1 需求說明的特征
1. 完整性
每一項(xiàng)需求都必須將所要實(shí)現(xiàn)的功能描述清楚,以使開發(fā)人員獲得設(shè)計和實(shí)現(xiàn)這些功能所需的所有必要信息。
2. 正確性
每一項(xiàng)需求都必須準(zhǔn)確地陳述其要開發(fā)的功能。做出正確判斷的參考是需求的來源,如用戶或高層的系統(tǒng)需求規(guī)格說明。若軟件需求與對應(yīng)的系統(tǒng)需求相抵觸則是不正確的。只有用戶代表才能確定用戶需求的正確性,這就是一定要有用戶的積極參與的原因。沒有用戶參與的需求評審將導(dǎo)致此類說法:“那些毫無意義,這些才很可能是他們所要想的。”其實(shí)這完全是評審者憑空猜測。
3. 可行性
每一項(xiàng)需求都必須是在已知系統(tǒng)和環(huán)境的權(quán)能和限制范圍內(nèi)可以實(shí)施的。為避免不可行的需求,最好在獲?。?e l i c i t a t i o n)需求(收集需求)過程中始終有一位軟件工程小組的組員與需求分析人員或考慮市場的人員在一起工作,由他負(fù)責(zé)檢查技術(shù)可行性。
4. 必要性
每一項(xiàng)需求都應(yīng)把客戶真正所需要的和最終系統(tǒng)所需遵從的標(biāo)準(zhǔn)記錄下來?!氨匾浴币部梢岳斫鉃槊宽?xiàng)需求都是用來授權(quán)你編寫文檔的“根源”。要使每項(xiàng)需求都能回溯至某項(xiàng)客戶的輸入,如使用實(shí)例或別的來源。
5. 劃分優(yōu)先級
給每項(xiàng)需求、特性或使用實(shí)例分配一個實(shí)施優(yōu)先級以指明它在特定產(chǎn)品中所占的分量。如果把所有的需求都看作同樣重要,那么項(xiàng)目管理者在開發(fā)或節(jié)省預(yù)算或調(diào)度中就喪失控制
6. 無二義性
對所有需求說明的讀者都只能有一個明確統(tǒng)一的解釋,由于自然語言極易導(dǎo)致二義性,所以盡量把每項(xiàng)需求用簡潔明了的用戶性的語言表達(dá)出來。避免二義性的有效方法包括對需求文檔的正規(guī)審查,編寫測試用例,開發(fā)原型以及設(shè)計特定的方案腳本。
7. 可驗(yàn)證性
檢查一下每項(xiàng)需求是否能通過設(shè)計測試用例或其它的驗(yàn)證方法,如用演示、檢測等來確定產(chǎn)品是否確實(shí)按需求實(shí)現(xiàn)了。如果需求不可驗(yàn)證,則確定其實(shí)施是否正確就成為主觀臆斷,而非客觀分析了。一份前后矛盾,不可行或有二義性的需求也是不可驗(yàn)證的。
1.5.2 需求規(guī)格說明的特點(diǎn)
1. 完整性
不能遺漏任何必要的需求信息。遺漏需求將很難查出。注重用戶的任務(wù)而不是系統(tǒng)的功能將有助于你避免不完整性。如果知道缺少某項(xiàng)信息,用T B D (“待確定” )作為標(biāo)準(zhǔn)標(biāo)識來標(biāo)明這項(xiàng)缺漏。在開始開發(fā)之前,必須解決需求中所有的T B D項(xiàng)。
2. 一致性
一致性是指與其它軟件需求或高層(系統(tǒng),業(yè)務(wù))需求不相矛盾。在開發(fā)前必須解決所有需求間的不一致部分。只有進(jìn)行一番調(diào)查研究,才能知道某一項(xiàng)需求是否確實(shí)正確。
3. 可修改性
在必要時或?yàn)榫S護(hù)每一需求變更歷史記錄時,應(yīng)該修訂S R S。這就要求每項(xiàng)需求要獨(dú)立標(biāo)出,并與別的需求區(qū)別開來,從而無二義性。每項(xiàng)需求只應(yīng)在S R S中出現(xiàn)一次。這樣更改時易于保持一致性。另外,使用目錄表、索引和相互參照列表方法將使軟件需求規(guī)格說明更容易修改。
4. 可跟蹤性
應(yīng)能在每項(xiàng)軟件需求與它的根源和設(shè)計元素、源代碼、測試用例之間建立起鏈接鏈,這種可跟蹤性要求每項(xiàng)需求以一種結(jié)構(gòu)化的,粒度好( f i n e - g r a i n e d)的方式編寫并單獨(dú)標(biāo)明,而不是大段大段的敘述。
項(xiàng)目經(jīng)理勝任力免費(fèi)測評PMQ上線啦!快來測測你排多少名吧~
http://m.opto-elec.com.cn/pmqhd/index.html