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