摘要:做好軟件的需求管理是軟件公司的一大重要任務。本文對項目需求工程理論進行了簡要的分析與總結(jié),并基于這一理論對如何做好軟件需求管理的技術(shù)要點進行了分析與探討,旨在為基于項目需求工程理論的軟件需求管理研究起到一定的指導作用。
關(guān)鍵詞:項目需求工程理論;軟件需求;需求管理
中圖分類號:TP311 文獻標識碼:A 文章編號:1007—9599 (2012) 14—0000—02
一、引言
隨著社會的發(fā)展,軟件公司之間的競爭越來越激烈,加之用戶的需求變化非常迅速,這就給我們的工作帶來很大的挑戰(zhàn),如何做好軟件需求的管理,不僅僅關(guān)乎到客戶的滿意度,更是影響軟件企業(yè)競爭力的一大因素。而在這一方面,目前,我國的很多軟件企業(yè)做的并不好,遠未達到比較成熟的階段。因此,對需求的分析、開發(fā)以及管理的研究不僅僅具有重要的學術(shù)意義,其實踐指導意義也不容忽視。
二、對于項目需求理論的概述
我們只有深刻的明白什么是軟件需求,才能在實際的工作中做好對其的分析、開發(fā)以及管理。
(一)軟件需求的概念
軟件需求指的是我們的軟件要使用什么樣的規(guī)格說明。它對于系統(tǒng)的行為、屬性等進行了一定程序上的描述,能夠約束開發(fā)時的系統(tǒng)。
本質(zhì)上來看,需求工程指的是我們所關(guān)注的系統(tǒng)將要做什么以及將要怎么做。需求工程具有通用性以及實用性的特點,在我們的工作中,沒有一個能夠解決所有問題的方法及工具。
(二)軟件需求的分類
對于軟件需求的分類可以包括以下幾個方面:業(yè)務需求、用戶需求、功能需求、非功能需求、設計約束、商業(yè)約束以及系統(tǒng)的需求。
其中,業(yè)務需求主要是指客戶對系統(tǒng)的要求;而用戶需求值得是用戶在使用軟件時需要完成的任務;非功能需求包括Response、Accuracy、Frequency、Capacity、Throughput、Defect rates、Modifiability、Supportability;設計約束并不是指系統(tǒng)做什么,而是指系統(tǒng)怎樣被構(gòu)建;商業(yè)約束是指關(guān)于軟件開發(fā)的時間費用等問題,這是軟件需求中最為重要的一部分。
(三)軟件需求管理的重要性
需求管理做不好,容易是客戶與軟件開發(fā)人員之間存在一定的分歧,也就是說客戶的期望得不到很好的理解與滿足,最終很可能導致整個項目的失敗,因此,做好對于需求的分析與管理可以為軟件開發(fā)工作起到很大的指導作用,使我們的工作事半功倍。
三、軟件的需求開發(fā)
軟件的需求開發(fā)是軟件工程的第一個環(huán)節(jié),它是順利完成后續(xù)工作前提,是整個軟件工程是否滿足客戶需求的決定性因素。其中,軟件的需求開發(fā)主要包括以下幾個方面:
首先,調(diào)研客戶的需求,這一過程主要是通過各種方法了解客戶對于軟件最原始的需求。我們對客戶需求的調(diào)研方法主要有:和客戶進行溝通、向客戶提問、對客戶工作的方式進行考察、對客戶的操作方法進行考察、對目前使用系統(tǒng)的分析、市場調(diào)查、與同行進行交流等方式。
其次,對客戶的需求進行分析,通過以上方式我們已經(jīng)獲得了客戶的原始需求,這一過程主要是對這些獲得的信息進行分析,對錯誤的地方要進行改正,對不足之處應注意補充,確保最終所得出的需求是客戶需求的真實反映。
最后,對客戶的需求進行定義,基于以上兩個過程,我們把客戶的需求按照相關(guān)的格式撰寫需求文檔,并將其作為后續(xù)工作的依據(jù)及指導。
四、軟件的需求管理
需求管理主要是針對于軟件需求的變更,由于用戶的改變、用戶經(jīng)驗的增加、行業(yè)的變化等因素是不可避免的,這也就意味著需求的變更是必然存在的,如果我們不能很好的適應這些需求變更,便會給我們的交付如期、產(chǎn)品質(zhì)量、團隊的士氣以及整體的開發(fā)成本帶來很多不利的影響。
針對于軟件需求的變更,我們在工作中最常使用的方法就是軟件需求的管理,可以說,軟件需求管理的水平如何直接關(guān)系到整個軟件的質(zhì)量。因此,在具體的工作中,我們要制定合理的軟件管理策略,加強軟件管理的力度。
(一)軟件管理的內(nèi)容
軟件管理的主要活動可以分為對于項目需求的評審、對于項目需求的跟蹤以及對于項目需求變更的控制。這些內(nèi)容之間是存在密切關(guān)系的,我們要做好其中的每一個環(huán)節(jié)。
1.需求的評審
這一過程主要是對我們所撰寫的需求文檔進行評審,確保需求的的合理性,其中,評審的指標主要包括:正確性、無歧義、完備性、一致性、可驗證性、可修改性、可跟蹤性、可理解性以及重要性與穩(wěn)定性的分歧。
需要注意的是,一致性是指客戶的需求與業(yè)務需求的一致;分級主要是針對當不能滿足客戶所有需求的時候,應根據(jù)級別來舍棄一些相對不重要的需求??沈炞C性指的是所有的需求都應該是可以被測試的。
2.需求的跟蹤
這一活動的目的是建立和維護之間的一致性,進而確保這些工作的結(jié)果符合客戶的需求。在我們的工作中,需要特別指出的一點是,即便使用瀑布模型也不能確保每一個環(huán)節(jié)的結(jié)果與需求是一致的,這主要是因為我們的開發(fā)人員不可能像機器一樣不出任何問題,加上每一個員工之間的表達能力以及理解能力存在很大的不同,這些都會導致在開發(fā)中出現(xiàn)偏差。
3.對于變更的控制
變更出現(xiàn)的原因主要有:
(1)隨著開發(fā)的深入,客戶發(fā)現(xiàn)需求文檔并不能很好的滿足自身的需求,因而產(chǎn)生需求的變更。
(2)在開發(fā)過程中,市場出現(xiàn)了變化,導致以前的需求不能滿足后來的需求,這也會產(chǎn)生需求的變更。
雖然,需求的變更對于客戶而言是有利的,但是,每一次變更都意味著我們開發(fā)人員的很多工作不再有意義,也增加了我們開發(fā)的成本,因此,做好對于需求變更的控制具有不可忽視的重要性。
(二)軟件的需求管理中存在的問題
在軟件的需求管理中的問題主要體現(xiàn)在以下幾個方面:
1.對于需求的描述不夠細致
在我們的工作中,應認識到軟件的需求越細致對我們越有利,但是有些員工認為,我們不需要完全一致,只需大致的輪廓符合要求即可,加上有些客戶對其重要性也不甚了解,這些都會產(chǎn)生需求描述不細致的情況,應指出這是非常危險的,有很多開發(fā)的返工、迂回都是由于這種問題導致的。
2.對于需求的描述存在歧義
對與需求的描述存在歧義,最常見的就是模棱兩可,這也是一個非常嚴重的問題,它會導致不同的期望,使開發(fā)人員產(chǎn)生在設計時出現(xiàn)錯誤,且會使得使測試用例不匹配。在我們的工作中,根據(jù)筆者經(jīng)驗,返工會耗費總開發(fā)費用的40%,而在這方面70%—80%是由需求的錯誤造成的。
3.對于需求的描述不準確、不充分
出現(xiàn)這種問題的主要原因有:需求的變更過于頻繁;對于需求的遺漏;和客戶之間的交流不通暢;需求文檔質(zhì)量不達標;對于需求的分析不全面。
4.對于需求的變更控制不好
出現(xiàn)這一問題最主要的原因是因為工作中的需求一般不是突然變化,而是逐漸變化,這就使得我們很難對這種問題進行有效地預防。一般情況是,當我們意識到需求的變更的時候,這種變更的幅度已經(jīng)非常大了。
(三)針對軟件需求管理問題的解決措施
1.做好需求文檔的控制
需求文檔是反映客戶需求中最主要的依據(jù),因此,我們要加強對于需求文檔的管理,其中,需求基線指的是是否允許需求變更的分界線。因此,我們在每次需求變更之后,都要在評審中重新確立需求基線,這能夠幫助我們有效地控制需求的變更。
2.加強與客戶的溝通
客戶的溝通是了解客戶需求的主要途徑,而且做好這一工作對于提升客戶的滿意度至關(guān)重要。在這一過程中,我們要確保雙方認識的一致性,避免出現(xiàn)歧義的情況。另外,在出現(xiàn)需求變更的時候,我們應注意自身的態(tài)度,良好的態(tài)度可以避免很多不必要的問題。
3.做好需求變更的管理
在這個過程中,首先應正確認識需求的變更,在此基礎上,要確保這種管理貫穿于整個階段,這主要是由于需求的變更一般是隨著開發(fā)的進展而不斷增多的。此外,還要采取合理的變更控制策略,確定一個選擇、分析與決策的需求變更的過程,且所有的變更都應按照此過程進行。
五、結(jié)語
做好軟件的需求管理能夠減少我們工作中的返工量,對于降低軟件開發(fā)成本,提升軟件企業(yè)的競爭力有著非常重要的作用。因此,我們工作中要加強需求管理重要性的認識,對于常出現(xiàn)的問題要善于總結(jié),善于學習,只有這樣才能確確實實的做好這一工作。
參考文獻:
[1]雷輝,李懷璋,王青.基于ISO9001和CMM的軟件需求管理的研究[J].計算機科學,2009,2
[2]毛明志,沈賢義,黃春賢.基于特性的軟件需求管理工具的研究與應用[J].計算機技術(shù)與發(fā)展,2009,5
[3]王小剛,白躍偉,蔡池蘭,包家勝.組織級軟件需求管理過程在項目管理中的應用[A].Proceedings of 2010 International Conference on Management Science and Engineering (MSE 2010)(Volume 3)[C],2010
[4]叢海燕.IT集中對銀行業(yè)軟件需求管理的影響[J].中國金融電腦,2008,7
[5]鄭倚志.商業(yè)銀行軟件需求管理中若干問題的思考與建議[J].中國金融電腦,2009,12