RUP:通過用例應用需求管理(上) 軟件測試
如果您對需求管理一無所知或者一知半解,但有志于改進需求過程,那么本文將為您提供一個框架,您可以利用它開發自己的方案。
用例和軟件需求規約 (SRS)
為了讓讀者更好地理解需求管理工作流程,作者從 Rational Software 的 Unified Process 以及工業標準統一建模語言特地挑選了一些文檔類型和需求管理工件予以說明。Unified Process 和統一建模語言都推薦使用一種用例驅動的軟件工程流程。
因此,本文描述了一種用于指定軟件需求的用例驅動方案。這些工作流程還可代替用例模型和用例,或作為它們的補充,與更傳統的軟件需求規約(如 IEEE 標準)一起使用。
流程時代的軟件和系統開發
對大多數軟件和系統開發團隊來說,與過去自由的日子相比,20 世紀 90 年代是一個強調流程的時代。評測和驗證有效的軟件開發流程的標準得到推廣和普及。許多論述軟件開發流程的書籍和文獻以及關于業務建模和重建的的相關材料紛紛出版。不斷涌現出的軟件工具已經幫助人們制定和應用有效的軟件開發流程。在這十年內,全球經濟對軟件的依賴程度加深,它推動著開發流程的發展,提高了系統質量。
既然如此,那么今天頻頻發生的軟件項目失敗的事件又如何解釋呢?即使不是大多數,但為什么仍有那么多的項目受到延期、預算超支和質量問題的困擾呢?隨著我們的業務、國家經濟和日?;顒釉絹碓揭蕾囉谙到y,如何才能提高系統的質量?
像往常一樣,答案就在于該行業的人員、工具和流程。需求管理通常在軟件開發出現問題時作為解決方案提出來,但對于這門學科的改進則較少關注。
本文介紹有效需求管理流程的元素,特別強調成功實施需求管理所面臨的障礙。
需求管理除了應用于純軟件項目以外,同樣也應用于軟件只占最終結果的一部分或根本不包括在內的項目。為方便起見,本文以后將使用“系統”這個詞來指代任何或所有這些項目。然而,正是軟件開發的抽象本質本身,或者和硬件一起,使需求管理復雜化了,因此本文的重點在于軟件開發。
為什么要管理需求?
簡單地說,系統開發團隊之所以管理需求,是因為他們想讓項目獲得成功。滿足項目需求即為成功打下了基礎。若無法管理需求,達到目標的幾率就會降低。
以下最近收集的證據很有說服力:
Standish Group 從 1994 年到 1997 年的 CHAOS Reports 證實,導致項目失敗的最重要的原因與需求有關。[1]
1997 年 12 月,Computer Industry Daily 報導了 Sequent Computer Systems 公司的一項研究,該公司對美國和英國 500 名 IT 經理作調查后發現,百分之七十六的受訪者在他們的事業中經歷過完全的項目失敗。其中提到最多的導致項目失敗的原因就是“變更用戶需求”。[2]
為什么要管理需求?避免失敗就是一個很充分的理由。提高項目的成功率和需求管理所帶來的其他好處同樣也是理由。Standish Group 的 CHAOS 報告進一步證實了與成功項目關系最大的因素是良好的需求管理。
什么是需求?
理解需求管理的第一步就是對什么是需求管理達成共識。Rational 把需求定義為“(正在構建的)系統必須符合的條件或具備的功能”。電氣和電子工程師學會使用的定義與此類似。
著名的需求工程設計師 Merlin Dorfman 和 Richard H. Thayer 提出了一個包容且更為精練的定義,它特指軟件方面 - 但不僅僅限于軟件:
“軟件需求可定義為: