摘 要:本文根據(jù)目前中小型軟件企業(yè)項目管理的實際狀況,以及高職院校軟件人才培養(yǎng)的定位,提出并分析了CMM2模型,并將該模型進行改進,提出了一個可實施的,運用在軟件實訓項目管理系統(tǒng)中的方案。
關鍵詞:CMM2;過程改進;項目管理系統(tǒng)
中圖分類號:TP311.5
目前,南京市軟件產(chǎn)業(yè)取得了令人矚目的成績,中小型軟件企業(yè)的數(shù)量也在與日俱增,相當多的中小型軟件企業(yè)希望以CMM2作為切入點,著力改進軟件項目管理過程,提升企業(yè)的市場競爭力。作為培養(yǎng)“軟件藍領”的高職院校,就要順應這一趨勢,采用信息化的手段讓學生學習并了解CMM2模型。所以,一個基于CMM2模型的、并加以改進的“軟件實訓項目管理系統(tǒng)”應運而生。
1 軟件能力成熟度模型2級(CMM2)詳解
所謂CMM2(可重復級),就是在CMM2級企業(yè)中,已經(jīng)建立了基本的軟件項目級管理過程,可對項目的成本、進度進行跟蹤和控制,軟件開發(fā)和維護的過程相對穩(wěn)定,已有的管理類似項目的成功經(jīng)驗可以被復用管理新項目,盡管新項目所實施的具體過程有可能不同。CMM2的核心就是重復利用。
CMM2包括六個關鍵過程域(KPA),囊括了需求管理、項目管理、質量管理、配置管理和子合同管理五個方面,其中項目管理又分為計劃過程和跟蹤與監(jiān)控過程。
1.1 需求管理
需求管理的最終目的是在客戶與實現(xiàn)客戶需求的項目之間達成共識,需求管理活動就是為了建立并維護這種共識,這是軟件項目計劃和管理的基礎。在軟件項目的整個生命周期,都應該記載、跟蹤和驗證由于需求的變化而引起其它文檔所作的修改。
1.2 軟件項目計劃
建立合理的開發(fā)計劃的基礎是對項目規(guī)模、資源要求和風險等要有一個合理的估算。軟件項目計劃的目的是為完成軟件工程和管理軟件項目制定合理的計劃,包含估計待完成的工作,建立必要的約定和確定進行該工作的計劃。
1.3 軟件項目跟蹤及監(jiān)督
軟件項目跟蹤和監(jiān)督的目的是建立對實際進展的適當?shù)目梢曅?,使管理者能在軟件項目性能明顯偏離軟件計劃時采取有效措施。它包括對照已文檔化的估計、約定、和計劃評審和跟蹤軟件完成情況和結果,以保證當項目執(zhí)行偏離項目計劃時管理上能采取有效的解決措施。
1.4 軟件質量保證
軟件質量保證的目的是向管理者提供適當?shù)膶浖椖空褂玫倪^程和正構造產(chǎn)品的可視性。它包括評審和審計軟件產(chǎn)品和活動以驗證它們符合適用的規(guī)程和標準,給項目和其它有關的經(jīng)理提供這些評審和審計的結果。
1.5 軟件配置管理
軟件配置管理的目的是建立和維護在項目的整個軟件生存周期中軟件項目產(chǎn)品的完整性。它包括標識在給定時間點上軟件的配置,系統(tǒng)地控制對配置的更改、并維護在整個軟件生存周期中配置的完整性和可跟蹤性。
1.6 軟件子合同管理
軟件子合同管理的目的是選擇合格的軟件子承包商并有效地管理他們。它包括選擇軟件子承包商、建立和子承包商的約定,及跟蹤和評審子承包商的性能和結果。
2 軟件實訓項目管理與CMM2模型改進
2.1 軟件實訓項目管理
(1)軟件實訓項目管理概述。軟件實訓項目是參考中小型軟件企業(yè)真實項目案例,同時又適合高職學生作為訓練相應技能而改進的軟件項目,它不是一個具有商業(yè)性質的軟件產(chǎn)品。目前,正規(guī)的軟件企業(yè)如果重視軟件項目實施過程的管理,一定會采取各種方法對軟件項目進行管控,軟件項目管理系統(tǒng)就是一個常見的措施,采用該系統(tǒng)可以對軟件項目的各個實施階段進行有效的、實時的、科學的管控。所以,把針對軟件實訓項目管理的系統(tǒng)叫做軟件實訓項目管理系統(tǒng)。
(2)軟件實訓項目管理系統(tǒng)的基本功能需求。軟件實訓項目管理系統(tǒng)是體現(xiàn)軟件實訓項目管理過程的一個信息化軟件平臺,針對學院對項目管理基本的功能需求調查發(fā)現(xiàn),整個系統(tǒng)包括了班級管理、案例資料管理、項目管理、歷史數(shù)據(jù)管理、實訓成績管理、課程管理六大部分。其中最重要的功能就是項目管理,它重點體現(xiàn)了軟件成熟度模型的思想,有效的規(guī)范和保證了項目實施的全過程,包括項目啟動、計劃、執(zhí)行、質量保證、結束。
2.2 CMM2級模型改進與實施方案
(1)CMM2級模型改進。CMM2模型中的內(nèi)容非常廣泛,標準十分完備,如果完全照搬CMM2運用到該系統(tǒng)中是不合適的。因此,必須對CMM2中管理的內(nèi)容和標準進行一定的優(yōu)化和裁減,提出一個適合軟件實訓項目組規(guī)模的CMM軟件項目管理模型,并給出在模型的各個階段實際要完成的任務和需要注意的問題。
根據(jù)CMM2六個關鍵過程域(KPA)的解釋和軟件項目管理的過程,這里我們可以初步提出一個基于CMM2的軟件實訓項目管理模型。該模型如圖1所示:
圖1中軟件實訓項目管理模型的劃分結合了軟件項目的生命周期,主要分為:項目啟動、項目計劃、項目實施與控制、項目技術。各個階段分別包含CMM2的關鍵過程域,其中軟件質量保證和軟件配置管理2個KPA貫穿于整個項目開發(fā)過程始終。圖中只提到了CMM2的5個KPA,還有一個軟件子合同管理KPA,考慮到根據(jù)軟件實訓項目的規(guī)模和實際情況,一般不會出現(xiàn)把項目轉包出現(xiàn)的情況,在此進行了裁減。
(2)組織管理結構改進。對CMM2的模型改進后,接下來就要對CMM2所要求的組織管理結構進行適當?shù)牟脺p。因為CMM中任務分工細,涉及到的角色關系多,這對于軟件實訓項目組這樣的小型軟件開發(fā)組織來說是難以實現(xiàn)的。經(jīng)過裁減后,組織管理結構中各個角色的工作職責描述如下:1)高級經(jīng)理:一名,負責所開展的所有軟件實訓項目。2)項目經(jīng)理:一個項目一名,負責整個項目的實施。3)軟件工程師:根據(jù)軟件項目的規(guī)模確定人數(shù),負責軟件的設計與開發(fā)。4)軟件配置管理員:可安排由項目組中任意成員擔任,可以是項目經(jīng)理,可以是軟件工程師,也可以由其他人員兼任,負責軟件產(chǎn)品的配置整合工作。5)軟件質量保證員:如果人員條件允許,此人員最好單獨設立,如若條件所限,可由項目經(jīng)理或軟件測試人員兼任,負責項目在各個階段的評審。6)軟件測試員:可由軟件工程師同時擔任,在開展測試工作時,必須交叉測試。
3 實施方案
3.1 項目啟動
項目啟動是軟件項目管理的初始階段,它對項目有序、正常的開展起著非常關鍵的作用。項目啟動包括有項目可行性分析,需求調研、編寫需求文檔和可行性分析報告。該階段主要包含CMM2的軟件項目計劃KPA。
在此階段需要重點處理的工作有:(1)可行性分析??尚行苑治鍪菫榱朔治鲈谝欢〞r間范圍內(nèi)軟件項目是否能夠按要求完成以及完成的價值如何。一般從技術可行性、經(jīng)濟可行性、社會可行性三個大方面來考慮,從而形成軟件項目可行性分析報告。技術可行性即項目開發(fā)的技術儲備,開發(fā)的風險等方面是否支持項目的開發(fā);經(jīng)濟可行性即確定該項目在經(jīng)濟上是否值得開發(fā);社會可行性即判斷待開發(fā)的項目是否有侵犯、妨礙等責任問題。(2)需求分析。需求分析是經(jīng)過需求分析后的產(chǎn)出物。需求分析的任務就是確定系統(tǒng)具備哪些功能,即回答待開發(fā)項目做什么的問題。需求分析的過程是和客戶打交道最多也是最重要的環(huán)節(jié),它直接決定了后續(xù)項目開發(fā)的成功與否,必須通過多次的需求調研、分析才能形成需求規(guī)格說明書。
3.2 項目計劃
項目計劃的提出是為了給軟件項目實施的各個階段提供一個合理的、可行的、可參考的工作計劃,使項目參與人員能夠有條不紊的按照計劃開展工作。該階段主要包含CMM2的需求管理KPA和軟件項目計劃KPA。
在此階段需要重點處理的工作有軟件項目計劃:軟件項目計劃必須按照需求調研的結果來制定,要根據(jù)不同的項目要求明確軟件項目開發(fā)模型,可以利用的項目資源,項目經(jīng)理還要根據(jù)項目需求文檔從軟件規(guī)模、人力、成本、進度等方面進行項目估算和風險評估,根據(jù)項目組成員的技術特點和能力進行工作分解和職責分配,從而形成軟件項目計劃書。項目計劃書一旦制定,項目實施的過程就要嚴格的以它為基準跟蹤和控制。
3.3 項目實施與控制
雖然軟件項目已經(jīng)有了明確的需求分析和好的項目計劃,但由于計劃本身具有假設性和預測性,盡管也充分考慮了可能的風險因素,但是計劃畢竟只能是對現(xiàn)實所作的預測和粗略的描述。因此在實施計劃時,偏差不可避免。當軟件項目的執(zhí)行與項目計劃出現(xiàn)明顯偏差時,項目管理人員必須采取有效的措施。該階段包含CMM2軟件項目跟蹤和監(jiān)控KPA和需求管理KPA。
在此階段需要重點處理的工作有:(1)需求變更控制:由于需求不能在項目啟動時就能完整的定義好,并且隨著項目的實施,遇到客戶臨時更改需求的情況也是不可避免的,項目經(jīng)理要組織項目組討論變更帶來的影響,從而決定是否進行需求文檔和項目計劃的修改。(2)版本控制:由于軟件項目通常是團隊合作方式進行,所以不管是需求的變更,還是實施過程中其他文件的更新,都必須及時通知到每一個項目組成員。(3)需求狀態(tài):需求狀態(tài)是標識需求的一個重要屬性。每當處理一個需求功能點時,都必須及時的把對該需求的處理方式記錄下來,通常的需求狀態(tài)有:已批準、已拒絕、已刪除等等。(4)項目跟蹤和監(jiān)控:項目組必須指定專人在規(guī)定的時間記錄項目中特定的跟蹤項的進展狀態(tài),以提供計劃與實際偏差的第一手數(shù)據(jù),從而采取必要的措施及時處理偏差。
3.4 項目結束
項目結束階段主要是針對項目本身進行的項目評審驗收、歸檔總結等工作。此階段包含CMM2軟件質量保證和軟件配置管理KPA。
在此階段需要重點處理的工作有:(1)用戶驗收和項目評審。項目評審應該貫穿于整個項目實施的始終,可以根據(jù)項目規(guī)模的大小來決定評審的形式,是走查還是正是評審,可以邀請同行和客戶來對軟件項目進行審查。在項目結束階段的評審主要是對項目整體功能是否符合需求,項目過程是否符合項目計劃等方面來展開。(2)歸檔總結。項目結束后,要把項目涉及到的項目資料包括軟件的需求文檔、開發(fā)設計文檔、產(chǎn)品文檔、管理文檔等資料匯總收集到相關資料庫中,同時還要認真的總結項目實施過程,供今后維護和開發(fā)參考使用。
參考文獻:
[1]韓萬江,姜立新.軟件項目管理案例教程[M].機械工業(yè)出版社,2006.
[2]Mark C.Paulk,Charles V.Weber,Suzanne M.Garcia,Mary Beth Chrissis,Marilyn Bush.Key Practices of the Capability Maturity ModelSM,Version 1.1.1993.
[3]鄧子云.論CMM2的過程改進[J].安徽電子信息職業(yè)技術學院學報,2004,3(5).
[4]王斌.基于CMM的軟件過程改進模型的研究與實現(xiàn)[D].南京航空航天大學,2006.
[5]黃濤.中小型軟件企業(yè)軟件項目開發(fā)過程改進研究基于CMM的視角[D].浙江工業(yè)大學,2010.
作者單位:南京城市職業(yè)學院,南京 210002