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