對于開發(fā)小組的使用成員(包括用戶)來說,需求確定是極具認(rèn)知性和創(chuàng)造性的活動。
軟件需求是指用戶對目標(biāo)軟件系統(tǒng)在功能、行為、性能、設(shè)計約束等方面的期望,通過對應(yīng)用問題及其環(huán)境的理解與分析,為問題涉及的信息、功能及系統(tǒng)行為建立模型,將用戶需求精確化、完全化、最終形成需求規(guī)格說明,這一系列的活動即構(gòu)成軟件開發(fā)生命周期的需求分析階段。
需求分析是介于系統(tǒng)分析和軟件設(shè)計階段之間的重要橋梁。一方面,需求分析以系統(tǒng)規(guī)格說明和項目規(guī)劃作為分析活動的基本出發(fā)點,并從軟件角度對它們進(jìn)行檢查與調(diào)整;另一方面,需求規(guī)格說明又是軟件設(shè)計、實現(xiàn)、測試直至維護(hù)的主要基礎(chǔ)。良好的分析活動有助于避免或盡早剔除早期錯誤,從而提高軟件生產(chǎn)率,降低開發(fā)成本,改進(jìn)軟件質(zhì)量。
需求分析階段的基本任務(wù)是深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其它系統(tǒng)元素的接口細(xì)節(jié),定義軟件其它有效的需求。 需求確定為什么困難? 最主要的原因是對于開發(fā)小組的使用成員(包括用戶)來說,需求確定是極具認(rèn)知性和創(chuàng)造性的活動。需求確定也許是仍在苦苦等待人工智能支持的最后領(lǐng)域之一。
具體表現(xiàn)如下:
系統(tǒng)分析員對問題域的了解程度也是一大困難。
系統(tǒng)分析員感到需求確定很困難的另一個原因是問題域的動態(tài)性。
生活是動態(tài)的,公司也是。
項目團(tuán)隊成員之間的溝通也一直是需求確定的另一大困難。
每個問題域都有術(shù)語。
最后,需求確定過程還會受到其它因素的影響。例如勞累、不舒服、開會時室內(nèi)和窗外的干擾、團(tuán)隊成員的壓力等等。