近年來,信息系統(tǒng)項目的規(guī)模越來越大,復(fù)雜度越來越高。由于管理上的失誤給人們的教訓(xùn)也越來越深刻。需求管理、配置管理、項目范圍管理對于信息系統(tǒng)項目管理而言,都具有舉足輕重的地位。澄清這些基本概念的含義,分析相互間的聯(lián)系與區(qū)別以加深大家的理解,對規(guī)范和促進軟件項目管理工作意義不小。
1 需求管理
1.1 需求管理概述
信息系統(tǒng)項目中的需求管理RM(Requirements Management)包括確保所有項目干系人對需求的一致理解;管理和控制需求的變更;從需求到最終產(chǎn)品的雙向跟蹤。詞匯“需求管理”可以理解為對“需求”實施“管理”的活動或過程。
“需求”在IEEE軟件工程標(biāo)準(zhǔn)詞匯表(1997年)中定義為:
(1)用戶解決問題或達到目標(biāo)所需的條件或權(quán)能(Capability)。
(2)系統(tǒng)或系統(tǒng)部件要滿足合同、標(biāo)準(zhǔn)、規(guī)范或其他正式規(guī)定文檔所需具有的條件或權(quán)能。
(3)一種反映(1)或(2)所描述的條件或權(quán)能的文檔說明。
與傳統(tǒng)的生產(chǎn)企業(yè)相比較,軟件的需求具有模糊性、不確定性、變化性和主觀性等特點,軟件的需求不像生產(chǎn)汽車、電腦等硬件的需求,是有形的、客觀的、可描述的、可檢測的,軟件需求是軟件項目最難把握的問題。
軟件需求包括業(yè)務(wù)需求、用戶需求和功能需求(含非功能需求)。業(yè)務(wù)需求(Business Requirement)反映了組織機構(gòu)或客戶對系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,它們在項目視圖與范圍文檔中予以說明。用戶需求(UserRequirement)文檔描述了用戶使用產(chǎn)品必須要完成的任務(wù),這在使用實例(Use Case)文檔或方案腳本(scenario)說明中予以說明。功能需求(Functional Requirement)定義了開發(fā)人員必須實現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足業(yè)務(wù)需求。所謂特性(feature)是指邏輯上相關(guān)的功能需求的集合,給用戶提供處理能力并滿足業(yè)務(wù)需求。
CMM的第二級(可重復(fù)級)中將需求管理作為六個關(guān)鍵過程域的一個,因為它實際上是二級引入到開發(fā)過程中的所有管理原則的先決條件。只有在開發(fā)的目標(biāo)被清楚明白地表述和理解的情況下,軟件開發(fā)才能以一種有計劃和有序的方式進行。實際上,沒有文檔化的需求,在開發(fā)工作完成前后都很有可能發(fā)生產(chǎn)品與要求的偏離。計劃、追蹤、配置管理以及軟件質(zhì)量保證這些在二級的其他關(guān)鍵過程域中涉及的原則,都是從一個穩(wěn)定的基礎(chǔ)開始的,那就是文檔化的需求基線。
1.2 需求管理、需求分析與需求工程
需求分析RA(Requirements Analysis)指深入描述軟件的功能和性能,確定軟件設(shè)計的限制和軟件同其他系統(tǒng)元素的接口細(xì)節(jié),定義軟件的其他有效性需求。RA的基本任務(wù)是準(zhǔn)確地回答“系統(tǒng)必須做什么?”這個問題。需求分析的目的是對各種需求信息進行分析并抽象描述,為目標(biāo)系統(tǒng)建立一個概念模型。區(qū)分需求管理和需求分析是很重要的。
需求工程RE(Requirements Engineering)是指應(yīng)用已被證實有效的技術(shù)、方法進行需求分析,確定客戶需求,幫助分析人員理解問題并定義目標(biāo)系統(tǒng)的所有外部特征。RE是80年代中期逐步形成的軟件工程子領(lǐng)域。它通過合適的工具和記號系統(tǒng)地描述待開發(fā)系統(tǒng)及其行為特征和相關(guān)約束,形成需求文檔,并對用戶不斷變化的需求演進給予支持。RE包括所有與需求直接相關(guān)的活動,RE的活動可以分為需求開發(fā)和需求管理兩大類。RE也可以進一步細(xì)分為系統(tǒng)需求工程(如果是針對由軟硬件共同組成的整個系統(tǒng))和軟件需求工程(如果僅是專門針對純軟件部分)。
從完整意義上講,RE包括需求獲取、需求分析、需求定義、需