軟件配置管理 - 科技術(shù)語(yǔ)
軟件配置管理是一種標(biāo)識(shí)、組織和控制修改的技術(shù)。軟件配置管理應(yīng)用于整個(gè)軟件工程過程。在軟件建立時(shí)變更是不可避免的,而變更加劇了項(xiàng)目中軟件開發(fā)者之間的混亂。SCM活動(dòng)的目標(biāo)就是為了標(biāo)識(shí)變更、控制變更、確保變更正確實(shí)現(xiàn)并向其他有關(guān)人員報(bào)告變更。
簡(jiǎn)介
軟件配置管理,又稱軟件形態(tài)管理、或軟件建構(gòu)管理,簡(jiǎn)稱軟件形管(SCM)。界定軟件的組成項(xiàng)目,對(duì)每個(gè)項(xiàng)目的變更進(jìn)行管控(版本控制),并維護(hù)不同項(xiàng)目之間的版本關(guān)聯(lián),以使軟件在開發(fā)過程中任一時(shí)間的內(nèi)容都可以被追溯,包括某幾個(gè)具有重要意義的數(shù)個(gè)組合。
軟件配置管理,貫穿于整個(gè)軟件生命周期,它為軟件研發(fā)提供了一套管理辦法和活動(dòng)原則。軟件配置管理無論是對(duì)于軟件企業(yè)管理人員還是研發(fā)人員都有著重要的意義。軟件配置管理可以提煉為三個(gè)方面的內(nèi)容:
VersionControl-版本控制;
ChangeControl-變更控制;
ProcessSupport-過程支持。
關(guān)鍵活動(dòng)包括:配置項(xiàng)、工作空間管理、版本控制、變更控制、狀態(tài)報(bào)告、配置審計(jì)等。
發(fā)展歷史
配置管理的概念源于美國(guó)空軍,為了規(guī)范設(shè)備的設(shè)計(jì)與制造,美國(guó)空軍1962年制定并發(fā)布了第一個(gè)配置管理的標(biāo)準(zhǔn)“AFSCM375-1,CMDuringtheDevelopment&AcquisitionPhases”。
而軟件配置管理概念的提出則在20世紀(jì)60年代末70年代初。當(dāng)時(shí)加利福尼亞大學(xué)圣巴巴拉分校的LeonPresser教授在承擔(dān)美國(guó)海軍的航空發(fā)動(dòng)機(jī)研制合同期間,撰寫了一篇名為“ChangeandConfigurationControl”的論文,提出控制變更和配置的概念,這篇論文同時(shí)也是他在管理該項(xiàng)目(這個(gè)過程進(jìn)行過近一千四百萬(wàn)次修改)的一個(gè)經(jīng)驗(yàn)總結(jié)。
LeonPresser在1975年成立了一家名為SoftTool的公司,開發(fā)了配置管理工具:ChangeandConfigurationControl(CCC),這是最早的配置管理工具之一。
隨著軟件工程的發(fā)展,軟件配置管理越來越成熟,從最初的僅僅實(shí)現(xiàn)版本控制,發(fā)展到21世紀(jì)初提供工作空間管理、并行開發(fā)支持、過程管理、權(quán)限控制、變更管理等一系列全面的管理能力,已經(jīng)形成了一個(gè)完整的理論體系。同時(shí)在軟件配置管理的工具方面,也出現(xiàn)了大批的產(chǎn)品。
在國(guó)外已經(jīng)有30多年歷史的軟件配置管理,但在國(guó)內(nèi)的發(fā)展卻是在21世紀(jì)這幾年的事。但是通過專家們的介紹,可以感受到,國(guó)內(nèi)的軟件配置管理已經(jīng)取得了迅速發(fā)展,并得到了軟件公司的普遍認(rèn)可。
過程描述
一個(gè)軟件研發(fā)項(xiàng)目一般可以劃分為三個(gè)階段:計(jì)劃階段、開發(fā)階段和維護(hù)階段。然而從軟件配置管理的角度來看,后兩個(gè)階段所涉及的活動(dòng)是一致,所以就把它們合二為一,成為“項(xiàng)目開發(fā)和維護(hù)”階段。
計(jì)劃階段
一個(gè)項(xiàng)目設(shè)立之初PM首先需要制定整個(gè)項(xiàng)?研發(fā)計(jì)劃之后,軟件配置管理的活動(dòng)就可以展開了,因?yàn)槿绻辉陧?xiàng)目開始之初制定軟件配置管理計(jì)劃,那么軟件配置管理的許多關(guān)鍵活動(dòng)就無法及時(shí)有效的進(jìn)行,而它的直接后果就是造成了項(xiàng)目開發(fā)狀況的混亂并注定軟件配置管理活動(dòng)成為一種“救火”的行為。所以及時(shí)制定一份軟件配置管理計(jì)劃在一定程度上是項(xiàng)目成功的重要保證。
在軟件配置管理計(jì)劃的制定過程中,它的主要流程應(yīng)該是這樣的:
CCB根據(jù)項(xiàng)目的開發(fā)計(jì)劃確定各個(gè)里程碑和開發(fā)策略;
CMO根據(jù)CCB的規(guī)劃,制定詳細(xì)的配置管理計(jì)劃,交CCB審核;
CCB通過配置管理計(jì)劃后交項(xiàng)目經(jīng)理批準(zhǔn),發(fā)布實(shí)施。
開發(fā)維護(hù)階段
這一階段是項(xiàng)目研發(fā)的主要階段。在這一階段中,軟件配置管理活動(dòng)主要分為三個(gè)層面:
1、主要由CMO完成的管理和維護(hù)工作;
2、由SIO和DEV具體執(zhí)行軟件配置管理策略;
3、變更流程。這三個(gè)層面是彼此之間既獨(dú)立又互相聯(lián)系的有機(jī)的整體。
在這個(gè)軟件配置管理過程中,它的核心流程應(yīng)該是這樣的:
1、CCB設(shè)定研發(fā)活動(dòng)的初始基線;
2、CMO根據(jù)軟件配置管理規(guī)劃設(shè)立配置庫(kù)和工作空間,為執(zhí)行軟件配置管理計(jì)劃做好準(zhǔn)備;
3、開發(fā)人員按照統(tǒng)一的軟件配置管理策略,根據(jù)獲得的授權(quán)的資源進(jìn)行項(xiàng)目的研發(fā)工作;
4、SIO按照項(xiàng)目的進(jìn)度集成組內(nèi)開發(fā)人員的工作成果,并構(gòu)建系統(tǒng),推進(jìn)版本的演進(jìn);
5、CCB根據(jù)項(xiàng)目的進(jìn)展情況,審核各種變更請(qǐng)求,并適時(shí)的劃定新的基線,保證開發(fā)和維護(hù)工作有序的進(jìn)行。
這個(gè)流程就是如此循環(huán)往復(fù),直到項(xiàng)目的結(jié)束。當(dāng)然,在上述的核心過程之外,還涉及其他一些相關(guān)的活動(dòng)和操作流程,下面按不同的角色分工予以列出:
各開發(fā)人員按照項(xiàng)目經(jīng)理發(fā)布的開發(fā)策略或模型進(jìn)行工作;
SIO負(fù)責(zé)將各分項(xiàng)目的工作成果歸并至集成分支,供測(cè)試或發(fā)布;
SIO可向CCB提出設(shè)立基線的要求,經(jīng)批準(zhǔn)后由CMO執(zhí)行;
CMO定期向項(xiàng)目經(jīng)理和CCB提交審計(jì)報(bào)告,并在CCB例會(huì)中報(bào)告項(xiàng)目在軟件過程中可能存在的問題和改進(jìn)方案;
在基線生效后,一切對(duì)基線和基線之前的開發(fā)成果的變更必須經(jīng)CCB的批準(zhǔn);
CCB定期舉行例會(huì),根據(jù)成員所掌握的情況、CMO的報(bào)告和開發(fā)人員的請(qǐng)求,對(duì)配置管理計(jì)劃作出修改,并向項(xiàng)目經(jīng)理負(fù)責(zé)。
目標(biāo)
SCM的目標(biāo)一般包括以下幾項(xiàng):
配置識(shí)別:識(shí)別配置、配置項(xiàng)目和基準(zhǔn)。
配置控管:導(dǎo)入變更控管流程。該流程通常由變更控制委員會(huì)來運(yùn)行,其主要的職責(zé)是核準(zhǔn)或拒絕有悖任何基準(zhǔn)的所有變更請(qǐng)求。
配置狀態(tài)報(bào)告:記錄和呈報(bào)與開發(fā)過程狀態(tài)相關(guān)的所有必要信息。
配置審核:確保這些配置包含所有預(yù)期內(nèi)容,且備有完整的規(guī)定文件(包括要求、結(jié)構(gòu)規(guī)范和用戶手冊(cè))。
建構(gòu)管理:管理用于建構(gòu)的流程和工具。
流程管理:確保遵循企業(yè)組織的開發(fā)流程。
環(huán)境管理:管理承載系統(tǒng)的軟硬件。
團(tuán)隊(duì)合作:促進(jìn)流程中團(tuán)隊(duì)彼此間的交互。
缺陷追蹤:確??伤菁懊總€(gè)缺陷的源頭。
隨著云計(jì)算的引進(jìn),SCM工具的用途有時(shí)已互相集成。SCM工具本身轉(zhuǎn)變?yōu)樘摂M設(shè)施,可以在虛擬機(jī)上運(yùn)行并保存狀態(tài)和版本。這些工具能管理并為云端虛擬資源(包括虛擬設(shè)備、存儲(chǔ)設(shè)備和軟件包)創(chuàng)建模型。如今,因?yàn)楝F(xiàn)在已經(jīng)可以動(dòng)態(tài)的激活虛擬服務(wù)器和相關(guān)資源,SCM管理人員的角色和職責(zé)已經(jīng)與開發(fā)人員合并。
管理方針
為了達(dá)到上述目標(biāo),如下的方針應(yīng)該得到貫徹執(zhí)行:
技術(shù)部門經(jīng)理和具體項(xiàng)目主管應(yīng)該使用和遵循XSSC的OSSP中所描述的軟件配置管理的工作過程。施行軟件配置管理的職責(zé)應(yīng)被明確分配。相關(guān)人員得到軟件配置管理方面的培訓(xùn)。技術(shù)部門經(jīng)理和具體項(xiàng)目主管應(yīng)該明確他們?cè)谙嚓P(guān)項(xiàng)目中所擔(dān)負(fù)的軟件配置管理方面的責(zé)任。
軟件配置管理工作應(yīng)該享有足夠的資金支持,這需要在客戶,技術(shù)部門經(jīng)理和具體項(xiàng)目主管之間協(xié)商。軟件配置管理應(yīng)該實(shí)施于如下產(chǎn)品:對(duì)外交付的軟件產(chǎn)品,以及那些被選定的在項(xiàng)目中使用的支持類工具等。軟件配置的整體性在整個(gè)項(xiàng)目生命周期中得到控制。軟件質(zhì)量保證人員應(yīng)該定期審核各類軟件基準(zhǔn)以及軟件配置管理工作。使軟件基準(zhǔn)的狀態(tài)和內(nèi)容能夠及時(shí)通知給相關(guān)組別和個(gè)人。
