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