在全球軟件業高速發展的今天,軟件項目的實施情況卻不甚理想。據統計,約80%~90%信息化投資沒有達到預期目標,80%的項目超期或超預算,40%的項目以失敗告終,只有不足25%的項目達到預期的技術和業務目標。這種局面的出現是與軟件項目本身所蘊含的諸多風險密切相關的,如技術風險、管理風險、需求風險等;而能夠對需求風險進行有效控制則是決定整個項目成敗的關鍵。

  企業信息化項目中存在的主要需求風險

  1.軟件需求的定義和層次

  什么是軟件需求呢?關于這個概念有各種各樣的定義,IEEE軟件工程標準詞匯表(1997)中定義需求為:

 ?。?)用戶解決問題或達到目標所需的條件或權能(Capability)。

 ?。?)系統或系統部件要滿足合同、標準、規范或其它正式規定文檔所需具有的條件或權能。

 ?。?)一種反映上面(1)或(2)所描述的條件或權能的文檔說明。

  這個定義包括了從用戶角度和開發者角度來闡述需求;另外一種定義是從系統外部出發認為需求是“用戶所需要的并能觸發一個程序或系統開發工作的說明”(Jones 1994)。下面的定義則從用戶需要進一步轉移到系統特性( Sommerville and Sawyer 1997):需求是指明必須實現什么的規格說明。它描述了系統的行為、特性或屬性,是在開發過程中對系統的約束。

  從上面這些定義可以看出,人們可以從不同角度去理解和描述需求,而關鍵是參與項目的人員能夠針對需求描述達成清晰一致的共識。此外,軟件需求又劃分為業務需求、用戶需求和功能需求三個層次,業務需求(Business Requirement)反映了組織機構或客戶對系統、產品高層次的目標要求,用戶需求(User Requirement)描述了用戶使用產品必須完成的任務,功能需求(Functional Requirement)定義了開發人員必須實現的軟件功能。這種層次的劃分體現出了需求從抽象到具體、從系統外部到內部的逐級轉化過程。對于軟件開發人員來說最終必須獲得準確詳細地功能需求描述,而客戶經常會認為只要將業務需求或用戶需求描述出來就足夠了,從而使最終開發人員獲取的需求信息不夠充分,或與客戶的期望產生差異。

  2.軟件需求的重要性

  對于軟件開發工作來說,其原始驅動力來自于用戶的需求,而非軟件開發技術本身。軟件或信息系統只是輔助人們完成某項工作任務的工具,必須依靠使用者告訴它要做什么和怎么做,且每一細節規則的定義必須是明確具體的,才能使整個信息系統正常運轉起來。因此軟件需求是軟件開發工作的一個最重要的輸入。

  在判斷一個軟件項目是否成功時,一般從以下幾方面來衡量:

 ?。?)項目是否達到預期目標;

 ?。?)項目的實施是否使工作效率得到提升;

 ?。?)軟件的使用者是否有良好的感受;

 ?。?)項目成本和工期是否控制在計劃之內。

責任編輯:admin