一、 概述
據(jù)權(quán)威部門統(tǒng)計,目前軟件的成功率約為25%,75%的軟件是失敗的。在這75%的失敗中,約有50%以上的軟件是由于需求的原因造成的。作為軟件的設(shè)計和開發(fā)人員常抱怨用戶需求不明確,需求常處于變更狀態(tài)。新的需求往往在開發(fā)階段才被用戶提出。造成軟件的完成日期不斷的遲后。
一般的軟件企業(yè),往往只口頭上注重用戶需求。但由于沒有科學(xué)的管理方法,實際上他們描述的用戶需求是雜亂無章的,只言片語的。不能有效地和系統(tǒng)設(shè)計、開發(fā)保持同步最后開發(fā)出來的軟件產(chǎn)品和實際有很大的差異。導(dǎo)致軟件的失敗。有證據(jù)表明,在需求階段修正錯誤的工作量,是在系統(tǒng)設(shè)計階段修正錯誤的1/10;是在開發(fā)階段修正錯誤的1/100,是在發(fā)布產(chǎn)品階段修正錯誤的1/1000。當(dāng)然這是對大型系統(tǒng)而言,對于不同的系統(tǒng),隨系統(tǒng)的復(fù)雜程度這個比率會有所不同。
用戶的需求的增加具有漸進(jìn)的、增量的特點。隨著需求分析人員和用戶逐漸深入的交流,用戶在不斷地整理、規(guī)范自己的需求。需求分析人員須牢記的是用戶不可能一下子給出一個完整、清晰、規(guī)范的用戶需求。需求分析人員需從與用戶的交流中,不斷地挖掘,并加以整理,才能得到想要的需求。
需求分析一般來說需要有一個需求分析的團(tuán)隊,如用戶代表、系統(tǒng)分析人員、開發(fā)人員、需求管理人員等,他們的分工不同各有側(cè)重點。對于小型或中型項目人員可以兼任。
基于上述原因,需要從理論上規(guī)范用戶需求的收集和整理。本文結(jié)合系統(tǒng)建模,給出了需求分析的一般性方法。它如下的包含了兩個方面:
1、 技術(shù)層面
給出需求分析的系統(tǒng)框架,它包含了需求的項目、參與需求分析的用戶、用戶對于需求的可操作權(quán)限(安全性)等。
2、 操作層面
給出了需求收集、整理、分析的一般性方法。
其中介紹了系統(tǒng)建模和需求分析間的相互關(guān)系,最后介紹了目前幾種流行的需求分析產(chǎn)品及它們的特點。
二、 需求分析的基本概念
需求分析的目的是完整、準(zhǔn)確地描述用戶的需求,跟蹤用戶需求的變化,將用戶的需求準(zhǔn)確地反映到系統(tǒng)的分析和設(shè)計中,并使系統(tǒng)的分析、設(shè)計和用戶的需求保持一致。
需求分析的特點是需求的完整性、一致性和可追溯性。
完整性:是準(zhǔn)確、全面的描述用戶的需求。
一致性:是通過分析整理,剔除用戶需求矛盾的方面,規(guī)范用戶需求。
可追溯性:有兩個方面的含義,整理和規(guī)范的需求,
其一,需要不斷的和用戶進(jìn)一步交流,保持和用戶最新的需求一致
其二,和系統(tǒng)分析(設(shè)計)保持一致。
因此在需求分析之前我們必須建立需求分析技術(shù)層面的基本框架,從技術(shù)上保證需求分析的要求,在此基礎(chǔ)上我們進(jìn)行的需求分析才能滿足項目對需求分析的要求。
三、 需求分析的系統(tǒng)架構(gòu)
本節(jié)描述的是進(jìn)行需求分析之前,如何在技術(shù)層面上建立需求分析的系統(tǒng)架構(gòu)。
需求分析需要采用需求分析的軟件。上圖簡要描述了需求分析軟件的架構(gòu)。需求分析軟件一般采用C/S的結(jié)構(gòu),需求分析人員作為客戶對服務(wù)器進(jìn)行操作,操作主要由四個方面:系統(tǒng)管理(含用戶的創(chuàng)建和授權(quán),定義項目的術(shù)語表等)、項目視圖(涉及項目的相關(guān)操作)、需求類型視圖(涉及需求類型的相關(guān)操作)、需求視圖(涉及需求的相關(guān)操作)。
項目包含一個或多個需求類型,需求類型包含一個或多個需求。里程碑是特定版本的需求的集合(需求分析軟件含有簡單的配置管理的功能),它作為軟件產(chǎn)品的功能依據(jù)。自動文檔生成是通過文檔模版將里程碑的需求,自動生成相關(guān)文檔。
3.1 項目
項目在總體上定義了一個應(yīng)用和系統(tǒng)所涉及到的需求及需求涉及的范圍。它包含了在需求分析過程中參與需求分析的人員、需求類型、包含于需求類型中的需求。此外它還包含了