摘 要 : CMM可重復級作為軟件企業項目級的過程改進框架,其難點在于如何將CMM有關要求應用到具體項目中去。本文結合某公司實施CMM二級評估和軟件項目管理經驗,論述了CMM可重復級在特殊軟件項目管理中應用的方法及要求。
關鍵詞: CMM;軟件項目管理;應用
引言
由 SEI 在 1991 年 8 月發布的軟件能力成熟度模型( SW-CMM ),用來評估軟件企業的成熟度級別,使軟件企業了解自己的優勢和不足之處,從而持續地改進企業的軟件開發過程,提高管理水平,降低管理成本,保證軟件開發效率和軟件質量。
然而, CMM 是針對大型項目和企業制定的。小項目和中小企業由于受到相應條件的限制,如組織結構、角色和關系、過程模式定義等,生搬硬套 CMM 框架只能給自己帶來沉重的負擔?扇〉淖龇ㄊ前 CMM 作為一個參考,從 CMM 評估體系中汲取適合于自身發展的要素,提高軟件開發和管理水平。
1 CMM 可重復級框架
CMM可重復級是針對軟件項目的管理,包含需求管理、軟件項目計劃、軟件項目跟蹤與監控、軟件子同合管理、軟件配置管理、軟件質量保證等六個關鍵過程域。其中子合同管理用于選擇合格的軟件承包商并對其進行有效地管理,一般軟件企業如無外包業務,可將該關鍵過程域忽略,不作為評估范圍。
1.1需求管理
這里的需求包括技術需求和非技術需求。目的是在客戶和軟件項目間建立對客戶需求的共同理解。主要任務有:獲取客戶需求,作為后續工作的基礎;客戶需求通過評審,納入配置管理,創建需求基線;按配置管理的變更流程執行,跟蹤需求變更。
1.2 軟件項目計劃
制定合理的軟件項目計劃是軟件項目開展、跟蹤與監控的基礎。項目開始時,項目經理根據需求進行估算,制定軟件開發計劃和進度表;軟件開發計劃通過項目組評審和高層經理審批,納入配置管理。
1.3 軟件項目跟蹤與監控
為使軟件項目按計劃的進度和質量完成,需要建立過程可視性,對項目實際進展情況進行跟蹤與監控,使管理者在軟件項目偏離計劃時采取有效措施。跟蹤軟件項目活動主要包括跟蹤軟件規模、工作量、成本、進度、風險等。
1.4 軟件質量保證
軟件質量保證貫穿軟件項目生命周期。質量保證人員按質量保證計劃,對軟件項目所使用的過程及開發的產品進行恰當的管理,評審項目活動,審計工作產品,以驗證它們符合規程和標準。
1.5 軟件配置管理
軟件配置管理同樣貫穿軟件項目生命周期。由SCM工程師制定配置管理計劃,完成各項配置管理活動,維護配置項的可跟蹤性,保證在軟件項目整個生命周期中產品的完整性。
2 項目生命周期模型描述
軟件項目生命周期模型的選擇對項目成功與否起到很大作用。合適的項目生命周期使項目能夠按計劃順利完成,不合適的項目生命周期不同程度地阻礙項目的進展。
本文討論的軟件項目是某公司與國外公司合作項目,主要是軟件驗證和測試。與自主開發軟件不同,該項目來源于國外公司,客戶以任務包形式分配任務,每個任務包開始時間由客戶決定。因為現有的軟件項目生命周期模型均不能確切描述該項目的特性和過程,為此,公司 SEPG 創造性地為該項目提出了專門的模型。將項目分為三個階段:策劃、實施和總結。各階段與 5 個 KPA 的關系如示意圖。
3 項目管理活動與KPA的覆蓋關系
3.1 項目策劃階段
項目策劃階段是項目的初始階段,目的是為項目過程的管理做好必要的準備。該階段對應 CMM 中需求管理的部分內容以及軟件項目計劃。該階段的主要工作包括:進行項目級的需求(即客戶非技術要求)分析,進行項目總體估計,制定項目總體計劃,指定項目經理,分配項目人員。
質量保證和配置管理活動從項目策劃階段即開始,并作為支持過程貫穿整個項目生命周期。
主要輸入 |
工作說明書( Statement Of Work) |
參與人員 |
高層經理(必須參加); 項目經理、 SQA 和 SCM 工程師、客戶或客戶代表(必須參加); 項目組主要成員(可選) |
活動 |
高層經理對 客戶的 SOW進行 分析、評審,與客戶充分溝通,達成一致意見; 分配項目經理和項目組成員,必要時進行相關技能培訓; 利用 歷史數據和 客戶 提供的數據, 項目經理估計項目的規模、工作量 ; 項目經理、 SQA 和 SCM 工程師分別制定項目計劃、 SQA 計劃和 SCM 計劃 |
主要輸出 |
估計記錄; 軟件項目計劃,包括項目開發計劃、 SQA計劃、SCM計劃。 |
3.2 項目實施階段
項目組收到第一個任務包標志著項目實施階段開始,項目組以任務包為單位,管理、控制項目的進度和質量。從示意圖中可以看出,大部分的活動集中在項目實施階段,綜合覆蓋了 CMM 二級所要求的 5 個 KPA :需求管理、項目計劃、項目跟蹤與監控,以及質量保證和配置管理活動。
主要輸入 |
任務包;軟件(技術)需求 |
參與人員 |
項目經理、項目組成員、 SQA 工程師、 SCM 工程師; 高層經理(必要時參與) |
活動 |
項目經理對 任務包 進行評估,合理分配任務給項目組成員; 項目組成員依據軟件需求,編寫測試程序,進行調試; 進行同行評審; 運行測試程序,交付工作產品 |
主要輸出 |
工作產品,評審記錄 SQA報告,SCM報告 項目跟蹤與監控數據 |
根據項目生命周期模型,對于每一個任務包,又細分為五個小的階段:需求 & 計劃、設計、評審、測試和交付。
• 需求 & 計劃 :這里的需求是軟件的技術需求,而計劃是針對每個任務包制定的較為詳細的計劃,即項目經理對任務包進行分析和確認,對技術需求初步分析估計,合理分配任務給項目組成員。
• 設計 :項目組成員依據軟件技術需求和分配到的任務,設計測試用例和測試程序。
• 同行評審 :對開發完畢的測試用例和程序進行評審。雖然同行評審是 CMM 三級的要求,但考慮到公司已有一定的評審文化和流程,將該活動作為制度要求實施,也為將來順利達到 CMM 三級減輕工作量。
• 運行 :使用測試程序對目標代碼進行測試。
• 交付 :將工作產品(已完成并通過同行評審的測試程序及相關文件)提交給客戶。
3.3 項目總結階段
項目總結階段在項目實施階段結束后 , 與客戶一起,依據項目準備階段所確定的內容和項目實施過程中實際提交的工作產品,最終確定完成的成果和工作量;同時總結項目實施過程的經驗教訓,為以后的項目提供參考,為過程改進確定方向。
主要輸入 |
工作說明書( SOW); 項目實施階段有關數據 |
參與人員 |
高層經理、項目經理、 SQA 工程師、項目組主要成員 |
活動 |
整理項目成果; 確定工作量等數據統計并歸檔管理; 總結經驗教訓 |
主要輸出 |
項目數據和總結 |
4 結束語
CMM 模型的可重復級描繪了軟件項目管理過程的目標及關鍵實踐,為提高軟件項目管理水平起到指導作用,也有助于小型軟件組織改進它們的過程。然而 CMM 模型并不是僵硬的。將 CMM 可重復級框架應用于特殊 軟件項目管理時,應針對具體的項目靈活運用,將 過程裁剪到項目所需的程度。裁剪的準則應以實用為主,避免過于繁瑣和形式化。這樣, 一方面保證項目的順利進行,一方面保證覆蓋 CMM二級的要求。 本文提出的 基于 CMM 可重復級的 項目管理模型已經在多個類似軟件項目中得到應用。并取得了良好的效果,改進了項目進度和預算的可預測性,提高了生產率和軟件產品質量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/