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