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