應(yīng)用軟件項(xiàng)目的配置管理實(shí)例
軟件配置管理作為貫穿軟件開(kāi)發(fā)過(guò)程始終的一項(xiàng)工作,其重要性不言而喻。51cmm上已有眾多關(guān)于配置管理介紹、配置管理計(jì)劃、配置管理工作開(kāi)展心得一類(lèi)的文章,這些文章從概念和實(shí)施上介紹了配置管理工作的內(nèi)容,但美中不足的是仍嫌抽象,那些想要依葫蘆畫(huà)瓢的兄弟姐妹們?cè)谠噲D將這些理論應(yīng)用到自己項(xiàng)目的配置管理中的時(shí)候,會(huì)發(fā)現(xiàn)仍然是無(wú)從下手(我也曾是這些感覺(jué)無(wú)從下手的人中的一個(gè))。因此,本文擬從另外一個(gè)角度,以本人最近實(shí)際操作的一個(gè)項(xiàng)目的配置管理工作談起,從配置管理工具的選擇、配置管理流程制定、配置管理庫(kù)結(jié)構(gòu)的確定,以及作為配置管理工作的推動(dòng)者如何推動(dòng)這項(xiàng)工作等方面仔細(xì)描述一下本人的做法,希望這幾篇文章能給那些水深火熱中的兄弟姐妹們一點(diǎn)幫助。
這里有兩點(diǎn)需要特別說(shuō)明:
1.本文描述的內(nèi)容是以一個(gè)項(xiàng)目的配置管理為主線,對(duì)組織級(jí)的配置管理和配置管理策略沒(méi)有進(jìn)行詳細(xì)討論;
2.本文用來(lái)做示例的項(xiàng)目是一個(gè)“工程型”的項(xiàng)目,所謂的“工程型”是和“產(chǎn)品型”對(duì)應(yīng)的,這樣的項(xiàng)目需要公司的開(kāi)發(fā)人員和現(xiàn)場(chǎng)的開(kāi)發(fā)人員進(jìn)行協(xié)作開(kāi)發(fā),一般而言,在公司的開(kāi)發(fā)人員完成大部分的功能,現(xiàn)場(chǎng)的開(kāi)發(fā)人員根據(jù)用戶需求,對(duì)軟件進(jìn)行修改(這部分的工作量一般會(huì)較大,在一個(gè)16人年的項(xiàng)目中,這部分的工作可能會(huì)占到三分之一以上的工作量)。
配置管理工作概述
配置管理工作的工作范圍,在51cmm的很多文章中都有描述,具體可以參考河清專(zhuān)欄的《基于CMM和CMMI的配置管理》和陳越的《軟件配置管理實(shí)施體會(huì)》。在這里不作詳細(xì)的描述。
本文涉及的項(xiàng)目背景
本文用來(lái)示例的項(xiàng)目是某省電信的一個(gè)項(xiàng)目,該項(xiàng)目的工作量大約是16人年,項(xiàng)目周期約為1年。大部分(90%以上)的開(kāi)發(fā)工作在前8個(gè)月內(nèi)完成,后期的工作主要由維護(hù)人員進(jìn)行系統(tǒng)維護(hù)和調(diào)整。在8個(gè)月的開(kāi)發(fā)時(shí)間中,前5個(gè)月由開(kāi)發(fā)人員在公司進(jìn)行開(kāi)發(fā),根據(jù)用戶的需求完成設(shè)計(jì),確定系統(tǒng)架構(gòu)并實(shí)現(xiàn)整個(gè)框架,部分明確的功能以及公用模塊也在這段時(shí)間內(nèi)完成;后3個(gè)月的時(shí)間部分開(kāi)發(fā)人員在現(xiàn)場(chǎng),部分開(kāi)發(fā)人員在公司共同完成后期的開(kāi)發(fā)工作。
整個(gè)項(xiàng)目采用的開(kāi)發(fā)語(yǔ)言是C++、Java、ASP,涉及的平臺(tái)包括Solaris和Windows,采用的開(kāi)發(fā)工具包括Visual Studio和Solaris上的CC。此外,整個(gè)項(xiàng)目還使用了一些第三方的平臺(tái),如IBM的MQ等。
除用戶需求之外,公司還對(duì)項(xiàng)目組提出了代碼復(fù)用方面的要求,開(kāi)發(fā)人員在開(kāi)發(fā)過(guò)程中必須注意代碼的可重用性。
配置管理前期準(zhǔn)備工作
在項(xiàng)目正式啟動(dòng)之后,配置管理工作就可以開(kāi)始了。配置管理工作開(kāi)始的第一步就是一份配置管理計(jì)劃。51cmm上已有不少配置管理計(jì)劃的模板,大家可以參考。
一般而言,需要在配置管理計(jì)劃中明確的內(nèi)容包括:
1、 配置管理軟硬件資源;
2、 配置庫(kù)結(jié)構(gòu);
3、 人員、角色以及配置管理規(guī)范;
4、 基線計(jì)劃;
5、 配置庫(kù)備份計(jì)劃;
在下文中,我們將圍繞這些內(nèi)容進(jìn)行詳細(xì)描述。
配置管理環(huán)境
配置管理環(huán)境包括軟硬件環(huán)境。具體的資源需求應(yīng)該根據(jù)項(xiàng)目實(shí)際情況來(lái)確定,一般需要考慮的包括:網(wǎng)絡(luò)環(huán)境、配置管理服務(wù)器的處理能力、空間需求,配置管理軟件的選擇等。配置管理環(huán)境的確定需要綜合考慮各個(gè)方面的因素,包括我們采用的開(kāi)發(fā)工具,開(kāi)發(fā)方式,開(kāi)發(fā)人員對(duì)配置管理工具的熟悉程度等,其中,開(kāi)發(fā)人員對(duì)配置管理工具的認(rèn)可和熟悉程度常常直接決定配置管理能否正常進(jìn)行,如果選擇了需要開(kāi)發(fā)人員花費(fèi)比較大的精力去熟悉的配置管理軟件,我們就必須花費(fèi)大量時(shí)間來(lái)進(jìn)行培訓(xùn);同時(shí),配置管理軟件和開(kāi)發(fā)工具的集成程度也是一個(gè)必須考慮的因素,根據(jù)我們的經(jīng)驗(yàn),選擇一個(gè)和開(kāi)發(fā)環(huán)境集成緊密的配置管理工具至少可以減少20%花費(fèi)在Check In/Check Out和配置管理人員保持配置庫(kù)完整上的工作量。
根據(jù)我們項(xiàng)目的實(shí)際情況,我們有如下一些考慮:
根據(jù)歷史經(jīng)驗(yàn),一個(gè)類(lèi)似項(xiàng)目的配置庫(kù)大小約為
考慮到在項(xiàng)目的后期有部分開(kāi)發(fā)人員會(huì)在現(xiàn)場(chǎng)進(jìn)行開(kāi)發(fā),因此在網(wǎng)絡(luò)條件上需要提供對(duì)遠(yuǎn)程訪問(wèn)方式的支持;
配置管理服務(wù)器的選擇和配置管理軟件的選擇相關(guān),考慮到目前公司有一臺(tái)閑置的PC服務(wù)器,最好能充分利用這臺(tái)服務(wù)器;
配置管理軟件必須可以以某種方式支持遠(yuǎn)程訪問(wèn),而且由于我們的開(kāi)發(fā)平臺(tái)涉及Solaris和Windows,配置管理軟件要能夠支持這兩種平臺(tái);考慮到開(kāi)發(fā)工具方面,配置管理工具要求能和我們選擇的開(kāi)發(fā)工具進(jìn)行很好的集成;
項(xiàng)目組的開(kāi)發(fā)人員缺乏使用配置管理工具的經(jīng)驗(yàn),有將約30%的開(kāi)發(fā)人員使用過(guò)VSS配置管理工具,但僅限于最基礎(chǔ)的使用,對(duì)VSS的Label等功能沒(méi)有概念;結(jié)合以上的情況,我們首先考慮配置工具的選擇。
配置管理工具的選擇
從開(kāi)發(fā)人員具有的配置管理工具使用經(jīng)驗(yàn)和配置管理工具使用的難易度方面來(lái)說(shuō),VSS是最好的選擇,在現(xiàn)有的基礎(chǔ)上只需要對(duì)開(kāi)發(fā)人員進(jìn)行簡(jiǎn)單培訓(xùn);考慮到和開(kāi)發(fā)工具的集成,VSS也是一個(gè)不錯(cuò)的選擇。不過(guò)本項(xiàng)目還要求對(duì)遠(yuǎn)程接入方式的支持,以及對(duì)Solaris平臺(tái)的支持,VSS肯定是不能滿足要求的(VSS通過(guò)VPN方式應(yīng)該是可以實(shí)現(xiàn)對(duì)遠(yuǎn)程訪問(wèn)的支持,但VSS的完全共享方式實(shí)在是不敢在Internet上使用)。
除VSS外,可以選擇的配置管理工具還有CCC Harvest、ClearCase、CVS等,但Harvest和ClearCase使用起來(lái)比較復(fù)雜,需要一個(gè)專(zhuān)門(mén)的配置庫(kù)管理員負(fù)責(zé)技術(shù)支持,還需要對(duì)開(kāi)發(fā)人員進(jìn)行較多的培訓(xùn),另外,Harvest和ClearCase價(jià)格不菲;CVS在Unix下使用方便,而且是免費(fèi)的,但其文本方式的操作界面對(duì)于習(xí)慣在Windows平臺(tái)上開(kāi)發(fā)的開(kāi)發(fā)人員來(lái)說(shuō)使用非常不習(xí)慣(CVS也有windows下的GUI版本,但經(jīng)過(guò)我們的試用,在操作習(xí)慣上和我們目前開(kāi)發(fā)人員習(xí)慣的方式很不相同,較難被接受)。
經(jīng)過(guò)在MSDN和Internet上查找,終于找到了一個(gè)VSS的增強(qiáng)軟件SOS(Source Offsite),它基于VSS的數(shù)據(jù)庫(kù),可以支持通過(guò)TCP/IP方式訪問(wèn)和操作VSS庫(kù),在Windows、Slolaris和Linux上都提供了客戶端,并且通過(guò)傳輸數(shù)據(jù)的壓縮和加密方式,使得文件操作的速度大大加快并增強(qiáng)了系統(tǒng)的安全性。SOS可以在SourceGear的網(wǎng)站上找到詳細(xì)介紹和試用的下載(http://www.sourcegear.com/sos)。事實(shí)證明,VSS+SOS的組合在我們的整個(gè)項(xiàng)目過(guò)程中起到了關(guān)鍵的支持作用。我們使用的SOS是3.53的Standard版本,本文也將以該版本為例在下一部分中說(shuō)明具體的操作和使用步驟。
軟硬件環(huán)境的選擇
確定了配置管理工具后,我們使用公司購(gòu)置的一臺(tái)Compaq PC Server作為配置管理的硬件環(huán)境,該服務(wù)器配置如下:
CPU:1CPU,P4
內(nèi)存:
硬盤(pán)空間:
網(wǎng)卡:HP G bit網(wǎng)卡一張
最終確定的方案是安裝該服務(wù)器安裝Windows 2000 Server操作系統(tǒng),為了保證配置數(shù)據(jù)的安全性,我們采用RAID 0+1方式,總的可用空間在
網(wǎng)絡(luò)環(huán)境的選擇
公司已有現(xiàn)成的
在公司的開(kāi)發(fā)人員通過(guò)局域網(wǎng)使用VSS訪問(wèn)和操作配置庫(kù),在現(xiàn)場(chǎng)的開(kāi)發(fā)人員通過(guò)Internet接入對(duì)配置庫(kù)進(jìn)行訪問(wèn)和操作。
配置庫(kù)維護(hù)和備份計(jì)劃
配置庫(kù)的維護(hù)的備份需要專(zhuān)職的配置庫(kù)管理員來(lái)負(fù)責(zé)。在整個(gè)項(xiàng)目中我們采用的配置庫(kù)維護(hù)策略是根據(jù)Microsoft的Best Practice白皮書(shū)建議,包括以下要點(diǎn):
1.保持配置數(shù)據(jù)庫(kù)的大小不超過(guò)
2.每周進(jìn)行VSS數(shù)據(jù)庫(kù)的分析(Analysis),發(fā)現(xiàn)問(wèn)題及時(shí)修正;VSS提供了Analysis和Fix工具,由于不合理的Delete等操作,VSS數(shù)據(jù)庫(kù)有可能會(huì)出現(xiàn)一些Interrupt Data之類(lèi)的問(wèn)題,通過(guò)定期的每周的分析工作,可以極大減少數(shù)據(jù)庫(kù)出現(xiàn)問(wèn)題的風(fēng)險(xiǎn);
3.每日進(jìn)行配置庫(kù)的增量備份,每周進(jìn)行數(shù)據(jù)庫(kù)的完全備份;VSS庫(kù)的備份可以通過(guò)VSS自己的Archive功能或者是操作系統(tǒng)的Backup程序來(lái)進(jìn)行。VSS的Archive功能對(duì)VSS中的文件數(shù)據(jù)進(jìn)行壓縮并保留VSS的所有狀態(tài),但只能對(duì)VSS庫(kù)進(jìn)行完全備份,不能實(shí)現(xiàn)增量備份功能。
【編輯推薦】