【摘要】在軟件開(kāi)發(fā)項(xiàng)目中,需求分析是關(guān)乎軟件項(xiàng)目開(kāi)發(fā)成敗的重要因素?,F(xiàn)在的軟件項(xiàng)目中返工開(kāi)銷(xiāo)占了總開(kāi)銷(xiāo)很大比例,而導(dǎo)致返工的主要原因是需求分析不明確。針對(duì)這一情況,文章闡述了軟件開(kāi)發(fā)中需求分析任務(wù)、需求分析過(guò)程、需求分析方法、需求分析變更問(wèn)題,以及如何確保需求分析質(zhì)量的措施。
【關(guān)鍵詞】軟件開(kāi)發(fā);需求分析;原型法;需求變更
隨著全球經(jīng)濟(jì)、科技的快速發(fā)展和社會(huì)信息化進(jìn)程的加快,計(jì)算機(jī)被廣泛應(yīng)用于各行業(yè)中,各種應(yīng)用軟件應(yīng)運(yùn)而生,各行業(yè)的管理或生產(chǎn)日趨專(zhuān)一化、數(shù)字化、快捷化。從而用戶對(duì)計(jì)算機(jī)軟件的要求更加復(fù)雜和嚴(yán)格。軟件需求分析正是解決用戶這種需求,軟件需求分析是關(guān)乎軟件項(xiàng)目開(kāi)發(fā)成敗的重要因素。有資料表明,現(xiàn)在的軟件項(xiàng)目中返工開(kāi)銷(xiāo)幾乎占了總開(kāi)發(fā)的一半[1],而導(dǎo)致返工的主要原因是需求分析不明確,甚至有些人不知道需求分析是什么,從而引發(fā)項(xiàng)目開(kāi)發(fā)中的一系列更改。這些更改可能導(dǎo)致浪費(fèi)大量資源、軟件項(xiàng)目無(wú)法按時(shí)完成等嚴(yán)重問(wèn)題。所以,需求分析是軟件設(shè)計(jì)和實(shí)現(xiàn)的基礎(chǔ),是軟件項(xiàng)目邁向成功的第一步!
一、軟件需求分析的任務(wù)
一個(gè)軟件項(xiàng)目的開(kāi)發(fā)主要分為五個(gè)階段:需求分析階段、設(shè)計(jì)階段、編碼階段、測(cè)試階段和維護(hù)階段。而需求分析階段所得到的結(jié)果,是軟件項(xiàng)目開(kāi)發(fā)中其他四個(gè)階段的必備條件。從以往的經(jīng)驗(yàn)來(lái)看,需求分析中的一個(gè)小的偏差,就可能導(dǎo)致整個(gè)項(xiàng)目無(wú)法達(dá)到預(yù)期的效果,或者說(shuō)最終開(kāi)發(fā)出的產(chǎn)品不是用戶所需要的。何謂軟件需求分析。先舉個(gè)例子來(lái)說(shuō)明,對(duì)于建造房子這個(gè)問(wèn)題相信大多數(shù)人都知道,用戶要建一幢房子,建房者一定會(huì)與用戶詳細(xì)討論各種細(xì)節(jié),樓層高多少?構(gòu)架如何?圖紙樣式等等,每個(gè)環(huán)節(jié)都有詳細(xì)的過(guò)程文檔,雙方都明白假如完工后修改帶來(lái)的損失以及變更細(xì)節(jié)的危害性。同樣在軟件需求分析中也需要有詳細(xì)的文檔,軟件開(kāi)發(fā)者要從用戶的業(yè)務(wù)中提取出軟件系統(tǒng)能夠幫助用戶解決的業(yè)務(wù)問(wèn)題,通過(guò)對(duì)用戶業(yè)務(wù)問(wèn)題的分析,規(guī)劃出開(kāi)發(fā)者的軟件產(chǎn)品。這個(gè)步驟是對(duì)用戶業(yè)務(wù)需求的一個(gè)升華,是一個(gè)把用戶業(yè)務(wù)管理流程優(yōu)化,轉(zhuǎn)化為軟件產(chǎn)品,從而提升管理而實(shí)現(xiàn)質(zhì)的飛躍,這一步是否成功,直接關(guān)系到開(kāi)發(fā)出來(lái)的軟件產(chǎn)品能否得到用戶認(rèn)可,順利交付給客戶,客戶能否真正運(yùn)用開(kāi)發(fā)者的產(chǎn)品幫助他解決業(yè)務(wù)或管理問(wèn)題[2]。
軟件需求分析的任務(wù)不是確定系統(tǒng)怎樣完成的工作,而是確定系統(tǒng)必須完成那些工作,也就是對(duì)目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求。它所做的工作是深入描述軟件的功能和性能,確定軟件設(shè)計(jì)的限制和軟件同其他系統(tǒng)的接口細(xì)節(jié),定義軟件的其他有效性要求。
軟件需求分析的任務(wù)就是借助于當(dāng)前系統(tǒng)的邏輯模型導(dǎo)出目標(biāo)系統(tǒng)的邏輯模型,解決目標(biāo)系統(tǒng)的“做什么”的問(wèn)題。其實(shí)現(xiàn)步驟是:(1)獲得當(dāng)前系統(tǒng)的物理模型;(2)抽象出當(dāng)前系統(tǒng)的邏輯模型;(3)建立目標(biāo)系統(tǒng)的邏輯模型。
二、軟件需求分析的過(guò)程
軟件需求分析的過(guò)程具體可分為對(duì)問(wèn)題的識(shí)別、分析與綜合、制定規(guī)格說(shuō)明和評(píng)審。
問(wèn)題識(shí)別是指系統(tǒng)分析人員研究可行性分析報(bào)告和軟件項(xiàng)目實(shí)施計(jì)劃,確定目標(biāo)系統(tǒng)的綜合要求,并提出這些需求實(shí)現(xiàn)條件,以及需求應(yīng)達(dá)到的標(biāo)準(zhǔn)。這些需求分為:功能性需求+非功能性需求,其具體包括:(1)功能需求:列舉出所開(kāi)發(fā)軟件在職能上應(yīng)做什么。(2)性能需求:給出所開(kāi)發(fā)軟件的技術(shù)性能指標(biāo),如存儲(chǔ)容量限制、運(yùn)行時(shí)間限制、安全保密性等。(3)環(huán)境需求:軟件系統(tǒng)運(yùn)行時(shí)所處環(huán)境的要求,如硬件方面:機(jī)型、外部設(shè)備、數(shù)據(jù)通信接口;軟件方面:系統(tǒng)軟件,包括操作系統(tǒng)、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)方面;使用方面:使用部門(mén)在制度上,操