彭璐,侯凱瑞
(北京計算機技術(shù)及應(yīng)用研究所,北京 10086)
信息化軟件由于其特殊性,隨著管理流程、使用周期、業(yè)務(wù)需求的不斷變化,具有需求變更頻繁,開發(fā)過程復(fù)雜,維護周期漫長,人員協(xié)同量大,開發(fā)人員流動性強的特征,而在當(dāng)前信息化軟件的全過程中,均沒有一種良好的手段進行統(tǒng)籌規(guī)劃與有效管理,造成系統(tǒng)版本混亂,需求難以追溯,變更不能實時體現(xiàn),系統(tǒng)交接復(fù)雜,文檔混亂,后期維護困難等現(xiàn)象,因此,提升信息化軟件過程的管理水平尤為重要。
軟件過程是對一系列相互關(guān)聯(lián)的用來創(chuàng)建、維護和演進軟件的活動以及執(zhí)行活動所需的角色和資源集合的抽象描述[1]。軟件過程的建立過程包括兩個階段:軟件過程定義和建模階段以及軟件過程改進階段。它側(cè)重的是在軟件開發(fā)的過程中對需求管理、計劃安排、合同管理、項目跟蹤、資源分配和質(zhì)量要求等的管理方式,也就是對軟件開發(fā)、維護全過程規(guī)范化、透明化、標(biāo)準(zhǔn)化的管理。
軟件配置管理(SCM)是對過程產(chǎn)品變更進行的管理[2]:在軟件過程生命周期內(nèi)標(biāo)識、組織和控制軟件過程變更,關(guān)鍵活動包括:過程配置項標(biāo)志,過程構(gòu)件版本控制,過程變更控制和狀態(tài)報告等。
目前軟件配置管理有一些常用的標(biāo)準(zhǔn)與規(guī)范,由SEI提出的CMMI(Capability Maturity Model Integration),即軟件能力成熟度集成模型,提供了一種漸進式的軟件過程改進途徑,體現(xiàn)了軟件工程和軟件管理的最佳實踐,為軟件開發(fā)者提供了成熟的規(guī)范化過程的框架:通過劃分5個等級共22個過程區(qū)域(PA),以過程域為主題,闡述了對各PA的要求,分為特定目標(biāo)與通用目標(biāo),并通過對應(yīng)的特定實踐和通用實踐來實現(xiàn)這些目標(biāo)[3-5]。
在軍用領(lǐng)域,總裝備部2008年頒布了GJB5000A-2008《軍用軟件研制能力成熟度模型》[4],用于管理項目進行過程中持續(xù)不斷的變化。配置管理是GJB5000A所包含的過程域中的一個,在這個過程域中包含了軍工領(lǐng)域普遍認可且行之有效的最佳實踐,并提供了配置管理的目標(biāo)和實踐方法。與此同時,GJB5235-2004《軍用軟件配置管理》作為軟件工程的重要標(biāo)準(zhǔn),提供了配置管理的執(zhí)行標(biāo)準(zhǔn)與相關(guān)術(shù)語規(guī)定。軟件配置管理的相關(guān)術(shù)語與主要任務(wù)如下:
軟件配置項即軟件配置管理的對象,它是軟件開發(fā)過程中產(chǎn)生的所有工作產(chǎn)品,包括:代碼(源代碼、目標(biāo)代碼)以及數(shù)據(jù)結(jié)構(gòu)(內(nèi)部、外部數(shù)據(jù))、文檔(技術(shù)文檔、管理文檔、用戶文檔等)、報告,其中每一項稱為一個軟件配置項,是配置管理的基本單位。
配置管理中包含的相關(guān)角色與職能如下表所示:
表1 配置管理相關(guān)角色Tab.1 Configuration management related roles
基線標(biāo)志著軟件開發(fā)過程一個階段工作的結(jié)束,是后續(xù)工作的基礎(chǔ)。一旦文檔通過評審形成基線就要對其進行嚴格的修改控制。
配置管理主要活動與要求有:一、配置標(biāo)識:編制軟件配置管理計劃;軟件配置項標(biāo)識;基線標(biāo)識;受控庫標(biāo)識;配置項和基線的狀態(tài)標(biāo)識;更改申請狀態(tài)標(biāo)識;配置項和基線納入配置控制的進展情況標(biāo)識。二、配置控制:標(biāo)識和記錄更改申請;分析并評價更改;批準(zhǔn)或否決更改申請;實現(xiàn)、驗證和發(fā)行已修改的軟件項。三、配置狀態(tài)記實:記錄標(biāo)識,跟蹤更改,報告狀態(tài)記實。四、配置評價:確定配置項是否與SCM記錄相符;軟件產(chǎn)品相對構(gòu)造軟件配置項的累積狀態(tài)和批準(zhǔn)的更改而言,是否完備和可用;基線是否由相關(guān)的軟件配置項和各自批準(zhǔn)的更改組成[6]。
配置管理作為在軟件全生命周期對軟件質(zhì)量的一項重要的控制手段,同時也是推行其它軟件工程方法和活動的基礎(chǔ),在進行配置管理活動的時候,我們應(yīng)編寫軟件配置管理計劃,明確配置管理組織及其成員的責(zé)任和權(quán)限,明確配置管理的范圍[7-8],對每條基線及每個基線下的配置項有清楚認識與規(guī)劃,同時做好配置管理評價工作。
配置管理的目的是利用配置標(biāo)識、配置控制、配置狀態(tài)記實和配置審核,建立和維護工作產(chǎn)品的完整性。我所的信息化軟件管理以前由于缺乏管理標(biāo)準(zhǔn),造成當(dāng)前諸多問題的出現(xiàn),如果能從軟件生命周期的開始階段,就采用配置管理的規(guī)程,對信息化軟件的全生命周期進行管理,制定軟件的配置管理計劃,并嚴格按照計劃與要求去執(zhí)行,則相應(yīng)的文檔將會齊備且相互對應(yīng),利于軟件的后期維護與重用,且配置管理涵蓋了軟件全生命周期的全部過程文件,這樣將確保信息化軟件最后輸出的完整性。軟件的每一個版本與對應(yīng)的變更能夠有效地進行管理,使每個功能點的追溯成為可能,更為重要的是,在配置管理流程中,每一個環(huán)節(jié)都是相互關(guān)聯(lián)的,當(dāng)上一個環(huán)節(jié)沒有按照規(guī)定完成時,就不能進行下一環(huán)節(jié)的工作。例如,在更改環(huán)節(jié),配置管理員必須提交問題報告單和修改申請單,并進行影響域分析,分析此次更改的必要性、技術(shù)可行性,并權(quán)衡其它的更改策略和方法、所涉及的相關(guān)配置項等,對所涉及的配置項進行修改并入庫管理,這樣,對于每一次變更,都能夠從源頭進行管理。同時,整個配置管理活動,均要進行配置審核,在CCB的干預(yù)下進行,對于每次活動有了專業(yè)的規(guī)程與審核,配置管理還會生成一系列配置管理報告,能夠隨時了解整個軟件過程狀態(tài)。產(chǎn)品的出入庫管理,對于版本的定義更加清晰,避免了信息化軟件版本混亂的情形,通過上述分析,可知將配置管理用于信息化軟件的過程管理,是可行且必要的。
本文將配置管理引入到信息化軟件的管理中來,并以元器件選用控制管理系統(tǒng)為例,利用軟件配置管理系統(tǒng)對元器件選用控制管理系統(tǒng)軟件的全過程進行管理。
將元器件選用控制管理系統(tǒng)作為一個信息化軟件項目進行立項,給出項目編號:706-YQJMS,確定項目的CCB成員:主管室領(lǐng)導(dǎo),項目組長和項目CM員。
進行配置管理策劃,建立SCM計劃表,是一個項目運行最重要的部分,包括對人員權(quán)限與職能的劃分,依據(jù)選擇配置項的準(zhǔn)則,定義組成軟件基線的所有軟件配置項,指明每個配置項(SCMI)的名稱、文檔簡號、標(biāo)識碼、負責(zé)人和載體,策劃中還包含每條基線完成的時間節(jié)點,以后的配置活動,將嚴格按照此策劃進行。設(shè)置的版本模式類別有:1、配置項(SCMI)版本;2、基線版本;3、軟件產(chǎn)品版本,并給出各版本號的標(biāo)準(zhǔn)命名。同時,在配置管理策劃中還要定義各SCMI項的依賴和約束關(guān)系,且在每一個文檔中,都具體描述了軟件每一個功能的的追溯關(guān)系,圖1為本次配置管理定義的三條基線及其對應(yīng)的SCMI項。
入庫申請是將各個基線對應(yīng)下的SCMI項入受控庫并提交申請的過程,首先填寫入庫的基本情況,其次將對應(yīng)的SCMI項,按照SCMI的版本標(biāo)識形式給出SCMI的版本號,入庫然后提交審批。審批流程嚴格按照SCM初始入庫審批流程進行,符合配置管理過程文件中的“初始入庫管理規(guī)程”。
當(dāng)軟件配置管理計劃中基線定義所包含的所有配置項都進入受控庫后,或軟件基線更改后,填寫基線建立申請單,對所有版本的基線(初始基線和更改版本),都要確認軟件基線版本的正確性、完整性、完備性,以及組成軟件基線版本的SCMI版本相互之間的一致性。
當(dāng)涉及到需求變更或發(fā)現(xiàn)軟件問題時,都涉及到軟件的更改控制。使用配置管理中的更改控制,可以很好地解決信息化軟件所面臨的這一問題。以元器件選用控制管理系統(tǒng)一個需求變更為例,首先由項目CM填寫問題報告單,內(nèi)容為由于業(yè)務(wù)部門提出的需求更改而引起的變更。一個問題更改單由概述和問題描述組成,還要將涉及更改關(guān)聯(lián)已入庫的配置項納入進來,并說明受影響的具體內(nèi)容。
因為業(yè)務(wù)需求的更改,用戶需求和軟件需求規(guī)格說明書兩個文檔均需要修改,這兩項SCMI項均已入受控庫,應(yīng)該嚴格按照配置管理要求,先出庫再修改,此時,我們提交兩張《更改申請單》,填寫申請概述,將通過審批的問題更改單作為更改依據(jù),申請出庫。
文件出庫修改后,需要更改入庫,必須將所更改的SCMI項重新納入到受控庫中。將每一項SCMI與對應(yīng)的《更改申請單》關(guān)聯(lián),以便后期追溯。對本次入庫SCMI版本進行定義和說明,并與之前的SCMI版本建立關(guān)聯(lián),因為本次更改尚處于設(shè)計階段,不涉及源程序的變化,因此,不需要進行更改驗證,如果有,還必須將更改驗證單納入本次申請。當(dāng)一次更改成功后,升級功能基線和分配基線版本,將更改入庫的SCMI項對應(yīng)到升級的基線版本中,整個更改控制是一個閉環(huán)環(huán)節(jié),并遵守受控庫中的受控要求,每次更改均要從受控庫中出庫,整個過程均由項目CCB審核,保證每次更改的可追溯性和可驗證性,整個過程可對SCMI的各個版本進行比較,對問題處理的過程進行追蹤,解決了信息化軟件文檔難以追溯的問題。
軟件基線建立后,需要進行項目的功能配置審核、物理配置審核和配置管理審核。
圖1 元器件選用控制管理系統(tǒng)基線定義與對應(yīng)的SCMI項Fig.1 Element selection control management system baseline definition and corresponding SCMI terms
圖2 配置管理更改流程Fig.2 Configuration management change process
功能配置審核內(nèi)容:依據(jù)軟件配置管理計劃中的基線定義和更改要求,確認基線版本的完整性、一致性;依據(jù)軟件配置管理計劃中定義的配置項之間的依賴關(guān)系,確認基線版本的完備性。對基線版本包含的、新入庫的配置項版本,確認配置項版本組成文件內(nèi)容的正確性,對出庫的軟件源程序測試其功能、性能、是否達到規(guī)定的要求;
物理配置審核內(nèi)容:確認軟件基線版本組成配置項版本的條目與配置項版本實體文件之間的一致性。
配置管理審核內(nèi)容:依據(jù)過程質(zhì)量檢查單進行配置管理過程審核;確認配置管理記錄和配置項是否完備、一致和準(zhǔn)確,形成配置管理過程質(zhì)量報告。
我們對每條基線進行了審核工作,下面是對功能基線和分配基線的基線審核報告表,分別對功能配置、物理配置和配置管理活動進行審核。
CM組需定期、在里程碑處和需要時編制配置管理報告,了解配置項的版本變遷,問題處理情況,配置管理的執(zhí)行進度,受控庫中已入庫配置項的入庫時間等信息。
當(dāng)軟件測試階段評審?fù)ㄟ^后,配置管理員應(yīng)建立產(chǎn)品基線,并依據(jù)產(chǎn)品基線定義產(chǎn)品,提交產(chǎn)品定義申請。此后可進行產(chǎn)品的版本定義和產(chǎn)品出入庫管理,將受控庫定義的產(chǎn)品納入到產(chǎn)品庫中管理。
通過對元器件選用控制管理系統(tǒng)軟件過程的配置管理實踐,充分驗證了配置管理對信息化軟件的需求追溯、變更控制及文檔管理都具有極大的幫助,可有效規(guī)范信息化軟件的管理過程。信息化軟件比普通軟件擁有更多、更繁瑣的變更,今后,在嚴格遵守配置管理基本規(guī)程的基礎(chǔ)上,應(yīng)考慮如何定義和管理信息化軟件的變更版本,既保證變更管理的正確、完整性,又提高配置管理的工作效率。