求。功能需求規(guī)定了系統(tǒng)必須執(zhí)行的功能。而非功能需求是一些限制性的要求,是對實(shí)際使用環(huán)境所做的要求,如性能要求、安全要求、可靠性要求等。非功能要求比功能要求更嚴(yán)格,更不容易滿足,這是因?yàn)?,如果不能滿足非功能的要求,系統(tǒng)將無法運(yùn)行。
需求獲取作為項(xiàng)目伊始的活動(dòng),是非常重要的。眾所周知,如果需求調(diào)研不充分、用戶需求描述不完整或不準(zhǔn)確,項(xiàng)目成功的可能性幾乎等于零。因此,根據(jù)軟件項(xiàng)目特點(diǎn),采取相應(yīng)的需求獲取方法,是項(xiàng)目取得成功的關(guān)鍵因素。
在實(shí)際系統(tǒng)開發(fā)中,經(jīng)常會發(fā)現(xiàn),由于需求方缺乏軟件系統(tǒng)開發(fā)的專業(yè)知識和項(xiàng)目管理經(jīng)驗(yàn),往往一開始自己也不知道要開發(fā)什么樣的系統(tǒng),盡管對業(yè)務(wù)很熟,但對數(shù)據(jù)、業(yè)務(wù)流程的整理和歸納上很難符合系統(tǒng)開發(fā)的要求,經(jīng)常是走一步看一步,不斷地提出和更改需求,使得系統(tǒng)開發(fā)方難于應(yīng)付。另一方面,開發(fā)方由于行業(yè)知識的缺乏和需求分析人員水平的低下,不能正確或完全理解用戶的需求說明,而又沒有加以嚴(yán)格的評審、確認(rèn),經(jīng)常是以想當(dāng)然的方法進(jìn)行系統(tǒng)設(shè)計(jì)。系統(tǒng)開發(fā)出來后,與用戶的期望相差甚遠(yuǎn)。因此,需求分析必須注重雙方理解和認(rèn)識的一致,逐項(xiàng)逐條地進(jìn)行確認(rèn)。為了作到這一點(diǎn),根據(jù)項(xiàng)目特點(diǎn)采用合適的需求獲取方法就顯得非常重要。
軟件開發(fā)需求管理是軟件項(xiàng)目管理中一項(xiàng)十分重要的工作,在眾多失敗的軟件項(xiàng)目中,由于需求原因?qū)е碌恼枷喈?dāng)大的比例,因此,需求管理將對軟件項(xiàng)目能否最終獲得成功產(chǎn)生至關(guān)重要的影響。但在實(shí)際軟件開發(fā)過程中,很多開發(fā)人對需求的認(rèn)識還遠(yuǎn)遠(yuǎn)不夠。就本人的實(shí)際經(jīng)驗(yàn)來看,軟件開發(fā)工作不是簡單的技術(shù)工作,而是一項(xiàng)系統(tǒng)的軟件需求開發(fā)管理工作。項(xiàng)目管理人員要想做好軟件項(xiàng)目管理工作,就必須要研究如何利用需求管理理論和方法,獲取需求;采取什么方法對軟件系統(tǒng)功能進(jìn)行描述--需求建模。其目的是理解用戶的功能要求,澄清模糊的功能需求,使軟件工程師和軟件用戶對系統(tǒng)功能的理解達(dá)到一致。就實(shí)際工作經(jīng)驗(yàn)來說,不管采用什么方法,都要體現(xiàn)以用戶為中心的思想,因?yàn)檐浖罱K的主人是用戶,這一點(diǎn)非常重要。