2008-06-03 10:32 【大 中 小】【打印】【我要糾錯】
目前,由美國軟件工程學(xué)會(SEI)開發(fā)的軟件能力成熟度模型(CMM,Capability Maturity Model),已經(jīng)在軟件過程及質(zhì)量改進(jìn)方面被廣泛接受,但如何在商業(yè)驅(qū)動的軟件過程改進(jìn)中有效地使用這一模型,特別是針對小型組織和小型工程項(xiàng)目,仍存在著許多誤解。本文就這個問題進(jìn)行嘗試性的探討,并對CMM二級的軟件配置管理關(guān)鍵過程域的執(zhí)行予以描述。
一、小組織/小項(xiàng)目與CMM
小組織/小項(xiàng)目必須引入標(biāo)準(zhǔn)的軟件能力成熟度模型,否則就不可能成為真正的軟件開發(fā)企業(yè)。在全面接受CMM理念的同時,最為急需導(dǎo)入的是軟件配置管理關(guān)鍵過程域,要不失時機(jī)地上線使用軟件配置管理工具,以便支撐項(xiàng)目實(shí)施。項(xiàng)目承制方不僅能在開發(fā)過程中受益,最為實(shí)際的是通過軟件基線的界定,能形成階段性產(chǎn)品。這些產(chǎn)品是項(xiàng)目開發(fā)團(tuán)隊(duì)理應(yīng)關(guān)注的對象,也是市場部經(jīng)理與客戶方博弈的砝碼。小組織/小項(xiàng)目在執(zhí)行軟件配置管理關(guān)鍵過程域中,應(yīng)該完全按照規(guī)范操作,不能做任何裁剪,在組織結(jié)構(gòu)與角色劃分上盡量實(shí)現(xiàn)4個目標(biāo)、25個關(guān)鍵實(shí)踐及其描述的各種活動。
1.小項(xiàng)目/小組織
CMM能否被用于小項(xiàng)目/小組織的問題中,關(guān)于“小”的定義一直是模糊難解的。
其中,小項(xiàng)目到微小項(xiàng)目是在小組軟件過程(TSP,Team Software Process)的范圍中,而個人的開發(fā)努力則在個體軟件過程(PSP,Personal Software Process)的范圍中。TSP和PSP闡明了CMM的概念是如何應(yīng)用到小項(xiàng)目中的。
2.PSP和TSP
個體軟件過程是一種可用于控制、管理和改進(jìn)個人工作方式的自我改善過程,是一個包括軟件開發(fā)表格、指南和規(guī)程的結(jié)構(gòu)化框架。PSP為基于個體和小型群組軟件過程的優(yōu)化提供了具體而有效的途徑,譬如,如何制定計(jì)劃,如何控制質(zhì)量,如何與其他人相互協(xié)作等等。在軟件設(shè)計(jì)階段,PSP的著眼點(diǎn)在于軟件缺陷的預(yù)防,其具體辦法是強(qiáng)化設(shè)計(jì)結(jié)束的準(zhǔn)則,而不是設(shè)計(jì)方法的選擇。
個體軟件過程與具體的技術(shù)(程序設(shè)計(jì)語言、工具或者設(shè)計(jì)方法)相對獨(dú)立,其原則能夠應(yīng)用到幾乎任何軟件工程任務(wù)之中。個體軟件過程應(yīng)達(dá)到:
、僬f明個體軟件過程的原則;
、趲椭浖こ處熥龀鰷(zhǔn)確的計(jì)劃;
、鄞_定軟件工程師為改善產(chǎn)品質(zhì)量要采取的步驟;
、芙⒍攘總體軟件過程改善的基準(zhǔn);
、荽_定過程的改變對軟件工程師能力的影響。
小組軟件過程致力于開發(fā)高質(zhì)量的產(chǎn)品,建立、管理和授權(quán)項(xiàng)目小組,并指導(dǎo)他們在滿足計(jì)劃費(fèi)用的前提下,在承諾的期限范圍內(nèi),不斷生產(chǎn)并交付高質(zhì)量的產(chǎn)品。
小組軟件過程實(shí)施集體管理與自己管理相結(jié)合的原則,最終目的在于指導(dǎo)開發(fā)人員如何在最少的時間內(nèi),以預(yù)定的費(fèi)用生產(chǎn)出高質(zhì)量的軟件產(chǎn)品,所采用的方法是對群組開發(fā)過程的定義、度量和改進(jìn)。
實(shí)現(xiàn)小組軟件過程的方法需要具備四個條件:
、傩枰邔又鞴芎透骷壗(jīng)理的支持,以取得必要的資源;
②整個軟件開發(fā)小組至少應(yīng)在CMM的第二級(可重復(fù)層);
③全體軟件開發(fā)人員必須經(jīng)過個體軟件過程培訓(xùn),并有按小組軟件過程工作的愿望和熱情;
、荛_發(fā)小組成員應(yīng)在2到20個人之間。
在實(shí)施小組軟件過程中,如果發(fā)現(xiàn)未能按期按質(zhì)完成,應(yīng)立即分析原因,以判定問題是由于工作內(nèi)容不合適或工作計(jì)劃不實(shí)際引起,還是由于資源不足或主觀努力不夠所引起的。開發(fā)小組應(yīng)隨時追蹤項(xiàng)目進(jìn)展?fàn)顩r并定期匯報(bào),還應(yīng)經(jīng)常審視自己是否按軟件開發(fā)過程的原理工作。如發(fā)現(xiàn)過程不合適,應(yīng)及時改進(jìn)。
3.CMM、PSP和TSP組成的軟件過程框架
CMM、PSP和TSP組成的軟件過程框架。
CMM是過程改善的第一步,它提供評價組織的能力、識別優(yōu)先改善需求和追蹤改善進(jìn)展的管理方式。PSP能夠指導(dǎo)軟件工程師如何保證自己的工作質(zhì)量,估計(jì)和規(guī)劃自身的工作,度量和追蹤個人的表現(xiàn),管理自身的軟件過程和產(chǎn)品質(zhì)量。TSP結(jié)合了CMM的管理方法和PSP的工程技能,通過告訴軟件工程師如何將個體過程結(jié)合進(jìn)小組軟件過程,并將后者與整個管理系統(tǒng)相聯(lián)系;通過告訴管理層如何支持和授權(quán)項(xiàng)目小組,堅(jiān)持高質(zhì)量的工作,并且依據(jù)數(shù)據(jù)進(jìn)行項(xiàng)目管理,向組織展示如何應(yīng)用CMM原則和PSP去生產(chǎn)高質(zhì)量的產(chǎn)品。
4.PSP和TSP對CMM的支持
二、軟件配置管理
軟件配置管理(SCM,Soft Configure Management)的目的是在整個項(xiàng)目的軟件生存周期內(nèi),建立和維護(hù)軟件項(xiàng)目產(chǎn)品的完整性。
軟件配置管理包括在給定時間點(diǎn)上及時地標(biāo)識軟件的配置,系統(tǒng)地控制對配置的更改,并在整個軟件生存周期中維護(hù)配置的完整性和可跟蹤性。置于軟件配置管理之下的工作產(chǎn)品包括交付給客戶的軟件產(chǎn)品(如軟件需求文檔和代碼),以及與這些軟件產(chǎn)品一同標(biāo)識的或?yàn)楫a(chǎn)生這些軟件產(chǎn)品所要求的產(chǎn)品項(xiàng)(如編譯程序)。
通過軟件配置管理的更改控制和配置審核職能,項(xiàng)目能系統(tǒng)地控制對基線的更改和由軟件基線庫構(gòu)造的軟件產(chǎn)品的發(fā)布。
關(guān)鍵過程域包括實(shí)施軟件配置管理職能的有關(guān)實(shí)踐。標(biāo)識特定配置項(xiàng)/單元的實(shí)踐則包含在描述各配置項(xiàng)/單元開發(fā)和維護(hù)的關(guān)鍵過程域中。
1.SCM的關(guān)鍵活動
CMM中的軟件配置管理包括了多項(xiàng)相關(guān)活動,包括版本控制、建立軟件配置庫系統(tǒng)、配置項(xiàng)變化的控制、軟件基線記錄報(bào)告等等。如果將SCM作為一個配置管理模型,應(yīng)當(dāng)強(qiáng)調(diào)以下幾點(diǎn):
。1)任務(wù)清晰,責(zé)任明確
為了確保軟件開發(fā)過程中開發(fā)人員之間各種信息交流的順暢和準(zhǔn)確,首要問題是確立一個實(shí)施架構(gòu)。通常是以“組”的概念細(xì)分一項(xiàng)工程中各類任務(wù)的執(zhí)行單位,明確各組在開發(fā)和管理過程中各自的職責(zé)、需要完成的工作,管理層面可由此清晰地了解產(chǎn)品的完成情況?傮w設(shè)計(jì)者利用任務(wù)的展開方式進(jìn)行任務(wù)分配,用網(wǎng)絡(luò)圖的方式控制各組之間的關(guān)系,包括時間進(jìn)度計(jì)劃和各組之間的接口等等。
軟件開發(fā)過程中的任務(wù)管理是配置管理的基礎(chǔ),如果任務(wù)定義不明確,配置管理的實(shí)施也將難以保證。通過對任務(wù)的詳細(xì)定義,把每一個子任務(wù)具體分配給某一個人去完成,這樣就將對集體管理的任務(wù)細(xì)化到對個人的管理層面上了。
。2)建立軟件配置管理庫系統(tǒng)
建立軟件配置管理庫系統(tǒng)的主要目的是用來存放軟件基線。它可以對軟件配置管理進(jìn)行多級控制,譬如在產(chǎn)品開發(fā)周期中,不同階段有著不同力度的配置管理,隨著產(chǎn)品不斷成熟,控制力度也隨之增強(qiáng);提供對庫中配置項(xiàng)的存儲和修改的功能,支持在相關(guān)組之間和庫中不同控制級間共享和傳輸配置項(xiàng);支持生成軟件配置管理的報(bào)告文檔及軟件基線內(nèi)容的報(bào)告文檔;有助于確保從軟件基線庫中發(fā)布的相關(guān)文檔和軟件產(chǎn)品的正確性。
。3)版本管理
版本控制是軟件配置管理的基本要求,它可以保證在任何時刻恢復(fù)任何一個中間產(chǎn)品的任意版本。版本管理記錄了所有庫中代碼和文檔的開發(fā)歷程,可以保證產(chǎn)品的可追溯性,為調(diào)試代碼、清除缺陷提供很大的幫助。同時,版本管理支持并行開發(fā)和維護(hù),為協(xié)同開發(fā)打下了基礎(chǔ)。
。4)變化控制
在有配置管理概念的軟件產(chǎn)品開發(fā)過程中,所有的改變都是在有效控制下的,包括軟件基線的改變、配置項(xiàng)的改變。改變管理的一個基本項(xiàng)就是改變請求(CR,Change Request),在一個軟件系統(tǒng)中描述邏輯上改變的實(shí)體。改變請求是由開發(fā)計(jì)劃變化和錯誤報(bào)告生成的。在開發(fā)過程中,CR主要收集有關(guān)系統(tǒng)改變的信息。開發(fā)人員將一個新建或修改過的文件寫入庫中時,要指出相關(guān)的CR,文件名稱和版本需在CR中登記。CR的最終版本包括邏輯改變的描述和所有修改的文件版本信息。由SCM組和SCCM(軟件配置控制委員會)審核要寫入配置管理庫中的新的軟件基線。
2.軟件配置管理工具
軟件配置管理工具(SCMT,Soft Configure Management Tool)正是從這一角度出發(fā),對軟件配置管理過程進(jìn)行具體實(shí)施,將抽象的軟件配置管理工作轉(zhuǎn)化為可借鑒的、可操作的具體執(zhí)行規(guī)范。SCMT作為軟件配置管理的輔助手段,必須要制定一個實(shí)際、可行的軟件配置管理流程,依據(jù)該流程,加之SCMT的輔助,軟件配置管理工作才能真正做到科學(xué)、有序。
3.軟件配置管理流程
SCMT將軟件配置管理工作分解為項(xiàng)目建立、配置策劃?項(xiàng)目策劃、計(jì)算機(jī)軟件配置項(xiàng)(CSCI)策劃?、CSCI入庫(初始入庫、更動入庫)、軟件問題報(bào)告、軟件更動報(bào)告、更動出庫、瀏覽出庫、項(xiàng)目歸檔、項(xiàng)目導(dǎo)入、產(chǎn)品定義、產(chǎn)品出庫、配置審計(jì)、配置追蹤、狀態(tài)報(bào)告等。
首先由系統(tǒng)管理員建立項(xiàng)目,將項(xiàng)目基本信息入庫和創(chuàng)建軟件配置控制委員會(SCCB)用戶、項(xiàng)目管理員;其次由項(xiàng)目管理員對已建立的項(xiàng)目進(jìn)行項(xiàng)目策劃,劃分CSCI,一個項(xiàng)目可以包含一個或多個CSCI,包括將CSCI 基本信息入庫和創(chuàng)建CSCI管理員、配置管理組成員,項(xiàng)目策劃需要由軟件配置控制委員會審批。
其次,由CSCI管理員進(jìn)行CSCI策劃,包括劃分基線、為每條基線標(biāo)識軟件配置管理項(xiàng)(CMI)、確定CMI之間的依賴關(guān)系、創(chuàng)建一般用戶,CSCI策劃由配置管理組審批;配置策劃完成后,即可進(jìn)行初始入庫(指CMI的初次入庫,由權(quán)限用戶操作,由配置管理組審批)。有了已入庫的CMI后就可以進(jìn)行后續(xù)操作。
SCMT中規(guī)定如下配置更動規(guī)程:配置更動針對的是受控庫中登錄的軟件問題,配置更動實(shí)施前必須填寫軟件更動報(bào)告,經(jīng)更動評審組評審?fù)ㄟ^,且確認(rèn)評審結(jié)論為“按計(jì)劃實(shí)施”時,才能從受控庫中提出需更動的 CMI并實(shí)施更動。更動實(shí)施完成后,必須通過評審才能重新進(jìn)入受控庫。
更動過程在 SCMT 內(nèi)分解為提交軟件問題報(bào)告,提交軟件更動報(bào)告,更動出庫和更動入庫。軟件問題報(bào)告由發(fā)現(xiàn)問題的人員填寫,不需要審批;軟件更動報(bào)告由CSCI管理員填寫,交更動評審組審核。在項(xiàng)目建立時或在接到軟件更動報(bào)告后,建立更動評審組。根據(jù)所開發(fā)軟件的關(guān)鍵級別和規(guī)模大小決定更動評審組規(guī)模的大小,構(gòu)成人員應(yīng)包括軟件項(xiàng)目的管理人員、技術(shù)負(fù)責(zé)人員、總體設(shè)計(jì)人員、軟件質(zhì)量保證人員和軟件配置管理人員,組成人數(shù)可視實(shí)際情況酌定。更動評審組收到軟件更動報(bào)告后,分析此更動的必要性和技術(shù)可行性,并權(quán)衡其他的更動策略和方法,所涉及的有關(guān)CMI,對系統(tǒng)的功能和性能的影響,更動所需的資源是否合理、充分以及對整個工程進(jìn)展和經(jīng)費(fèi)的影響等。由此決策是否實(shí)施此項(xiàng)更動,并給出更動評審結(jié)論,同時由 SCCB簽署該軟件更動報(bào)告。
SCMT審查簽署后的軟件更動報(bào)告中的更動結(jié)論,清除問題時,形成“問題報(bào)告”-“更動報(bào)告”鏈并發(fā)布問題解決通告;暫緩執(zhí)行時,不需做任何處理;按計(jì)劃實(shí)施時,允許CMI更動出庫。更動出庫由權(quán)限用戶依據(jù)簽署的軟件更動報(bào)告進(jìn)行;更動入庫由權(quán)限用戶操作,由CMG審批。
瀏覽出庫指出于測試或閱讀的需要對CMI進(jìn)行出庫,瀏覽出庫不需要審批。
產(chǎn)品定義、產(chǎn)品出庫、項(xiàng)目歸檔和項(xiàng)目導(dǎo)入由項(xiàng)目管理員操作,由SCCB審批。要求出庫的產(chǎn)品必須曾經(jīng)定義過,要求導(dǎo)入的項(xiàng)目必須為歸檔項(xiàng)目。
配置審計(jì)、配置追蹤、狀態(tài)報(bào)告由SCCB、CMG、CSCI管理員操作。
SCMT提供配置審計(jì)向?qū),引?dǎo)用戶完成配置審計(jì)處理過程。
在導(dǎo)入SCMT時應(yīng)該本著軟件配置管理關(guān)鍵域的核心思想,從現(xiàn)有市場中選擇適合自己的配置工具。需要強(qiáng)調(diào)的是,無論什么樣的工具都無法完全實(shí)現(xiàn)軟件配置管理的目標(biāo)與關(guān)鍵實(shí)踐,在此也不排除自我開發(fā)的SCMT.問題的關(guān)鍵在于對人的培訓(xùn),在使用工具的同時深化CMM管理理念,使整個軟件項(xiàng)目團(tuán)隊(duì)在開發(fā)過程中確保質(zhì)量達(dá)標(biāo)。因此,手工操作仍然是今后一段時間內(nèi)軟件配置管理實(shí)施中必不可少的基礎(chǔ)手段。
1、凡本網(wǎng)注明“來源:建設(shè)工程教育網(wǎng)”的所有作品,版權(quán)均屬建設(shè)工程教育網(wǎng)所有,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、鏈接、轉(zhuǎn)貼或以其他方式使用;已經(jīng)本網(wǎng)授權(quán)的,應(yīng)在授權(quán)范圍內(nèi)使用,且必須注明“來源:建設(shè)工程教育網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其法律責(zé)任。
2、本網(wǎng)部分資料為網(wǎng)上搜集轉(zhuǎn)載,均盡力標(biāo)明作者和出處。對于本網(wǎng)刊載作品涉及版權(quán)等問題的,請作者與本網(wǎng)站聯(lián)系,本網(wǎng)站核實(shí)確認(rèn)后會盡快予以處理。
本網(wǎng)轉(zhuǎn)載之作品,并不意味著認(rèn)同該作品的觀點(diǎn)或真實(shí)性。如其他媒體、網(wǎng)站或個人轉(zhuǎn)載使用,請與著作權(quán)人聯(lián)系,并自負(fù)法律責(zé)任。
3、本網(wǎng)站歡迎積極投稿。