【摘要】在軟件開發(fā)領(lǐng)域,隨著計算機(jī)程序規(guī)模越來越大,結(jié)構(gòu)也越來越復(fù)雜,產(chǎn)品需要的開發(fā)人員不斷增多,開發(fā)人員之間的信息溝通、進(jìn)度協(xié)調(diào)和交付管理等當(dāng)面的矛盾日益突出。軟件配置管理通過對軟件產(chǎn)品各個部件的管理控制,協(xié)調(diào)軟件開發(fā)項目中不同角色的活動,能夠有效地幫組軟件開發(fā)團(tuán)隊避免上述問題。
【關(guān)鍵詞】軟件配置 軟件開發(fā) 軟件工程
1 軟件配置管理概述
軟件配置管理是指在軟件開發(fā)過程中管理軟件的配置,包括源程序、數(shù)據(jù)文件、設(shè)計文檔、用戶文檔,及其組織關(guān)系。相應(yīng)的管理包括管理這些部件的產(chǎn)生、修改、提取與發(fā)布,以保證整個產(chǎn)品的正確性、完整性,產(chǎn)品部件的一致性。
軟件配置管理的最終目標(biāo)是管理軟件產(chǎn)品。由于軟件產(chǎn)品是在用戶不斷變化的需求驅(qū)動下不斷變化,為了保證對產(chǎn)品有效地進(jìn)行控制和追蹤,配置管理過程不能僅僅對靜態(tài)的、成形的產(chǎn)品進(jìn)行管理,而必須對動態(tài)的、成長的產(chǎn)品進(jìn)行管理。沒有采用配置管理的“作坊”式的軟件開發(fā)項目經(jīng)常會遇到許多問題。例如,一個嚴(yán)重的錯誤被修正了,卻在一段時間后又重現(xiàn)了;一個已經(jīng)開發(fā)并經(jīng)過測試的功能在手工集成后完全消失了;系統(tǒng)崩潰了,卻很難查出是什么修改造成的;用于測試的執(zhí)行程序與源程序嚴(yán)重不一致;新的開發(fā)人員對現(xiàn)有代碼難以理解,不知其前因后果;無法判斷單個功能的實現(xiàn)進(jìn)度和整個項目的完成程度;無法確知整個產(chǎn)品的代碼修改頻度和每個版本的代碼修改量。種種這些問題,在沒有配置管理或配置管理系統(tǒng)不完善的項目中必然會出現(xiàn),并讓項目所有相關(guān)人員感到困惑,甚至十分惱火。
2 軟件配置管理的主要過程
2.1配置標(biāo)識與存儲過程
配置標(biāo)識是定義各類配置項、建立各種基線、描述相關(guān)軟件配置及其文檔的過程。標(biāo)識過程的關(guān)鍵是如何給每個配置項賦予一個唯一而又有意義的標(biāo)識符。在配置管理系統(tǒng)中同一個文件的配置項有許多版本,因此,必須把每個版本也標(biāo)識出來。配置項存儲過程指如何把普通文件系統(tǒng)中的文件轉(zhuǎn)化為受配置管理系統(tǒng)控制的配置項的過程,此過程與生成配置項初始標(biāo)識的過程幾乎是同時發(fā)生的。經(jīng)過一定選取標(biāo)準(zhǔn)選定的作為配置項的文件先被存放在工作空間,然后由工作空間的擁有者把該文件由工作空間添加到配置庫。
2.2版本管理過程
在項目開發(fā)過程中,絕大部分的配置項都要經(jīng)過多次的修改才能最終確定下來。對配置項的任何修改都將產(chǎn)生新的版本。版本管理過程是實現(xiàn)完整的配置管理功能的基礎(chǔ)。版本管理的主要內(nèi)容是管理產(chǎn)品配置項的每一個版本的生成和使用,主要方法包括版本訪問和修改控制、版本分支和合并、版本歷史記錄,以及歷史版本檢取。檢出和檢入機(jī)制是版本管理中實現(xiàn)修改控制的主要方法。檢出就是將軟件配置項的某一版本從配置庫中提取出來,以供開發(fā)人員在工作空間內(nèi)修改的操作;檢入就是將修改過的軟件配置項從工作空間中上傳到配置庫中從而生成新的版本的操作。
2.3 變更控制過程
變更控制的目的并不是控制變更的發(fā)生,而是對變更進(jìn)行管理,確保變更有序進(jìn)行。軟件產(chǎn)品在開發(fā)過程中進(jìn)行變更時不可避免的,變更和變更控制是矛盾的統(tǒng)一體。變更控制過程就是通過一系列方法、手段對變更進(jìn)行約束,使變更的結(jié)果有利于改進(jìn)產(chǎn)品、滿足客戶需要,同時使變更的實施對項目影響較小。項目中引起變更的因素有兩個:一是來自外部的變更要求,如客戶要求修改工作范圍和需求等;二是開發(fā)過程內(nèi)部的變更要求,如為解決測試中發(fā)現(xiàn)的一些錯誤而修改源碼甚至設(shè)計。變更控制不能僅在過程中靠流程控制,有效的方法是在事前明確定義。事前控制的一種方法是在項目開始前明確定義,否則“變化”也無從談起。另一種方法是評審,特別是對需求進(jìn)行評審,這往往是項目成敗的關(guān)鍵。需求評審的目的不僅是“確認(rèn)”,更重要的是找出不正確的地方并進(jìn)行修改,使其盡量接近“真實”需求。
2.4 基線管理過程
基線是指項目開發(fā)中的業(yè)務(wù)主線,對其管理是為保證基線的正確更新,它是一定階段變更請求實施后的累加效果。通過基線管理可以使用戶能夠通過對適當(dāng)版本的選擇來組成特定屬性(配置)的軟件系統(tǒng),這種靈活的“組裝”策略使得配置管理系統(tǒng)可使用已有的版本組裝成各種各樣、不同功能的模型?;€的變更需要一個嚴(yán)格的流程,需要提出申請,經(jīng)過審批,然后才能進(jìn)行?;€管理和產(chǎn)品開發(fā)模式、開發(fā)階段劃分,以及產(chǎn)品發(fā)布過程緊密相關(guān)?;€管理過程主要解決基線的創(chuàng)建、發(fā)布、使用和維護(hù)等方面的問題?;€一旦創(chuàng)建就成為整個產(chǎn)品的一個正式標(biāo)準(zhǔn),隨后的開發(fā)都基于此標(biāo)準(zhǔn)進(jìn)行,直到下一個基線被創(chuàng)建。
3 結(jié)語
配置管理本身無論從理論和實踐都在不斷豐富和發(fā)展。配置管理提供的狀態(tài)報告和數(shù)據(jù)統(tǒng)計也為軟件度量提供了決策依據(jù)。同時為項目管理提供了各種監(jiān)控項目進(jìn)展的視角,為項目經(jīng)理確切掌握項目進(jìn)程提供了保證。此外配置管理過程所規(guī)范的工作流程和明確的分工有利于管理者應(yīng)付開發(fā)人員流動帶來的困境,使新的成員可以快速實現(xiàn)任務(wù)交接,減少了因人員流動而造成的損失。
【參考文獻(xiàn)】
[1]劉江華,王立,馬玲等,著.軟件開發(fā)過程與配置管理——基于Rational的敏捷方案設(shè)計與應(yīng)用.電子工業(yè)出版社,2011,2.
[2]勃克扎(美國)等,著. 軟件配置管理模式 .中國電力出版社,2004,6.
作者簡介:周瑤,男,1995-03-09,西北民族大學(xué)數(shù)學(xué)與計算機(jī)科學(xué)學(xué)院,研究方向:軟件工程