致編寫出的需求規(guī)格不全面。
2、 要正確表達(dá)所描述的需求,需求規(guī)格作為設(shè)計(jì)階段的依據(jù),首先要保證其正確性,對(duì)每一個(gè)需求都應(yīng)有一種合理正確的解釋,不能存在二義性,所以分析人員在表達(dá)需求時(shí)要認(rèn)真嚴(yán)謹(jǐn),不能模棱兩可,更不能含糊其詞。
3、 要完整表達(dá)所描述的需求,完整性是需求規(guī)格的重要特征之一,一個(gè)好的需求規(guī)格應(yīng)該說(shuō)明什么需求做,什么需求不做,而不需要說(shuō)明怎么去做,需求規(guī)格只是宏觀的描述,為設(shè)計(jì)階段劃定范圍,不應(yīng)該包含不確性因素在里面,要么做,要么不做,不能遺留任何待解決的問(wèn)題,而且還要保證需求的完整性。
4、 對(duì)優(yōu)先級(jí)的排列,任何需求在整理過(guò)程中都要分優(yōu)先級(jí),即問(wèn)題的重要程度,解決時(shí)的優(yōu)先順序,需求收集過(guò)程中會(huì)匯總大量的客戶需求,在這些需求當(dāng)中,有些是客戶急需解決的,有些是起錦上添花作用的,這時(shí)就需要分析人員結(jié)合軟件的現(xiàn)狀,根據(jù)問(wèn)題的急緩,來(lái)劃分一下將來(lái)處理問(wèn)題的優(yōu)先順序,也是為設(shè)計(jì)和開發(fā)階段的相關(guān)人員提供可參照的依據(jù)。
三、 需求的評(píng)審
在我們看來(lái)需求的評(píng)審是軟件需求分析的最后一步,將整理好的需求規(guī)格進(jìn)行評(píng)審,最終決定下一步如何執(zhí)行,需求的評(píng)審一般由專業(yè)人士來(lái)完成,主要包括公司的內(nèi)部專家及外部專家,公司內(nèi)部一般包括分析設(shè)計(jì)人員、各部門開發(fā)經(jīng)理、維護(hù)經(jīng)理、項(xiàng)目經(jīng)理及資深開發(fā)人員;外部專家包括典型客戶代表、實(shí)施人員代表等,評(píng)審的目的主要就軟件需求規(guī)格中定義的各事項(xiàng)做進(jìn)一步討論,根據(jù)評(píng)審過(guò)程中各專家提出的問(wèn)題再作整理、修改,最終確定需求的狀態(tài)。評(píng)審過(guò)程中常見的問(wèn)題有以下幾方面:
1、 需求的評(píng)審流于形式,需求的評(píng)審是最后的把關(guān)階段,有時(shí)會(huì)遇到這種情況:需求規(guī)格編寫完成后,在評(píng)審的過(guò)程中只是簡(jiǎn)單的走一遍,或者評(píng)審過(guò)程中討論激烈,評(píng)審后該干么干么,沒(méi)有事后監(jiān)督與執(zhí)行,感覺(jué)這一點(diǎn)是導(dǎo)致后續(xù)軟件不急定的主要原因。
2、 對(duì)評(píng)審人員的要求要嚴(yán)格,不是任何人都可以參與評(píng)審的,人多了反而效果不好,參與人員應(yīng)主要是與需求密切相關(guān)的,能對(duì)需求能提出改進(jìn)建議的專家,而不是隨便找?guī)讉€(gè)人完事。
3、 沒(méi)有典型客戶參與,需求的整個(gè)過(guò)程最好讓具有代表性的客戶參與進(jìn)來(lái),哪怕客戶不明白自己真正的想要實(shí)現(xiàn)的東西是什么,但在整個(gè)過(guò)程中客戶自始至終起到指導(dǎo)作用,軟件是個(gè)比較抽象的東西,客戶不會(huì)多過(guò)的關(guān)注開發(fā)的過(guò)程,舉個(gè)例子:如果你跟客戶討論的是在建工程或大型設(shè)備的安裝,那么客戶肯定會(huì)重點(diǎn)關(guān)注很多細(xì)節(jié),提出很多建議,因?yàn)榭蛻裘靼醉?xiàng)目完工后再改造帶來(lái)的影響,但對(duì)于軟件,作為客戶他考慮不到軟件開發(fā)完成后,后期變更所帶來(lái)的麻煩,所以在討論需求時(shí)比較馬虎,描述不清楚需求,導(dǎo)致開發(fā)者開發(fā)出的軟件與客戶的期望存在巨大差異。
4、 用戶需求不斷的增加,這也是最常見的問(wèn)題之一,在需求評(píng)審的過(guò)程中,往往評(píng)審人員根據(jù)討論的結(jié)果會(huì)提出新的需求,會(huì)導(dǎo)致不斷的更改,所以在編寫需求規(guī)格的時(shí)候要把握一個(gè)度,不是任何需求都要列入。
5、 對(duì)需求做全面的檢查,從需求的幾個(gè)特性去綜合考慮,如:需求的完整性、正確性、無(wú)二義性、可驗(yàn)證性等。
作為客戶如果得到的最終軟件產(chǎn)品不能滿足某項(xiàng)功能,就會(huì)讓開發(fā)人員修改,雖然開發(fā)人員后期不管費(fèi)多大力氣最終能修改完客戶的需求,客戶感覺(jué)是理所當(dāng)然的事情,但作為開發(fā)人員來(lái)講,如果程序開發(fā)完成后再去修改,也是一件很頭疼的事,因?yàn)橐畔率诸^的工作,優(yōu)先去處理客戶的問(wèn)題。這一切的問(wèn)題都是由于在需求的收集或驗(yàn)證的過(guò)程的疏忽造成的。
需求驗(yàn)證的最終結(jié)果是得到一個(gè)完整、正確、可執(zhí)并且無(wú)二義性的需求規(guī)格,這樣才可為后續(xù)工作提供保障,在整個(gè)軟件生命周期中,一個(gè)錯(cuò)誤發(fā)現(xiàn)的越晚,修復(fù)錯(cuò)誤的費(fèi)用越高,軟件需求分析階段可以說(shuō)是發(fā)現(xiàn)錯(cuò)誤的階段,可見其重要性,需求分析階段看似沒(méi)有明確的目標(biāo),實(shí)則不然,這期間對(duì)任何問(wèn)題的疏忽,都會(huì)導(dǎo)致系統(tǒng)問(wèn)題呈扇形擴(kuò)張,估計(jì)做過(guò)需求分析的同行都能認(rèn)識(shí)其重要性。任何形式的需求規(guī)格說(shuō)明書都不能保證完全沒(méi)有錯(cuò)誤和缺陷,我們?cè)诰帉懙倪^(guò)程中只能盡量按照軟件工程的規(guī)范去執(zhí)行,盡量避免問(wèn)題的發(fā)生。