引言
無論是ERP項(xiàng)目還是小型的軟件開發(fā)領(lǐng)域,包含需求、設(shè)計(jì)、編碼和測試四個(gè)階段,其中需求是整個(gè)軟件開發(fā)的最關(guān)鍵的一個(gè)輸入,據(jù)統(tǒng)計(jì),不成功的項(xiàng)目中有30~40%的問題是由需求造成的。大量的研究表明需求階段發(fā)現(xiàn)和糾正錯(cuò)誤的代價(jià)是軟件開發(fā)各階段中成本最低的,越是后期的變更,成本越高,良好的需求開發(fā)對(duì)提高軟件成功率和避免失敗具有重要的意義。
如何正確地獲取用戶的需求,圍繞其進(jìn)行管理,以便最終交付給用戶符合其期望的產(chǎn)品是需求工程的任務(wù)。需求工程的研究產(chǎn)生了如CMM(能力成熟度模型)、UML(統(tǒng)一建模語言)、RUP(Rational統(tǒng)一建模過程)、CASE(用例)等管理方法和開發(fā)工具,軟件思想家溫伯格(Gerald M.Weinberg )先生指出“CMM只是一種標(biāo)準(zhǔn),UML也只是一種記錄需求的工具,而不是捕獲需求的方法,需求的管理主要還是靠經(jīng)驗(yàn)”。準(zhǔn)確而有效獲取用戶需求、精確表述用戶需求并得到用戶認(rèn)可,是軟件項(xiàng)目開發(fā)成功的最重要的里程碑之一。本文針對(duì)需求開發(fā)中存在的風(fēng)險(xiǎn)進(jìn)行探討總結(jié),整理出其預(yù)防措施,期望以后對(duì)軟件項(xiàng)目的需求分析進(jìn)行風(fēng)險(xiǎn)預(yù)防、控制等提供參考。
一、什么是需求?
1997年IEEE軟件工程標(biāo)準(zhǔn)詞匯表對(duì)軟件需求的定義為:用戶解決問題或達(dá)到目標(biāo)所需的條件或能力。系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力。用通俗地說,“需求”就是用戶的需要,包括用戶要解決的問題、達(dá)到的目標(biāo),以及實(shí)現(xiàn)這些目標(biāo)所需要的條件,表現(xiàn)形式一般為文檔形式。需求分為需求開發(fā)和需求管理,而需求開發(fā)又分為需求獲取、需求分析、編寫規(guī)格說明書和需求驗(yàn)證。如圖1所示,整個(gè)活動(dòng)構(gòu)成軟件開發(fā)生命周期的需求分析階段。如何幫助用戶提出準(zhǔn)確的需求、理解和分析用戶環(huán)境是需求獲取的過程。為問題涉及的信息、功能及行為建立模型并將用戶需求精確化、完全化是需求分析的過程,最終形成需求規(guī)格說明書是編寫規(guī)格說明書的過程,將需求說明書交付用戶并得到用戶認(rèn)可是需求驗(yàn)證的過程。需求獲取、分析、編寫需求規(guī)格說明和需求驗(yàn)證并不遵循線性的順序,這些活動(dòng)是相互隔開、增量和反復(fù)的進(jìn)行。
二、需求開發(fā)四步驟
1、需求獲取項(xiàng)目管理培訓(xùn)
針對(duì)大項(xiàng)目如企業(yè)ERP的需求獲取,采取的辦法(1)、成立需求分析小組,劃分任務(wù),細(xì)化側(cè)重點(diǎn),為獲取用戶需求做好準(zhǔn)備工作。(2)、訪談?dòng)脩臬@取問題,了解用戶的功能需求同時(shí),還需要注意用戶的非功能需求(如:用戶界面、響應(yīng)時(shí)間、自動(dòng)恢復(fù)時(shí)間等)。訪談?dòng)脩羟?,首先要了解和劃分用戶的類型,針?duì)用戶的情況可以劃分組別,詳細(xì)描述出他們的個(gè)性特點(diǎn)及任務(wù)情況。其次,就要選擇好每類的代表,對(duì)其進(jìn)行訪談和調(diào)研,每類用戶代表都能對(duì)其負(fù)責(zé)的方面有代表性并能做出決策,2005年我單位準(zhǔn)備上ERP系統(tǒng),當(dāng)時(shí)北京某軟件單位到我司作調(diào)研的時(shí)候,下屬單位都是選擇行政“一把手”參與調(diào)研。每次的交流都需要有記錄,對(duì)于交流的結(jié)果還可以分類,以便于后續(xù)的分析活動(dòng)開展。
2、需求分析
調(diào)研人員對(duì)于收集的需求信息要做進(jìn)一步的分析和整理,判斷哪些是軟件必須提供的,哪些是軟件目前無法滿足的,哪些用戶需求會(huì)衍生出很多的隱性需求,還有哪些是用戶沒有想到的需求。這是一個(gè)需求分析人員消化用戶資料的過程。
這個(gè)過程主要通過建立模型來描述用戶的需求,實(shí)際上是抽象圖形化的過程。一般用圖形表示系統(tǒng)的整體結(jié)構(gòu)、用原型等方式向用戶提供可視化的界面、用系統(tǒng)可性行分析來說明軟件的效果和效率、用UML描述系統(tǒng)的需求及內(nèi)部關(guān)系。
3、編寫需求規(guī)格說明書
需求規(guī)格說明書也稱為功能規(guī)格說明、需求協(xié)議或系統(tǒng)規(guī)格說明,它精確地闡述一個(gè)軟件系統(tǒng)必須提供的功能和性能以及它所要考慮的限制條件。它是開發(fā)設(shè)計(jì)的藍(lán)本,也是系統(tǒng)測試和用戶文檔的依據(jù)。
4、需求驗(yàn)證
需求驗(yàn)證是為了確保需求說明書準(zhǔn)確無誤、完整地表達(dá)必要的質(zhì)量的一種方式??蛻?、分析人員、設(shè)計(jì)人員、測試人員等利益相關(guān)人員經(jīng)過多次的評(píng)審后的需求說明書就可作為需求管理的基線。用戶和開發(fā)方對(duì)軟件項(xiàng)目內(nèi)容的描述是以需求規(guī)格說明書作為基礎(chǔ),它是軟件驗(yàn)收時(shí)合同雙方確認(rèn)的重要依據(jù)。
三、需求開發(fā)中存在的困難以及對(duì)策
在軟件項(xiàng)目開發(fā)過程中,風(fēng)險(xiǎn)無所不在,如何有效規(guī)避風(fēng)險(xiǎn),尤其是需求開發(fā)過程中的風(fēng)險(xiǎn)(需求風(fēng)險(xiǎn))。本文按著需求開發(fā)的過程提供幾條建議:
1、需求獲取
問題一:用戶對(duì)于自己的需求不太清楚或工作繁忙無暇理清需求
在很多的實(shí)際開發(fā)過程中,第一種情況就是用戶對(duì)自己真正的需求并不十分明確,他們認(rèn)為計(jì)算機(jī)是萬能的,只要簡單地說一說自己想要得到什么樣的結(jié)果就行了。對(duì)于自己的業(yè)務(wù)規(guī)則、工作流程都不愿說談。筆者在2006年曾準(zhǔn)備開發(fā)一個(gè)醫(yī)院的庫房管理系統(tǒng),當(dāng)本人開始做需求調(diào)查的時(shí)候,就是存在用戶無法準(zhǔn)確有效地表述功能需求的問題。針對(duì)這種情況,其對(duì)策是:需求分析人員一定要深入用戶工作場地,仔細(xì)查看用戶的資料和報(bào)表,與不同層面的用戶交流、溝通,且要多了解用戶實(shí)際工作的場景,有條件的話,可以做一個(gè)“實(shí)習(xí)生”親身體驗(yàn)用戶的日常工作。站在用戶的角度幫助用戶分析需求。關(guān)注用戶工作的每個(gè)細(xì)節(jié),搞清用戶的真實(shí)需求,以最大可能減少后期地需求變更。第二種情況就是業(yè)務(wù)人員配合力度不夠。有的用戶日常工作繁忙,他們不愿決付出更多的時(shí)間和精力向分析人員講解業(yè)務(wù)。面對(duì)這種用戶,其對(duì)策是:需求分析人員改變溝通技巧,講清楚軟件需求的重要性,見縫插針,抓住關(guān)鍵點(diǎn),向其咨詢,以用例和模型的方式向其演示,達(dá)到用戶和分析人員互相了解和理解。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |