1 軟件項目需求分析的重要性
當前,軟件開發(fā)往往存在著三大主要問題:預(yù)算超支、進度延誤、質(zhì)量糟糕而且很難控制在預(yù)算之內(nèi)———尤其是要高質(zhì)量地實現(xiàn)用戶的期望。相關(guān)的業(yè)界報告與分析對信息系統(tǒng)行業(yè)中不能滿足客戶需求、與用戶預(yù)期不符合以及資源嚴重浪費等現(xiàn)象和問題進行了詳細描述。
隨著信息時代的發(fā)展,計算機軟件的需求愈來愈復(fù)雜,規(guī)模愈來愈大,而且隨著企業(yè)的發(fā)展,工作過程重組,需求變更已愈來愈成為必然。軟件危機持續(xù)了30年之久,至今仍無法得以很好地解決。究其原因,軟件本身具有的特點固然有關(guān),但長期以來,缺乏軟件開發(fā)和維護的正確方法以及忽視軟件開發(fā)過程的質(zhì)量控制乃是最為關(guān)鍵的原因。
其中軟件開發(fā)和維護方法的不正確性主要體現(xiàn)在:忽視軟件開發(fā)前期的需求分析;開發(fā)過程缺乏統(tǒng)一的、規(guī)范化的方法論的指導;文檔資料不齊全或不準確;忽視與用戶之間、開發(fā)組員之間的交流。
這樣,就經(jīng)常出現(xiàn)用戶對“已完成”系統(tǒng)不滿意,軟件產(chǎn)品的質(zhì)量經(jīng)常出現(xiàn)漏洞,補丁一大堆。自從20世紀60年代出現(xiàn)軟件危機以來,越來越多的人已開始更多地關(guān)注于軟件,思考更好地保證軟件開發(fā)的質(zhì)量,與軟件危機一起誕生的軟件工程方法和建模理論已經(jīng)發(fā)展了幾十年。
然而事實卻是,軟件項目存在的質(zhì)量問題仍然很嚴重。1969年,北約提交了一份報告,列舉了軟件所面臨問題的原因,其中的原因在今天仍然存在:在Rajesh Naik等人近年來合著的《軟件需求與估算》中提到,我們經(jīng)常會看到有頭無尾的工程,用戶不滿意的工程,難以投入實際使用的工程,或者嚴重超支和拖延進度的工程。而導致這些現(xiàn)象的重要原因之一,往往是由需求問題引起的,如客戶和開發(fā)者對系統(tǒng)的需求缺乏了解;搜集和分析需求的非結(jié)構(gòu)化方法;沒有支持的工具或支持工具價格昂貴。
1994年《科學美國人》曾經(jīng)報道,盡管經(jīng)過50年的“進步”,仍然存在著一種慢性危機。這就是缺少能夠滿足信息時代要求的成熟工程科學的狀況已經(jīng)持續(xù)幾十年了。以上這些令人驚訝的數(shù)字和分析同樣包括了對于軟件(信息系統(tǒng))產(chǎn)品開發(fā)狀況的統(tǒng)計與描述。
在軟件產(chǎn)業(yè)最為發(fā)達的歐美國家尚且存在如此嚴重的需求問題,更不用說是近20年來剛剛掀起IT熱潮的中國了。由此可見,軟件危機自20世紀60年代起已經(jīng)持續(xù)了近40年之久,至今在全世界范圍內(nèi)仍無法得以很好地解決。
如何著手解決這個危機,首先要從原因入手,在明確根源之后,再研究制定相應(yīng)的對策。根據(jù)IDC的統(tǒng)計,80%的失敗IT項目是由于需求分析做的不好,沒有真正反映出用戶的需求而導致的。同樣對于出現(xiàn)這種情況的原因,根據(jù)Standish集團公司的分析,項目失敗最重要的8個原因中的5個都與需求有關(guān):
?、俨煌暾男枨?
?、跊]有用戶的介入;
?、鄄粚嶋H的客戶期望;
?、苄枨蠛鸵?guī)范的變更;
⑤提供不再需要了的能力。
此外,CHAOS大學工作人員Sanjiv指出:“如果沒有搞定需求,則項目一定會失敗;如果搞定需求,則項目一定會交付?!痹谶@樣的環(huán)境下,業(yè)界人士從長期的實踐中逐步意識到以工程化的原則和方法組織信息系統(tǒng)開發(fā)工作是解決危機的一條主要出路,其中相對而言編碼不是“問題”,問題在于需求階段,需求分析無疑是軟件工程中的關(guān)鍵問題。正因如此,軟件需求的重要性正在不斷提高,因為它是用戶賴以預(yù)先知道將獲得什么樣的系統(tǒng)以及投入多少經(jīng)費的途徑。
因此人們意識到以工程化的原則和方法組織軟件開發(fā)工作是解決軟件危機的一個主要出路。軟件工程中包含需求、設(shè)計、編碼和測試四個階段。
需求分