軟件需求分析(Software Reguirement Analysis)是研究用戶需求得到的東西,完全理解用戶對軟件需求的完整功能,確認用戶軟件功能需求,建立可確認的、可驗證的一個基本依據(jù)。
軟件需求分析是一個項目的開端,也是項目實施最重要的關(guān)鍵點。據(jù)有關(guān)的機構(gòu)分析結(jié)果表明,我們設(shè)計的軟件產(chǎn)品存在不完整性、不正確性等問題80%以上是需求分析錯誤所導致的,而且由于需求分析錯誤造成根本性的功能問題尤為突出。因此,一個項目的成功軟件需求分析是關(guān)鍵的一步。
一、 軟件需求分析理論
如果我們用數(shù)學方法來描述軟件需求分析,可以將一個應用軟件定義為S,可能應用軟件涉及功能性問題非常廣,我們用抽象化理論分析,可以劃分為各個功能域,可以用D1、D2、… Dn表示,那么,我們可以用一個表達式描述為
S={D1,D2,D3,…Dn}
但是,功能域Di依然存在著有若干個問題P1、P2、P3、… Pm組成,并且每個功能對應于子系統(tǒng)中的一個軟構(gòu)件,我們可以表示為
Di={P1,P2,P3,…Pm}
同樣,功能Pj有若干個行為F1、F2、F3、… Fk,每個行為對應于軟構(gòu)件中的實現(xiàn)方法
Pj={F1,F(xiàn)2,F(xiàn)3,…Fk}
一個軟件包含了所有功能的集合,同時包含了實現(xiàn)所有功能的所有方法和算法描述。需求分析是依據(jù)于用戶需求,經(jīng)過需求問題識別,進行分析、消化與綜合,制訂規(guī)格說明,評審,分為四個階段,形成用戶需求與設(shè)計同步,設(shè)計滿足用戶需求目標。
需求分析方法始終貫穿著吸收、同化、貫徹方法和手段,用商業(yè)化行為解決需求與實現(xiàn)中存在的矛盾,解決用戶需求與商業(yè)化產(chǎn)品融通,解決規(guī)范與個性化追求。
二、 軟件需求分析目標
軟件需求分析的主要實現(xiàn)目標:
1)對實現(xiàn)軟件的功能做全面的描述,幫助用戶判斷實現(xiàn)功能的正確性、一致性和完整 性,促使用戶在軟件設(shè)計啟動之前周密地、全面地思考軟件需求;
2)了解和描述軟件實現(xiàn)所需的全部信息,為軟件設(shè)計、確認和驗證提供一個基準;
3)為軟件管理人員進行軟件成本計價和編制軟件開發(fā)計劃書提供依據(jù);
需求分析的具體內(nèi)容可以歸納為六個方面:軟件的功能需求,軟件與硬件或其他外部系統(tǒng)接口,軟件的非功能性需求,軟件的反向需求,軟件設(shè)計和實現(xiàn)上的限制,閱讀支持信息。
軟件需求分析應盡量提供軟件實現(xiàn)功能需求的全部信息,使得軟件設(shè)計人員和軟件測試人員不再需要需求方的接觸。這就要求軟件需求分析內(nèi)容應正確、完整、一致和可驗證。此外,為保證軟件設(shè)計質(zhì)量,便于軟件功能的休整和驗證,軟件需求表達無岔意性,具有可追蹤性和可修改性。
2.1 軟件功能需求
軟件的功能需求是整個需求分析最主要、最關(guān)鍵和最復雜的部分,它描述軟件的各種可能的條件下,對所有可能輸入的數(shù)據(jù)信息,應完成那些具體功能,產(chǎn)生什么樣的輸出。描述軟件功能需求是應注意下面幾點:
1)功能需求的完整性和一致性
對功能的描述應包含與功能相關(guān)的信息,并應具有內(nèi)在的一致性(即各種描述之間不矛盾、不沖突)。應注意以下幾點:
?。?) 給出觸發(fā)功能的各種條件(如:控制流、運行狀態(tài)、運行模式等);
?。?) 定義各種可能性條件下的所有可能的輸入(包括合法的輸入空間和非法的輸入空間);
?。?) 給出各種功能間可能的相互關(guān)系(如各個功能間的控制流、數(shù)據(jù)流、信息流,功能運行關(guān)系:順序、重復、選擇、并發(fā)、同步);
?。?) 給出功能性的主要級別(如:基本功能、可由設(shè)計者選擇逐步實現(xiàn)的功能、可由設(shè)計者改變實現(xiàn)的功能等);
?。?/P>