摘 要:在軟件項目開發(fā)中,需求分析占有重要地位,是決定軟件開發(fā)成功的關(guān)鍵因素。本文就需求分析,對需求分析的概述,需求分析的任務(wù),需求分析的過程,需求分析的內(nèi)容,需求分析的驗證等進行了闡述。
關(guān)鍵詞:需求分析;軟件開發(fā);軟件工程
中圖分類號:TP311.5
隨著計算機技術(shù)的發(fā)展和信息化程度的提高,由早期的計算機程序到復(fù)雜的應(yīng)用軟件和系統(tǒng)軟件,軟件開發(fā)過程中出現(xiàn)越來越多的問題,采用正確的軟件項目開發(fā)方法成為提高軟件開發(fā)效率,提高軟件質(zhì)量,降低成本、減少風險的有效途徑,軟件開發(fā)項目的需求分析成為一項重要工作,也是起決定性因素的工作。
1 需求分析概述[1]
軟件產(chǎn)業(yè)的發(fā)展,軟件技術(shù)人員面臨的軟件開發(fā)工作越來越復(fù)雜,規(guī)模也越來越大,面對軟件開發(fā)的復(fù)雜性、多樣性、不間斷性和自適應(yīng)性等一系列挑戰(zhàn),需求分析的好壞直接影響著軟件開發(fā)項目的開發(fā)進度和最終結(jié)果。
軟件需求指用戶對目標軟件系統(tǒng)的功能、行為、性能、設(shè)計約束等方面的期望。所謂\"需求分析\",是指對要解決的問題進行詳細的分析,弄清楚問題的要求,包括需要輸入什么數(shù)據(jù),要得到什么結(jié)果,最后應(yīng)輸出什么。軟件開發(fā)的需求分析就是要確定或明確開發(fā)的軟件“做什么”。
2 需求分析的任務(wù)
軟件需求分析的任務(wù)不是確定或明確軟件開發(fā)“怎樣做”,而是“做什么”。主要工作就是以正式獲比較正式的形式描述所要開發(fā)的軟件的功能和性能,研究用戶或客戶的需求,確定或明確軟件設(shè)計的限制和接口等細節(jié),定義軟件的有效性要求,研究和準確表達用戶或客戶的要求,確定所需開發(fā)軟件的系統(tǒng)元素或要素,最后將功能和信息結(jié)構(gòu)分配到這些系統(tǒng)元素中。需求分析的任務(wù)就是借助當前系統(tǒng)的邏輯模型導(dǎo)出目標系統(tǒng)的邏輯模型,是解決目標系統(tǒng)“做什么”的問題。如圖1所示。
3 需求分析的過程
需求分析的過程分為四個階段,“獲取用戶需求”,“分析用戶需求”,“編寫需求文檔”,“需求分析評審”。如評審?fù)ㄟ^,則需求分析結(jié)束,否則返回相應(yīng)步驟進行修改。
3.1 獲取用戶需求
也稱為問題識別。就是從軟件系統(tǒng)角度來理解軟件,確定用戶對所開發(fā)軟件的綜合要求,包括功能需求、性能需求、環(huán)境需求、可靠性需求、安全保密需求、用戶界面需求、資源使用需求、軟件成本消耗與開發(fā)進度需求、預(yù)先估計以后系統(tǒng)可能達到的目標等,并提出實現(xiàn)這些需求的條件,以及滿足這些需求應(yīng)該達到的標準。[2]
(1)依據(jù)分析階段確定合適的客戶方配合人員。1)分析初期,即總體分析階段。需要整體意義上的輪廓需求,與客戶方較高層次人員交流,對未來軟件系統(tǒng)有完整的描述;2)專業(yè)系統(tǒng)分析階段。應(yīng)與客戶方專業(yè)人員進行深入討論;3)系統(tǒng)關(guān)聯(lián)分析階段。在各專業(yè)系統(tǒng)得到充分分析的基礎(chǔ)上,理清系統(tǒng)之間的關(guān)系,這是提升需求層次的關(guān)鍵階段。
(2)從多個方位描述同一需求。從各個角度、各個方位對需求進行描述,綜合之后得到完整的表達,為后續(xù)的設(shè)計工作打好了基礎(chǔ)。
(3)清晰化每一數(shù)據(jù)項。
(4)對潛在需求進行充分挖掘。
3.2 分析用戶需求
分析與綜合。逐步細化所有的軟件設(shè)計功能,找出系統(tǒng)各元素間的聯(lián)系,接口特性和設(shè)計上的限制,分析他們是否滿足需求,剔除需求不合理部分,增加軟件設(shè)計需要部分,最后綜合成軟件系統(tǒng)的解決方案。
常用的需求分析方法有結(jié)構(gòu)化分析方法(SA)、面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法(JSD)、面向?qū)ο蟮姆治龇椒ǎ∣OA)及建立動態(tài)模型的狀態(tài)遷移圖或Petri網(wǎng)等。
3.3 編寫需求文檔
即編制文檔,描述需求的文檔稱為軟件需求規(guī)格說明書。需求分析的最終結(jié)果是客戶和軟件開發(fā)人員對將要開發(fā)的軟件產(chǎn)品達成一致協(xié)議,綜合了業(yè)務(wù)需求,用戶需求,和軟件功能需求。需求分析階段的成果是需求規(guī)格說明書,向下一階段提交,需求說明書要將用戶或/和客戶的想法變成可實現(xiàn)的功能。
3.4 需求分析評審
對功能的正確性,完整性和清晰性,以及其它需求給予評價。評審?fù)ㄟ^才可進行下一階段的工作,否則重新進行需求分析。
評審作為需求分析的最后一步,是分析階段的復(fù)查手段,主要內(nèi)容如下:軟件系統(tǒng)定義的目標與用戶的要求是否一致;文檔資料是否齊全;文檔中描述是否完整清晰,準確反映了用戶要求;重要接口是否都已描述;軟件開發(fā)項目的所有數(shù)據(jù)流和數(shù)據(jù)結(jié)構(gòu)是否完整;圖表是否清楚;主要功能在規(guī)定軟件范圍內(nèi)都能充分說明;約束條件和限制條件是否符合實際;技術(shù)風險是否考慮到;其他需求方案是否考慮到;將來可能提出的軟件要求是否考慮到;檢驗標準是否詳細制訂了;是否有遺漏,重復(fù)或不一致的地方;初步的用戶手冊是否審查了;軟件成本進度估算的影響等。
4 軟件開發(fā)需求分析的內(nèi)容
(1)功能需求。功能需求是軟件需求分析的最重要內(nèi)容,功能需求分析依據(jù)軟件開發(fā)目標,形成軟件功能模型描述結(jié)果,定量或/和定性敘述對所要開發(fā)軟件提出的功能要求。
(2)性能需求。主要是精度、時間特性要求和靈活性,還有輸入輸出要求,數(shù)據(jù)管理能力要求,環(huán)境需求,可靠性需求,安全保密要求,用戶界面需求,資源使用需求,軟件成本消耗與開發(fā)進度需求等。
5 需求分析驗證
5.1 需求分析驗證的方法
(1)自查法。有軟件開發(fā)的需求分析人員對自己的軟件需求進行審核和驗證,找出不足,糾正錯誤。具體方法有小組審查法,參照法,邏輯分析法等。
(2)用戶審查法、需求分析文檔提出一份給用戶/客戶,由用戶通過閱讀需求分析文檔,對比用戶的意見和現(xiàn)實要求,對有爭議的需求進行討論,最終達成一致。
(3)專家審查法。由領(lǐng)域?qū)<覍浖枨筮M行審查??赡苌婕罢?、法律等方面。
(4)原型法。對存在有爭議或/和拿不準的需求,通過建立原型進行審查,以驗證需求的正確性。
5.2 需求分析驗證的內(nèi)容
需求分析驗證的內(nèi)容主要有7項:需求的正確性;需求的一致性;需求的完整性;需求的可行性;需求的必要性;需求的可檢驗性;需求的可跟蹤性等。
6 結(jié)束語
本文通過對軟件開發(fā)項目的需求分析進行分析,并進行闡述,可見需求分析是軟件開發(fā)的重要和決定性工作,是軟件開發(fā)的基礎(chǔ),對軟件項目來說至關(guān)重要。只有正確科學(xué)地進行需求分析工作,才能保證整個軟件開發(fā)項目的完成,為軟件開發(fā)成功奠定基礎(chǔ)。
參考文獻:
[1]張建成,田青,李剛.軟件工程需求分析方法探討[J].信息技術(shù)與信息化,2007(06):74-77.
[2]百度百科[OL/E].http://baike.baidu.com/view/111493.htm
作者簡介:孟勛(1975.4-),男,助教,助工,碩士研究生,研究方向:計算機軟件與應(yīng)用、生物醫(yī)學(xué)工程、信息處理。
作者單位:西安工業(yè)大學(xué) 電子信息工程學(xué)院,西安 710032