需求開發與管理是軟件項目中一項十分重要的工作,據調查顯示在眾多失敗的軟件項目中,由于需求原因導致的約占到45%,因此,需求工作將對軟件項目能否最終實現產生至關重要的影響。雖然如此,在項目開發工作中,很多人對需求的認識還遠遠不夠,從本人參與或接觸到的一些項目來看,小到幾十萬元,大到上億元的軟件項目的需求都或多多少的存在問題,有的是開發者本身不重視原因、有的是技術原因、有的是人員組織原因、有的是溝通原因、有的是機制原因,以上種種原因都表明做好軟件需求開發是一項系統工作,而不是簡單的技術工作,只有系統的了解和掌握需求的基本概念、方法、手段、評估標準、風險等相關知識,并在實踐中加以應用,才能真正做好需求的開發和管理工作。
本文將通過介紹關于軟件需求的基本知識和個人在實際工作中總結的一些經驗,幫助讀者了解軟件需求,學習需求開發的一些基本方法,避免因需求原因而導致的項目失敗。
1 什么是軟件需求和需求工程
1.1 軟件需求的定義
在IEEE軟件工程標準詞匯表(1997年)中定義軟件需求為:
(1)用戶解決問題或達到目標所需的條件或能力。
(2)系統或系統部件要滿足合同、標準、規范或其它正式規定文檔所需具有的條件或能力。
(3)一種反映上面(1)或(2)所描述的條件或權能的文檔說明。 實通俗的講,“需求”就是用戶的需要,它包括用戶要解決的問題、達到的目標、以及實現這些目標所需要的條件,它是一個程序或系統開發工作的說明,表現形式一般為文檔形式。