Posted on 2006-12-18 19:18
zolly 閱讀(850)
評論(0) 編輯 收藏
1、什么是軟件配置管理(SCM)
??? 軟件配置管理是指通過執(zhí)行版本控制、變更控制的規(guī)程,以及使用合適的配置管理軟件,來保證所有配置項(xiàng)的完整性和可跟蹤性。配置管理是對工作成果的一種有效保護(hù)。 (Software configuration management (SCM, or just plain CM) is an organizational framework — that is, a discipline — for managing the evolution of computer systems throughout all stages of systems development
.)2、為什么需要配置管理
??? 如果沒有軟件配置管理,最大的麻煩是工作成果無法回溯。隨著工作的進(jìn)展新的程序覆蓋了老的程序,當(dāng)突然發(fā)現(xiàn)新程序有問題而老程序正確時怎么辦?那只能重寫老的程序來覆蓋新的程序。過一段時間又發(fā)現(xiàn)原來的老程序有問題,而解決方法在原來的新程序中……您是不是快要發(fā)瘋了。
為了避免成果被覆蓋,包括我自己在內(nèi)的很多人早期采用手工管理版本的方式,例如當(dāng)一個新版本產(chǎn)生時用當(dāng)時的日期來命名文件夾,然后再復(fù)制一下以后的修改在復(fù)制的文件夾內(nèi)進(jìn)行,這樣上一個版本就被保存下來了,周而復(fù)始不同的版本不會被覆蓋。雖然這種方式可以從某種程度上解決版本的回溯問題,但他存在的缺點(diǎn)是顯而易見的:第一點(diǎn)如果保留結(jié)果過于頻繁,將會導(dǎo)致產(chǎn)生大量的有著重復(fù)內(nèi)容的文件夾,龐大的物理空間,管理起來很麻煩;如果保留舊版本的時間間隔太長,可能產(chǎn)生某些有用的老程序無法回溯。拿我最近開發(fā)的一個程序來說程序只有幾十兆,經(jīng)過一年的開發(fā)各版本累計到1G。第二容易產(chǎn)生版本的混亂,如果是團(tuán)隊開發(fā)軟件,這種簡單的方法更難解決問題的本質(zhì)了。
3、人的問題??? 配置管理的方法是成熟的,而且相應(yīng)的軟件工具也是成熟的,基本上不存在看不懂、不會用的問題。配置管理的執(zhí)行效果如何,完全是事在人為。妨礙配置管理的主要問題是人們嫌麻煩和僥幸心理作怪。
在沒出亂子的情況下,執(zhí)行版本控制看起來有些麻煩。每次修改工作的時候總是要Get Latest Version,接著Check Out,修改完后又要Check In,多做了三步。其實(shí)這三步加起來也就十幾秒鐘,而且不費(fèi)腦子,根本沒有添加多少麻煩,僅僅是個人感覺不爽而以。然而不執(zhí)行版本控制的話,萬一發(fā)生工作成果被覆蓋或丟失等問題,麻煩就大了。
4、軟件配置管理規(guī)范??? 軟件研發(fā)和管理過程中會產(chǎn)生許許多多的工作成果,例如文檔、程序和數(shù)據(jù)等,他們都應(yīng)當(dāng)妥善地保管起來,以便查閱和修改。如果把所有文件一股腦的塞進(jìn)計算機(jī)里,那么使用起來很麻煩。
凡是納入配置管理范疇的工作成果統(tǒng)稱為配置項(xiàng)配置項(xiàng)主要有兩大類:一類是屬于產(chǎn)品的組成部分,例如需求文檔、設(shè)計文檔、源代碼、測試用例等等;另一類是在管理過程中產(chǎn)生的文檔,例如各種計劃、報告等。
每個配置項(xiàng)的主要屬性有名稱、標(biāo)識符、文件狀態(tài)、版本、作者、日期等。配置項(xiàng)及歷史紀(jì)錄反映了軟件的演化過程。
基線由一組配置項(xiàng)組成,這些配置項(xiàng)構(gòu)成了一個相對穩(wěn)定的邏輯實(shí)體。基線中的配置項(xiàng)被凍結(jié)后,不能在被任何人隨意更改。基線通常對應(yīng)于開發(fā)過程中的里程碑。通常將交付該客戶的基線稱為一個Release,為內(nèi)部開發(fā)用的基線稱為一個Build。
版本控制的目的是按照一定的規(guī)則保存配置項(xiàng)的所有版本,避免發(fā)生版本丟失或混亂等現(xiàn)象。配置項(xiàng)的狀態(tài)有三種:“草稿”、“正式發(fā)布”和“正在修改” 。
??? 配置項(xiàng)的版本號與配置項(xiàng)的狀態(tài)緊密相關(guān):
(1)? ? 處于“草稿”狀態(tài)的配置項(xiàng)的版本號格式為:0.YZ
(2)? ? 處于“正式發(fā)布”狀態(tài)的配置項(xiàng)的版本號格式為:X.Y。
一般只是Y值遞增,當(dāng)Y值到達(dá)一定的范圍時X值才發(fā)生變化。
(3)? ? 處于“正在修改”狀態(tài)的配置項(xiàng)的版本號格式為:X.YZ。
一般只增大Z值,當(dāng)配置項(xiàng)修改完畢,狀態(tài)重新變成“正式發(fā)布”時,將Z值變?yōu)?,增加X.Y值。
5、常用的配置管理軟件??? 自從20世紀(jì)80年代后期研制并完善了“增量存儲算法”后配置管理工具的春天便開始了,目前國內(nèi)常用的配置管理工具大概有SourceSafe、CVS和ClearCase。
摘自:SCM Life 配置管理社區(qū)(
http://www.scmlife.com/thread-308-1-1.html)