軟件開(kāi)發(fā)生命周期包含需求、設(shè)計(jì)、編碼和測(cè)試四個(gè)過(guò)程階段,其中需求過(guò)程是第一個(gè)也是最重要的一個(gè)階段。軟件需求包括三個(gè)不同的層次:業(yè)務(wù)需求,說(shuō)明了提供給客戶和產(chǎn)品開(kāi)發(fā)商的新系統(tǒng)的利益,反映了組織機(jī)構(gòu)或客戶對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們將在項(xiàng)目視圖與范圍文檔中予以說(shuō)明;用戶需求,描述了用戶使用系統(tǒng)必須要完成的任務(wù),這在使用實(shí)例文檔或方案腳本說(shuō)明中予以說(shuō)明;功能需求和非功能需求,定義了開(kāi)發(fā)人員必須實(shí)現(xiàn)的軟件功能,使得用戶能順利完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。軟件需求過(guò)程包括了5個(gè)主要活動(dòng):需求獲取、需求分析和確認(rèn)、編寫需求規(guī)格說(shuō)明書(shū)、需求驗(yàn)證和需求管理。
一、需求獲取
需求的收集、分析、細(xì)化、核實(shí)并組織的步驟,并將它編寫成文檔。這個(gè)活動(dòng)包括了編寫項(xiàng)目視圖和范圍文檔、用戶群分類、選擇用戶代表、建立核心隊(duì)伍、確定使用實(shí)例、召開(kāi)聯(lián)合會(huì)議、分析用戶工作流程、確定質(zhì)量屬性、檢查問(wèn)題報(bào)告和需求重用10個(gè)具體任務(wù),文章將在后面進(jìn)行詳細(xì)的闡述。
二、需求分析
根據(jù)需求獲取中得到的需求文檔,分析系統(tǒng)實(shí)現(xiàn)方案。這個(gè)活動(dòng)需要完成下面幾個(gè)任務(wù):
1、繪制關(guān)聯(lián)圖,用于定義系統(tǒng)與系統(tǒng)外部實(shí)體間的邊界和接口的簡(jiǎn)單模型;
2、創(chuàng)建開(kāi)發(fā)原型,當(dāng)開(kāi)發(fā)人員或用戶不能明確某些需求時(shí),開(kāi)發(fā)一個(gè)系統(tǒng)原型,這樣使得許多概念和可能發(fā)生的事更為直觀明了;
3、分析可行性,在允許的成本、性能要求下,分析每項(xiàng)需求實(shí)施的可行性,明確每項(xiàng)需求實(shí)現(xiàn)相聯(lián)系的風(fēng)險(xiǎn),包括與其它需求的沖突,涉及各類用戶的利益平衡,對(duì)外界因素的依賴和技術(shù)障礙;
4、確定需求優(yōu)先級(jí):分析方法來(lái)確定使用實(shí)例、系統(tǒng)特性或單項(xiàng)需求實(shí)現(xiàn)的優(yōu)先級(jí)別,以優(yōu)先級(jí)為基礎(chǔ)確定產(chǎn)品版本將包括哪些特性或哪類需求;
5、為需求建立模型,為需求建立圖形分析模型是軟件需求規(guī)格說(shuō)明極好的補(bǔ)充說(shuō)明,可以為系統(tǒng)需求從多個(gè)角度建模;
6、編寫數(shù)據(jù)字典,創(chuàng)建數(shù)據(jù)字典數(shù)據(jù)字典是對(duì)系統(tǒng)用到的所有數(shù)據(jù)項(xiàng)和結(jié)構(gòu)的定義,以確保開(kāi)發(fā)人員使用統(tǒng)一的數(shù)據(jù)定義;
7、應(yīng)用質(zhì)量功能調(diào)配,將系統(tǒng)特性、屬性與對(duì)客戶的重要性聯(lián)系起來(lái),提供了一種分析方法以明確哪些是客戶最為關(guān)注的特性。
三、編寫需求規(guī)格說(shuō)明書(shū)
需求開(kāi)發(fā)的最終成果是客戶和開(kāi)發(fā)小組對(duì)將要開(kāi)發(fā)的產(chǎn)品達(dá)成一致協(xié)議,這一協(xié)議就是通過(guò)文檔化的需求規(guī)格說(shuō)明書(shū)來(lái)體現(xiàn)。需求規(guī)格說(shuō)明書(shū)包括項(xiàng)目視圖和范圍文檔說(shuō)明了系統(tǒng)的業(yè)務(wù)需求,而使用實(shí)例文檔則說(shuō)明了用戶需求。這個(gè)活動(dòng)需要完成下面幾個(gè)任務(wù):
1、采用模版,在你的組織中要為編寫軟件需求規(guī)格說(shuō)明書(shū)等文檔定義一種標(biāo)準(zhǔn)模板,該模板為記錄系統(tǒng)需求和各種其它與需求相關(guān)的重要信息提供了統(tǒng)一的結(jié)構(gòu);
2、指明需求來(lái)源,為了讓所有項(xiàng)目風(fēng)險(xiǎn)承擔(dān)者明白需求規(guī)格說(shuō)明書(shū)中為何提供這些功能需求,要能追溯每項(xiàng)需求的來(lái)源,來(lái)源可能是一種使用實(shí)例或其它客戶要求,也可能是某項(xiàng)更高層系統(tǒng)需求、業(yè)務(wù)規(guī)范、政府法規(guī)、標(biāo)準(zhǔn)或別的外部來(lái)源,這些來(lái)源應(yīng)該記錄在需求的跟蹤能力矩陣中;
3、為每項(xiàng)需求注上標(biāo)號(hào),為了需求的可跟蹤性和可修改性的質(zhì)量標(biāo)準(zhǔn),必須唯一確定每個(gè)軟件需求,為制定一種慣例來(lái)為需求規(guī)格說(shuō)明書(shū)中的每項(xiàng)需求提供一個(gè)獨(dú)立的可識(shí)別的標(biāo)號(hào)或記號(hào);
4、記錄業(yè)務(wù)規(guī)范,是指關(guān)于系統(tǒng)的操作原則,比如誰(shuí)能在什么情況下采取什么動(dòng)作,將這些編寫成需求規(guī)格說(shuō)明書(shū)中的一個(gè)獨(dú)立部分,或一獨(dú)立的業(yè)務(wù)規(guī)范文檔;
5、創(chuàng)建需求跟蹤能力矩陣,建