監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價咨詢管理系統(tǒng) | 工程設計管理系統(tǒng) | 甲方項目管理系統(tǒng) | 簽約案例 | 客戶案例 | 在線試用
X 關閉
工程項目管理軟件系統(tǒng)

當前位置:工程項目OA系統(tǒng) > 建筑OA系統(tǒng) > 工程項目管理軟件系統(tǒng)

綜合輔導之什么是軟件配置管理?

申請免費試用、咨詢電話:400-8352-114

作為軟件配置管理工作者,差不多都有這樣的經(jīng)驗:在認識新朋友時,當別人問起自己所從事的職業(yè),自然回答到,“我從事軟件配置管理工作”。接著,十有八九,會被問到下一個問題“什么是軟件配置管理?”??偙粏柕较嗤膯栴},倒還稱不上是苦惱,真正的苦惱在于回答這個問題,因為軟件配置管理真是不太容易說得清……解釋了半天,結果往往是,“你這份工作好玄妙啊。隔行如隔山啊,我是搞不懂了?!?BR>  是的,軟件配置管理,確實不太好解釋。軟件開發(fā)過程中的其它工作,似乎都比它容易理解??荚?大開發(fā)工程師在編寫源代碼;測試工程師在測試,挑毛??;需求分析師跟用戶確定需求,并且用精確嚴謹?shù)恼Z言表達出來……雖說這樣說未必嚴謹,但是至少能夠得到一個大致的印象。但是,軟件配置管理呢?軟件配置管理是什么?
  下面是軟件配置管理的一個權威定義:
  “A discipline applying technical and administrative direction and surveillance to identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements.”
  “一套應用技術上和管理上的指導和監(jiān)督的方法,用來:識別和記錄配置項的功能特征和物理特征;控制這些特征的變更;記錄和報告變更的處理和執(zhí)行的狀態(tài);以及驗證其符合特定的需求?!?BR>  如果你看得一頭霧水,別擔心,這不是你能力上的問題。大部分人和你的感受相同。這個定義,以及類似的權威定義,都高度抽象。用一兩句話,確實很難把握好軟件配置管理這個概念。需要更多的描述,才能把它說清楚。事實上,這一整本書,就是在認識和理解軟件配置管理。而在這一章中,我們將用一些我們相對熟悉的概念來打比方,做對比,來講解軟件配置管理這個概念。通過這樣一種方式,讓大家對軟件配置管理有一個初步的,但比較正確的認識。
  與圖書管理作對比
  軟件配置管理,是關于軟件資產(chǎn)的管理。什么是軟件資產(chǎn)呢?源代碼,設計文檔,可以運行的程序,這些在軟件研發(fā)過程中產(chǎn)生的有價值的東西,都是軟件資產(chǎn)。軟件配置管理就是關于這些內(nèi)容的管理。那么,具體有什么要管理的呢?讓我們把它和圖書館的圖書管理做個對比。
  它們有一些相似點。首先,圖書管理管的是圖書資產(chǎn);軟件配置管理管的是軟件資產(chǎn)。這兩種管理,管的都是信息資產(chǎn)。其次,圖書管理,需要把圖書進行分類,以便檢索,需要將圖書存放在合適的地方,以便存取,還要防止蟲吃鼠咬;考試/大而軟件配置管理也類似,需要把軟件資產(chǎn)——主要是源代碼,放在合適的目錄結構里,放在合適的地方存儲,防止丟失或者弄亂。再次,在圖書館,要記錄誰借出了哪本書,還沒還。這是為了保證,圖書館的書不會丟失;
  而軟件配置管理中也類似,需要記錄誰“借”出了什么文件,什么時候“還”的。在這一“借”一“還”的過程中,程序員修改了它,而軟件配置管理記錄下了這些修改。那么,為什么要記錄呢?
  因為軟件資產(chǎn)與圖書資產(chǎn)不同,軟件資產(chǎn)在不斷變化,不斷演進。項目初始的時候,可能只有一份簡單的項目計劃,而項目結束時,已是可以交付給用戶的產(chǎn)品。如果縮小視野,單就某個源代碼文件來看,也會看到,通常它會在項目的某個時刻,被某個程序員創(chuàng)建第一個版本,然后,可能有不同的程序員,不斷修改它,產(chǎn)生新的版本。軟件配置管理關心:是不是這個文件的各個歷史版本應該被記錄,以便今后翻閱?是不是各次修改的修改者、修改的原因應該被記錄,以便將來可以理解當時的情形,理解為什么做出這樣的改動?更扣人心弦的是,當兩個人同時想要修改一個文件的時候,可能會導致其中一個人的改動丟失,也就是常說的版本覆蓋。那么,是讓他們一個改完了另一個再改呢,還是讓他們同時改,在將來合并?等等。
  所以說,軟件配置管理是關于不斷演進的軟件資產(chǎn)的管理。
  為什么稱作配置管理?
  機器由零部件組成。例如,汽車一般由底盤、發(fā)動機、車身和電器設備四大部分組成。其中,汽車底盤一般包括傳動系、轉向系、制動系和行駛系。傳動系主要由離合器、變速器、傳動軸和減速器等部件組成。再往下,基本就是零件了。
  機器由正確型號的零部件配置而成。每個零件都有型號、編號。零件組成的部件也有。一直到整個機器,一輛汽車。要保證制造出來的機器是正確的,就要保證選取了所有正確型號的零部件。那么,容易想到,應該有某種列表或文檔,標明各零部件型號和組成關系,也就是說,標明配置信息。而當配置有變動的時候,要更新這樣的列表或文檔。并且,這種變動不能隨隨便便,是否應該先讓總工程師批準?是否應該做相應的測試?這些都屬于對配置的管理。
  從軟件配置管理的視角看,軟件也是這么配置起來的。往小了說,各個源代碼文件的正確版本配置在一起,編譯產(chǎn)生了正確的可運行程序。往大了說,若干軟件組件的特定版本,配置構成了特定的軟件產(chǎn)品。而有些軟件組件,可能參與了不止一個軟件產(chǎn)品的配置構成。而當某個軟件組件參與不止一個軟件產(chǎn)品的配置構成的時候,可能是這個軟件組件的同一個版本,也可能是不同版本??矗瑔栴}有多復雜!不管理怎么行!
  軟件配置管理,與對機械系統(tǒng)的配置的管理相比,是有一些自己的特點的。主要有兩點:第一,軟件更容易發(fā)生變化,向前演進。一個程序員,修改一個Bug,可能5分鐘就搞定了,于是,5分鐘前與5分鐘后,已經(jīng)是不同的版本了。更何況,不止一個程序員在工作。如此快速的、眾多的變化,如果靠一個書記員手工記錄相關信息,那恐怕比較累。所以需要某種自動化的工具,提供這方面的支持。
  第二,軟件的耦合性更高。當程序員為某個任務改動源代碼的時候,經(jīng)常要改動不止一個文件??荚?大在目錄結構上,這些文件可能相距遙遠。組件/模塊間的接口,往往并不像把鼠標線插到USB口上那么簡單。某個模塊的變化,常會影響到相關模塊這個特點,使得在軟件領域,需要格外關心整體性。要盡可能早的、盡可能頻繁的集成,保證產(chǎn)品作為整體,是可運行的。另一方面,一個模塊、一個源文件,可能被幾個程序員改動:出于不同的目的,改動不同的位置,甚至相同的位置。因此,版本更容易混亂,或相互覆蓋。需要軟件配置管理工具提供相應支持,提供便利,同時避免出現(xiàn)問題。
  其它一些比喻
  保險柜
  軟件配置管理為軟件開發(fā)提供了一個保險柜。保險柜里,存的都是值錢的東西。存進保險柜,是因為怕自己不小心弄丟,或者被偷走。軟件資產(chǎn)也一樣,甚至比金戒指之類的更值錢。軟件資產(chǎn)也會丟失,特別是源代碼。比如,一個軟件項目完成后,如果沒有進行存儲/歸檔等工作,等再過幾個月,想基于版本1.0開發(fā)版本2.0的時候,可能會發(fā)現(xiàn)1.0的源代碼找不著了……無奈,只好從頭寫。這是自己不小心弄丟的情況。軟件資產(chǎn)還有可能被竊取或泄漏?;⒁曧耥竦母偁帉κ郑瑹o孔不入的商業(yè)間諜……所以,一定要把軟件資產(chǎn)放進類似保險柜的地方。
  巖釘
  這是來自攀巖者的經(jīng)驗。系上保險繩,每向上攀一小段,就在巖壁上打個巖釘。這樣,即使偶爾失手,也不會從半山墜到谷底,只是向下滑一小段。軟件開發(fā)也是一樣,適當?shù)谋4鏆v史版本,可以在失手的時候回退到上一個安全的地方。這里的版本,不僅僅指具體某個文件的版本,也指整個產(chǎn)品的版本。不僅指源文件,也包括需求、設計、測試用例……當我們關心軟件產(chǎn)品的部署和運行情況時,版本還意味著,某個軟件,上次安裝的版本是多少?這次升級到哪個版本?如果升級失敗,應該回退到上一個版本。
  腳印
  一步一個腳印。這有兩個含義。首先,先走好這一步,踩實了,踩穩(wěn)了,再走下一步。軟件研發(fā)也是這樣,需要里程碑;需要基線;需要每個迭代結束時,內(nèi)部或外部的發(fā)布。這些是項目的腳印。在每個腳印處,我們要認真檢查,是不是踩實踩穩(wěn)了。這可能是通過相關人員的評審,領導的審批,可能是通過軟件測試,也可能是通過某些檢查。
  其次,一個個的腳印,就構成了足跡。它告訴我們,我們是如何一路走來的,走的是哪條路。必要的時候,我們可能會回顧。還有可能,我們會回到半路,以便從那里再闖一條新路出去。對應到軟件開發(fā),我們就是要保存歷史上的版本,已備將來的不時之需。
  好了好了,據(jù)說所有的類比和比喻都是蹩腳的。軟件配置管理是什么?軟件配置管理就是軟件配置管理。如果再多說幾句,那就是:它是關于不斷演進的軟件資產(chǎn)的管理。這涉及到存儲和安全;涉及到記錄它演進的歷史;涉及到讓修改和變更井然有序,避免出現(xiàn)版本丟失、版本覆蓋等混亂情況;涉及到保證軟件代碼集成在一起的質(zhì)量……讓我們在隨后的章節(jié)里,更細致地學習和研究吧!
項目管理師考試資料庫
點擊進入:考試大項目管理師考試在線模擬測試
考試大項目管理師考試網(wǎng)校課堂
發(fā)布:2007-02-26 10:43    編輯:泛普軟件 · xiaona    [打印此頁]    [關閉]
相關文章:

泛普工程項目管理軟件系統(tǒng)其他應用

項目管理工具 禪道項目管理軟件 夢龍項目管理軟件 微軟項目管理軟件 裝飾管理系統(tǒng) 裝修預算軟件 項目計劃軟件 項目進度管理軟件 軟件項目管理工具 材料管理軟件 工程項目管理軟件系統(tǒng) 項目管理系統(tǒng) 施工管理軟件 建筑工程項目管理軟件 工程管理軟件