在軟件開(kāi)發(fā)領(lǐng)域,人們?cè)絹?lái)越多地提到需求。和其他領(lǐng)域一樣,這里的需求源自用戶的“需要”,而不同則在于開(kāi)發(fā)軟件系統(tǒng)最困難的部分就是準(zhǔn)確說(shuō)明開(kāi)發(fā)什么,這就是軟件項(xiàng)目的需求。
為什么我們?nèi)绱硕嗟年P(guān)注需求?原因恰恰在于我們無(wú)法有效地獲取需求,我們無(wú)法準(zhǔn)確地表述需求,而需求的變化對(duì)于整個(gè)項(xiàng)目的成本、周期影響極大,所謂“一石激起千層浪”。所以,想讓項(xiàng)目獲得成功,首先要做好需求分析。
什么是需求?
要了解需求的本質(zhì),首先需要明確需求是為誰(shuí)負(fù)責(zé)的?是用戶還是開(kāi)發(fā)人員?當(dāng)然用戶是上帝,我們所做的一切工作對(duì)他們負(fù)責(zé),但是客戶的愿望并不全是需求,只有從業(yè)務(wù)要求開(kāi)始,考慮開(kāi)發(fā)實(shí)際情況,在此基礎(chǔ)上建立了開(kāi)發(fā)承諾的才能稱(chēng)之為需求。
1997年IEEE軟件工程標(biāo)準(zhǔn)詞匯表對(duì)軟件需求的定義為:
用戶解決問(wèn)題或達(dá)到目標(biāo)所需的條件或能力。
系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其它正式規(guī)定文檔所需具有的條件或能力。
一種反映上面1或2所描述的條件或權(quán)能的文檔說(shuō)明。
請(qǐng)注意該定義中“條件或權(quán)能”、“合同和規(guī)范”這些詞,通俗地說(shuō),“需求”就是用戶的需要,包括用戶要解決的問(wèn)題、達(dá)到的目標(biāo),以及實(shí)現(xiàn)這些目標(biāo)所需要的條件,表現(xiàn)形式一般為文檔形式。
雖然需求工作被越來(lái)越多的提及,但是在項(xiàng)目開(kāi)發(fā)工作中,很多人對(duì)需求的認(rèn)識(shí)還遠(yuǎn)遠(yuǎn)不夠。小到幾十萬(wàn)元,大到上億元的軟件項(xiàng)目,它們的需求都或多或少的存在各種問(wèn)題,原因是多方面的:開(kāi)發(fā)者的重視程度、技術(shù)原因、人員組織原因、溝通、機(jī)制等,都表明做好軟件需求開(kāi)發(fā)是一項(xiàng)系統(tǒng)工作,而不是簡(jiǎn)單的技術(shù)工作。
需求開(kāi)發(fā)和管理
什么才是好的需求?裝修過(guò)房子的人應(yīng)該知道,裝修開(kāi)始之前,設(shè)計(jì)師都會(huì)給出一份設(shè)計(jì)圖或者效果圖,客戶滿意了才開(kāi)始動(dòng)工。開(kāi)發(fā)軟件和裝修房子一樣,一份好的需求就是在開(kāi)發(fā)前做出交付時(shí)的效果。要做到這一點(diǎn),這需要從業(yè)務(wù)、功能和系統(tǒng)三個(gè)層次分別進(jìn)行分析和描述。
需求分析的過(guò)程包括了需求開(kāi)發(fā)和需求管理兩個(gè)部分。需求開(kāi)發(fā)是指從情況收集、分析和評(píng)價(jià)到編寫(xiě)文檔、驗(yàn)證等一系列產(chǎn)生需求的活動(dòng),分為四個(gè)階段:需求獲取、分析、制訂規(guī)格和驗(yàn)證。這四個(gè)階段不一定是遵循線性順序的,它們是相互獨(dú)立和反復(fù)的。需求管理是軟件項(xiàng)目開(kāi)發(fā)過(guò)程中控制和維持需求約定的活動(dòng),它包括變更控制、版本控制、需求跟蹤和狀態(tài)跟蹤等工作。
從工作流程上,需求分析過(guò)程從用戶愿望開(kāi)始,獲取需求,分析需求,形成規(guī)格文檔;經(jīng)過(guò)迭代驗(yàn)證,產(chǎn)生需求變更,形成新的規(guī)格文檔,并進(jìn)行版本控制;反復(fù)進(jìn)行該迭代驗(yàn)證過(guò)程,直至雙方確認(rèn),形成建立開(kāi)發(fā)承諾的需求文檔。
如何做好需求分析?
需求分析對(duì)分析人員提出更高要求,它不僅需要分析人員具有豐富的需求分析經(jīng)驗(yàn)和良好的專(zhuān)業(yè)素質(zhì),還要求分析人員具有良好的學(xué)習(xí)能力、公關(guān)能力、語(yǔ)言能力和組織能力。在實(shí)際工作中分析人員要面對(duì)不同單位、不同部門(mén)的不同人員,他們可能有著不同文化、不同關(guān)系和不同的管理水平等,面對(duì)如此紛繁復(fù)雜的環(huán)境,如何做好需求分析工作呢?這里從需求開(kāi)發(fā)和需求管理兩個(gè)方面介紹一些相關(guān)的方法。
首先,需求開(kāi)發(fā)可采用的方法很多,不同的開(kāi)發(fā)方式有著不同的分析方法:
繪制關(guān)聯(lián)圖:繪制系統(tǒng)關(guān)聯(lián)圖是用于定義系統(tǒng)與系統(tǒng)外部實(shí)體間的界限和接口的簡(jiǎn)單模型。
可行性分析:在允許的成本、性能要求下,分析每項(xiàng)需求實(shí)施的可行性,提出需求實(shí)現(xiàn)相關(guān)風(fēng)險(xiǎn),包括與其它需求的沖突,對(duì)外界因素的依賴和技術(shù)障礙。
需求優(yōu)先級(jí):確定使用實(shí)例、產(chǎn)品特性或單項(xiàng)需求實(shí)現(xiàn)的優(yōu)先級(jí)別。以優(yōu)先級(jí)為基礎(chǔ)確定產(chǎn)品版本將包括哪些特性或哪類(lèi)需求。
系統(tǒng)原型:當(dāng)用戶自身對(duì)
項(xiàng)目經(jīng)理勝任力免費(fèi)測(cè)評(píng)PMQ上線啦!快來(lái)測(cè)測(cè)你排多少名吧~
http://opto-elec.com.cn/pmqhd/index.html