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