一、概述

  據權威部門統計,目前軟件的成功率約為25%,75%的軟件是失敗的。在這75%的失敗中,約有50%以上的軟件是由于需求的原因造成的。作為軟件的設計和開發人員常抱怨用戶需求不明確,需求常處于變更狀態。新的需求往往在開發階段才被用戶提出。造成軟件的完成日期不斷的遲后。

  一般的軟件企業,往往只口頭上注重用戶需求。但由于沒有科學的管理方法,實際上他們描述的用戶需求是雜亂無章的,只言片語的。不能有效地和系統設計、開發保持同步后開發出來的軟件產品和實際有很大的差異。導致軟件的失敗。有證據表明,在需求階段修正錯誤的工作量,是在系統設計階段修正錯誤的1/10;是在開發階段修正錯誤的1/100,是在發布產品階段修正錯誤的1/1000。當然這是對大型系統而言,對于不同的系統,隨系統的復雜程度這個比率會有所不同。

  用戶的需求的增加具有漸進的、增量的特點。隨著需求分析人員和用戶逐漸深入的交流,用戶在不斷地整理、規范自己的需求。需求分析人員須牢記的是用戶不可能一下子給出一個完整、清晰、規范的用戶需求。需求分析人員需從與用戶的交流中,不斷地挖掘,并加以整理,才能得到想要的需求。

  需求分析一般來說需要有一個需求分析的團隊,如用戶代表、系統分析人員、開發人員、需求管理人員等,他們的分工不同各有側重點。對于小型或中型項目人員可以兼任。

  基于上述原因,需要從理論上規范用戶需求的收集和整理。本文結合系統建模,給出了需求分析的一般性方法。它如下的包含了兩個方面:

  1、技術層面

  給出需求分析的系統框架,它包含了需求的項目、參與需求分析的用戶、用戶對于需求的可操作權限(安全性)等。

  2、操作層面

  給出了需求收集、整理、分析的一般性方法。

  其中介紹了系統建模和需求分析間的相互關系,后介紹了目前幾種流行的需求分析產品及它們的特點。

  二、需求分析的基本概念

  需求分析的目的是完整、準確地描述用戶的需求,跟蹤用戶需求的變化,將用戶的需求準確地反映到系統的分析和設計中,并使系統的分析、設計和用戶的需求保持一致。

  需求分析的特點是需求的完整性、一致性和可追溯性。

  完整性:是準確、全面的描述用戶的需求。

  一致性:是通過分析整理,剔除用戶需求矛盾的方面,規范用戶需求。

  可追溯性:有兩個方面的含義,整理和規范的需求,

  其一,需要不斷的和用戶進一步交流,保持和用戶新的需求一致

  其二,和系統分析(設計)保持一致。

  因此在需求分析之前我們必須建立需求分析技術層面的基本框架,從技術上保證需求分析的要求,在此基礎上我們進行的需求分析才能滿足項目對需求分析的要求。

  三、需求分析的系統架構

  本節描述的是進行需求分析之前,如何在技術層面上建立需求分析的系統架構。

  需求分析需要采用需求分析的軟件。上圖簡要描述了需求分析軟件的架構。需求分析軟件一般采用C/S的結構,需求分析人員作為客戶對服務器進行操作,操作主要由四個方面:系統管理(含用戶的創建和授權,定義項目的術語表等)、項目視圖(涉及項目的相關操作)、需求類型視圖(涉及需求類型的相關操作)、需求視圖(涉及需求的相關操作)。

  項目包含一個或多個需求類型,需求類型包含一個或多個需求。里程碑是特定版本的需求的集合(需求分析軟件含有簡單的配置管理的功能),它作為軟件產品的功能依據。自動文檔生成是通過文檔模版將里程碑的需求,自動生成相關文檔。