IEEE 軟件工程標準中將需求分析(Requirement Analysis)定義爲:(1)用戶爲了解決問題或達到某些目標所需的條件或權能 (Capability) 。(2)系統或部件爲了知足合同、標準、規範或其它正式規定文檔所規定的要求而須要具有的條件或權能。(3)反映上面 (1) 或 (2) 所描述的條件或權能的文檔化表述。數據庫
需求分析是解決「作什麼」的問題,是定義「作」的範圍和尺度,是將用戶要求咱們作什麼,變成咱們書面承諾爲用戶作什麼的過程。需求分析結果應確保全部的風險承擔者都明白其含義,並造成文檔,從而做爲下一步工做的基礎。歸納來講,需求分析包括三個要素需求、分析和文檔。需求分析員是指負責收集分析客戶需求並編寫文檔,以及負責客戶與開發者之間溝通的人。性能
(二)軟件需求的三個層次測試
軟件需求通常分爲三個層次:ui
1、業務需求:反映了組織或客戶(Customer)對系統、產品高層次的目標要求。業務需求一般來自項目投資者、實際用戶的管理者或產品策劃部門。它們在項目視圖與範圍文檔中予以說明,這些文檔一般做爲合同的附件。編碼
2、用戶需求:描述了用戶(User)使用產品必需要完成的任務。它們通常使用用例文檔或者方案提綱(Scenario)予以說明,這些文檔一般做爲需求調研報告。url
3、功能需求:定義了設計開發人員必須實現的軟件功能,使得用戶可以經過軟件來完成他們的任務,從而也知足了業務需求,用戶需求和功能需求。其中也包括非功能性需求,如產品必須聽從的標準、規範、性能要求等。它們通常在軟件需求規格說明書(Software Requirements Specification SRS)中說明。spa
在這裏用一個關於超市會員多倍積分的例子來講明需求分析的三個層次:設計
業務需求:爲了提升會員的忠誠度,使會員在其生日及重大節日當天消費能夠獲得多倍的會員積分。生命週期
用戶需求:爲實現業務需求,須要首先制定會員多倍積分規則,而後將該規則宣傳給廣大會員;經過在系統中設置會員的多倍積分方案,在會員刷卡消費的時候,系統根據會員資料信息自動執行多倍積分方案;用戶要求在POS斷網的時候也能執行。ci
功能需求:根據用戶需求,系統中應該實現的功能是:一個設置會員多倍積分規則的界面;利用通信機制將會員積分方案同步到前臺POS;前臺POS在會員繳款時自動計算積分;將積分計算結果同步到後臺數據庫中。相關的非功能需求:用戶應該能夠自定義通信的間隔時間(範圍:1分到24小時);每1000筆銷售數據的通信時間不該該超過2分鐘;界面易用性等。
(三)需求分析在信息管理軟件開發中的重要地位
需求分析是軟件工程中最重要的階段。軟件項目的生命週期通常分爲計劃階段(項目立項、計劃)、開發階段(需求分析、概要設計、詳細設計、編碼、測試)、維護階段(實施投產、維護)。需求分析做爲項目開發階段的開端,具備很是重要的做用,能夠說它是軟件工程的真正開始。需求分析是全部軟件成功要素髮揮做用的前提,它的好壞直接影響着後面的各個階段,關係着軟件的成敗。軟件項目中百分之四十至百分之六十的問題都是在需求分析階段留下的隱患 。在軟件工程的歷史中,很長時間裏人們都認爲需求分析是整個軟件工程中最簡單的一個步驟,但在實踐中人們才愈來愈認識到它是整個軟件生命週期中最關鍵的一個過程。優秀的信息管理軟件產品必須創建在優秀的需求基礎之上。
需求分析階段又是在軟件工程中全部的風險承擔者都 關注 的階段。這些風險承擔者包括客戶、用戶、商務 及 業務人員、需求分析員、設計人員、編碼人員、測試人員、用戶文檔編寫者、項目經理等。這部分工做若是處理很差,可能致使需求誤解、開發挫折、項目延期、甚至糾紛和失敗;若處理好了,能開發出很出色的 項目,幫助客戶實現價值,項目團隊成員也 有成就感。