劉旭奕
(中國電子科技集團(tuán)公司第二十九研究所,四川 成都 610036)
隨著高新武器裝備向“智能化”方向的發(fā)展,以及部隊信息化程度的不斷提高,軟件在現(xiàn)代武器裝備中的應(yīng)用日趨廣泛,已逐漸成為武器裝備體系中的重要組成部分。
然而由于軟件產(chǎn)品不同于硬件產(chǎn)品的研發(fā)特點,如軟件本身的開發(fā)高風(fēng)險性、易變性、抽象性、管理難度大等使軟件產(chǎn)品質(zhì)量控制的方式方法和硬件相比也有許多明顯區(qū)別。
實踐證明,推行軟件工程化能使軟件產(chǎn)品的質(zhì)量得到很好的控制,軟件工程按照GB/T 11457–2006《軟件工程術(shù)語》的定義為:應(yīng)用計算機(jī)科學(xué)理論和技術(shù)及工程管理的原則和方法,按預(yù)算和進(jìn)度,實現(xiàn)滿足用戶要求的軟件產(chǎn)品的定義、開發(fā)、發(fā)布和維護(hù)的工程或進(jìn)行研究的學(xué)科。從這段定義中可以看出,軟件工程應(yīng)貫穿軟件全生命周期,同時,推行軟件工程離不開標(biāo)準(zhǔn)的支撐(工程管理的原則和方法)。在眾多的軟件工程標(biāo)準(zhǔn)中,GJB 5235–2004《軍用軟件配置管理》是其中一項重要的標(biāo)準(zhǔn),因為軟件配置管理作用在軟件的整個生命周期,是對軟件質(zhì)量的一項重要的控制手段。同時軟件配置管理也是推行其它軟件工程方法和活動的基礎(chǔ)。
根據(jù)GJB 5235–2004《軍用軟件配置管理》的規(guī)定,軟件配置管理包括的活動和任務(wù)見表1。
通過表1,可以明確軟件配置管理包括的主要活動以及每個活動的主要內(nèi)容。
其中,配置標(biāo)識是開展后續(xù)配置管理活動的基礎(chǔ),而配置活動所包括的幾項工作內(nèi)容的具體要求都應(yīng)明確在配置管理計劃中。
根據(jù)表1我們可以看出,開始實施軟件配置管理應(yīng)編寫“軟件配置管理計劃”,該計劃是后續(xù)配置管理工作的指導(dǎo)性文件。在計劃中既要反映管什么、怎樣管的問題,還要明確如何評價管得怎樣的問題。GJB 5235–2004中明確規(guī)定了軟件配置管理計劃中應(yīng)包含的各種信息,概括起來就是:
配置管理組織及其成員的責(zé)任和權(quán)限;
實施本項目配置管理的策略;
本項目配置管理的業(yè)務(wù)范圍;
項目軟件配置管理采用的工具和方法;
對配置標(biāo)識、配置狀態(tài)記錄、配置審核及評審等配置管理活動的要求。
通過上面的分析,我們可以看到,配置管理計劃首先要明確配置管理機(jī)構(gòu)的人員組成和職責(zé),一些項目組片面認(rèn)為配置管理就是配置管理員的工作,其實在軟件配置管理小組中,各類人員要互相配合、分工協(xié)作,共同擔(dān)負(fù)起整個項目的軟件配置管理工作。例如:軟件項目的主持設(shè)計師通常也是軟件配置管理小組的組長,他應(yīng)對有關(guān)軟件配置管理的各項工作全面負(fù)責(zé)。由于在軟件開發(fā)過程中不可避免會發(fā)生軟件配置項的更改,因此,對于每項更改申請,組長負(fù)有審批的職責(zé),對于重大的更改,組長應(yīng)組織評審,并對評審的結(jié)果負(fù)責(zé)。
軟件項目經(jīng)理負(fù)責(zé)監(jiān)督在軟件配置管理工作中是否認(rèn)真執(zhí)行軟件工程規(guī)范。
項目專職的配置管理人員協(xié)助組長開展各項軟件配置管理活動,負(fù)責(zé)審查所采用的配置管理工具、技術(shù)和方法,并負(fù)責(zé)匯總、維護(hù)和保存有關(guān)軟件配置管理活動的各項記錄。
軟件開發(fā)人員根據(jù)配置管理策略創(chuàng)建和修改產(chǎn)品。
軟件測試人員負(fù)責(zé)對軟件產(chǎn)品某些特定版本進(jìn)行測試,記錄結(jié)果,反饋相關(guān)人員,并驗證其修復(fù)情況。
只有讓配置管理組中的人員各司其職,各盡其職,才能使配置管理步入健康運行的軌道。
同時,配置管理計劃還要求對配置管理的范圍進(jìn)行明確,即需要列出配置管理的項目標(biāo)識、基線標(biāo)識、軟件標(biāo)識和軟件配置項。對于基線標(biāo)識,一般應(yīng)具有功能基線、分配基線和產(chǎn)品基線,對于更加復(fù)雜的軟件項目通常還應(yīng)確立開發(fā)基線、實現(xiàn)基線和測試基線(如圖1)。每一基線都是一組配置項的集合,因此通過表格的形式列出基線及其每一基線下各配置項的標(biāo)識和完成時間,是配置管理的一項重要內(nèi)容。有了這份標(biāo)識清單就能使配置管理員對管理的對象做到心中有數(shù),避免了“入庫什么,才管理什么”的被動局面,同時也能根據(jù)配置管理計劃的要求檢查進(jìn)度情況,實時預(yù)警,杜絕計劃延遲的情況發(fā)生。因此配置管理計劃是配置管理工作有條不紊進(jìn)行的基礎(chǔ)。
圖1 軟件開發(fā)階段與基線
另外,配置管理計劃還應(yīng)明確配置控制的要點,如修改的審批權(quán)限、更改重要性的判定原則(更改的影響是否涉及全局或局部)、修改的審批程序、對第三方軟件配置檢查的方法、對軟件開發(fā)周期各階段配置管理工作的評審方法和檢查方法以及如何存放維護(hù)并分析配置管理活動記錄等內(nèi)容。GJB 5235–2004中明確要求“SCM(軟件配置管理)過程應(yīng)接收并處理對已建立基線的軟件配置項進(jìn)行更改;對納入配置控制的軟件配置項和基線的更改申請均應(yīng)得到標(biāo)識、記錄、批準(zhǔn)/否決和跟蹤?!?。可以想象,如果沒有對審批權(quán)限及更改流程的嚴(yán)格規(guī)定,沒有對更改重要性的準(zhǔn)確認(rèn)定,更改隨意性就難以得到有效的控制。
從GJB 5235–2004中我們可以看到,軟件的配置控制包括以下幾方面的控制工作,即:
檢入檢出的控制;
更改控制;
版本控制;
存取控制。
因此版本控制其實只是配置控制的一部分。另外,GJB 5000–2003《軍用軟件能力成熟度模型》中也明確了軟件配置管理的目標(biāo)是使軟件配置管理活動是有計劃的;所選定的軟件工作產(chǎn)品是已標(biāo)識的、受控的和可用的;已標(biāo)識的軟件產(chǎn)品的更改是受控的;受影響的組和個人能接到基線的狀態(tài)和內(nèi)容的通知。
從這個層面上看,配置管理不僅要對軟件產(chǎn)品本身進(jìn)行控制,還要控制其影響。因為單純的版本控制只是做到了標(biāo)識變更,而真正的配置管理還包括控制變更、確保變更的正確實現(xiàn)以及向相關(guān)人員通知變更情況等各環(huán)節(jié)。
可見,如果對配置管理片面理解,僅認(rèn)為版本管理就是配置管理,就容易產(chǎn)生一些負(fù)面的影響,主要表現(xiàn)如下。
2.2.1 軟件工作產(chǎn)品的版本不能確保有效
軟件工作產(chǎn)品雖然都有版本標(biāo)識,它們的檢入檢出也都有記錄,但這種記錄還僅停留在“歸檔什么就記錄什么”,“有什么就標(biāo)識什么”,“你讓怎樣改就怎樣改”的水平。試想,當(dāng)某一個需求發(fā)生變更后,若僅修改需求規(guī)格說明,而不將其體現(xiàn)在相應(yīng)的設(shè)計文檔和測試文檔中,即使這個需求規(guī)格說明的版本得到了很好地控制,這個需求仍然不能最終體現(xiàn)在軟件上,那么這種變更就是無效的變更。這種控制也是無效的控制。
2.2.2 對未經(jīng)認(rèn)可的變更缺乏控制機(jī)制,導(dǎo)致軟件工作產(chǎn)品的變更隨意
軟件在開發(fā)過程中,工作產(chǎn)品發(fā)生變更是常有的,但必須做到這個變更所涉及的相關(guān)文檔及其它工作產(chǎn)品應(yīng)同步變更,并且這個變更所導(dǎo)致的一系列更改不會對軟件本身的功能、性能和質(zhì)量產(chǎn)生不良影響。有了這些要求后,變更將按照特定的流程進(jìn)行,而不再是設(shè)計人員的隨意行為。
GJB 5235–2004中規(guī)定變更控制一般包括:更改申請、評價更改的影響、實施更改、通報處理和結(jié)束等5個步驟,即變更的觸發(fā)可能因為優(yōu)化的需要、本身的錯誤或其他輸入的變化。所有這些變更需求都需要進(jìn)行評估,也就是對更改所產(chǎn)生的影響進(jìn)行分析,若同意變更則需要對變更內(nèi)容和受影響范圍進(jìn)行確認(rèn),然后開始實施變更、必要的驗證和測試并進(jìn)行通報。配置管理員完成更改日志,生成更改副本。比較成熟的變更控制流程如圖2所示。
根據(jù)上面的分析,我們可以看到,沒有更改控制的版本控制,將導(dǎo)致版本變更的隨意性。版本變更的隨意性將最終導(dǎo)致軟件產(chǎn)品質(zhì)量不可控。
圖2 變更控制流程
根據(jù)GJB 5235–2004的要求,軟件配置管理應(yīng)包括配置標(biāo)識、配置控制、配置狀態(tài)記實、配置評價、軟件發(fā)行管理和交付等活動。其中的配置評價是指軟件配置管理過程應(yīng)通過評審和評價的方式,確保軟件配置管理任務(wù)符合配置管理計劃的要求,在過程中發(fā)現(xiàn)問題時應(yīng)及時解決,及時調(diào)整(對配置管理計劃的偏離)。
很明顯,配置管理既然是過程的管理,那么如同其他的流程改進(jìn)活動一樣,配置管理在實施過程中需要經(jīng)常性地檢查實施的效果。對于效果差、效果不理想的項目,配置管理委員會應(yīng)提出必要的改進(jìn)措施,跟蹤措施的實施情況直至效果達(dá)到滿意的水平??梢韵胂螅缑恳粋€軟件項目的配置管理工作都能不折不扣地做好配置評價,則將為后續(xù)的軟件配置管理提供十分寶貴的經(jīng)驗和教訓(xùn)。從而不斷提高組織的軟件配置管理的能力和水平。反之,缺少配置評價環(huán)節(jié),將造成開發(fā)過程中問題不能得到暴露,即使發(fā)現(xiàn)了問題也不能即時采取措施糾正,或者采取了措施也不能跟蹤措施的實施直至問題閉環(huán)。因此這樣就將造成過程管理水平長期處于原地徘徊的狀態(tài)。
然而,盡管配置評價工作十分重要,但無論是GJB 5235–2004還是GJB 5000–2003,都僅給出了配置評價的工作內(nèi)容,而對于評價的方法卻少有提及。正是這個原因,使得一些項目團(tuán)隊要么沒有配置評價要么使其流于形式。
要做好配置評價工作,應(yīng)注意以下幾點。
2.3.1 緊扣GJB 5235-2004規(guī)定的需要進(jìn)行配置評價的主要內(nèi)容開展工作標(biāo)準(zhǔn)中明確了需進(jìn)行配置評價的主要內(nèi)容為:存儲在受控庫中的軟件配置項是否與SCM記錄相符;
軟件產(chǎn)品相對于構(gòu)造軟件配置項的累積狀態(tài)和批準(zhǔn)的更改而言,是否完備和可用;
基線軟件配置項是否由相關(guān)的軟件配置項和各自批準(zhǔn)的更改組成。
從中我們可以看出,配置評價主要包括配置項的完整性,配置項累積過程是否完整合法,各個基線配置項的組成是否完整和合法。
找準(zhǔn)了上述的工作重點就為后續(xù)評價工作的可操作性打下了基礎(chǔ)。
2.3.2 針對每項內(nèi)容的評價活動應(yīng)具有操作性
根據(jù)配置評價內(nèi)容,有針對性地制定實施細(xì)則,是保證配置評價活動具有可操作性的關(guān)鍵。例如:要檢查配置項的完整性應(yīng)通過表格的形式對比配置管理計劃中所列的配置項清單和受控庫中配置項的一致性。
檢查配置項的累積過程是否完整合法,也可通過表格形式(如表2所示)清理受控庫中各配置項版本的歷史記錄及其變更的手續(xù)是否齊備。條件許可的情況下可將PDM系統(tǒng)和軟件配置管理工具結(jié)合使用,效果更好。如表2中的更改申請單號應(yīng)填寫在PDM中提交更改申請時系統(tǒng)自動分配的唯一編號。通過這個編號可以快速查詢此項更改申請的處理情況。如果配置管理過程中的每一項變更都嚴(yán)格執(zhí)行了圖2所示的變更控制流程,那么版本的變更情況及其審核和評審過程將一一對應(yīng)。反過來,通過這種清理我們也能發(fā)現(xiàn)是否有變更在未經(jīng)許可的情況下得以執(zhí)行。
檢查各個基線配置項是否完整和合法則可采用圖形和表格的形式進(jìn)行檢查。首先清理出項目在過程中發(fā)布過的基線有多少,每條基線下各個配置項是否齊備,版本是否完整,每個基線的發(fā)布是否手續(xù)完備。
表2 配置項變更審核情況匯總表樣例
具體來說就是要做好以下幾個方面的工作:
基線在生成前檢查配置項是否齊備;
針對每個配置項,確認(rèn)版本是否正確;
檢查配置的標(biāo)識和基線標(biāo)識是否正確;
基線變更是否有嚴(yán)格的審批流程。
配置管理是一項過程管理,這就意味著評價工作應(yīng)該經(jīng)?;?,但怎樣才能做到經(jīng)常化,怎樣設(shè)置質(zhì)量控制點才是科學(xué)合理的呢?
通過分析軟件的生命周期以及基線的定義我們可以看出,基線實質(zhì)是開發(fā)過程中各工作產(chǎn)品某一時刻的快照,那么將檢視點設(shè)置在軟件開發(fā)過程中幾個重要基線建立后,對監(jiān)督軟件產(chǎn)品質(zhì)量將起到事半功倍的作用。因為,如圖1所示的各基線是軟件開發(fā)過程中的重要里程碑,這些基線的建立是開展后續(xù)工作的基礎(chǔ),同時在這些基線建立之前,相關(guān)的文檔和軟件等配置項通常會發(fā)生較頻繁的變更,所以檢驗這些基線的建立是否完整、準(zhǔn)確十分重要。
隨著軍用軟件質(zhì)量管理體系的日趨完善,人們已逐步意識到,軍用軟件在開發(fā)過程中的主要問題不是單純的技術(shù)問題,更多的是管理問題,對軟件質(zhì)量的控制應(yīng)該摒棄單純重測試、輕設(shè)計,重結(jié)果,輕過程的錯誤觀念和方法。軟件配置管理正是有效提升軟件開發(fā)質(zhì)量的重要手段。由于軍用軟件特殊的用戶和使用對象,決定了對它的配置管理工作將比一般商用軟件更加嚴(yán)格。因此要真正搞好軍用軟件配置管理就需要對其中的各個環(huán)節(jié)進(jìn)行深入的研究。并切實避免軟件配置管理實踐活動中存在的誤區(qū),在過程中嚴(yán)格執(zhí)行GJB 5235–2004的各項要求,認(rèn)真總結(jié)經(jīng)驗教訓(xùn),持續(xù)改進(jìn),只有這樣才能不斷改進(jìn)軟件開發(fā)過程,提高過程能力成熟度,使軍用軟件的開發(fā)工作更加有序和高效的進(jìn)行。
[1] 阮鐮,陸民燕,韓峰巖等.裝備軟件質(zhì)量和可靠性管理[M].北京:國防工業(yè)出版社, 2006.