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

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

綜合輔導(dǎo)之什么是軟件配置管理?

申請免費(fèi)試用、咨詢電話:400-8352-114

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

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

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