近期一直在學(xué)習(xí)GJB3206B-2022《技術(shù)狀態(tài)管理》,有了一些零星理解但不成系統(tǒng),有朋友希望我寫寫GJB 5235-2004《軍用軟件配置管理》和GJB 5235A-2021《軍用軟件配置管理》(敲黑板,本文嚴(yán)格區(qū)分GJB 5235和GJB5235A,請大家在閱讀時(shí)務(wù)必注意)的區(qū)別,我就試著去讀了讀GJB 5235標(biāo)準(zhǔn),卻發(fā)現(xiàn)單獨(dú)一個(gè)GJB 5235標(biāo)準(zhǔn)無法將配置管理說清楚,就順著又讀了一下GJB 5000、GJB 5880、GJB 5716等相關(guān)標(biāo)準(zhǔn),就又有了一些體會(huì),當(dāng)然,這些體會(huì)更多是用GJB 3206的方式理解的,今天就斗膽來和各位朋友說一說。
01
概念及內(nèi)涵
軟件配置(GJB 5235):在軟件生存周期各階段產(chǎn)生的各種形式和各種版本的文檔、程序、數(shù)據(jù)及環(huán)境的集合。這個(gè)定義對應(yīng)GJB3206B是“技術(shù)狀態(tài)”,但內(nèi)涵差異較大,技術(shù)狀態(tài)的主體是“功能特性和物理特性”,而軟件配置的主體是“文檔、程序、數(shù)據(jù)及環(huán)境的集合”,這種差異導(dǎo)致GJB 5235A標(biāo)準(zhǔn)去掉了“軟件配置”術(shù)語定義。
軟件配置項(xiàng)(GJB 5235):為了配置管理的目的而作為一個(gè)單位來看待的軟件成分,通常為軟件配置中的一個(gè)元素。計(jì)算機(jī)軟件配置項(xiàng)(GJB 5235A):能滿足最終使用功能,并被指定作為單個(gè)實(shí)體進(jìn)行配置管理的軟件,簡稱“軟件配置項(xiàng)”。這個(gè)定義對應(yīng)GJB3206B是“技術(shù)狀態(tài)項(xiàng)”,兩個(gè)GJB 5235標(biāo)準(zhǔn)定義差異很大,但GJB 5235A的定義與GJB 3206B較為接近。GJB 5235中的配置項(xiàng)主體是“軟件排至中的一個(gè)元素”,包括“文檔、程序、數(shù)據(jù)及環(huán)境的集合”;GJB 5235A中的配置項(xiàng)主體是“軟件”,就是軟件產(chǎn)品,這也是標(biāo)準(zhǔn)把“配置項(xiàng)”與“配置文件”分開的原因;GJB3206B中的技術(shù)狀態(tài)主體是“產(chǎn)品及其組成部分”。
配置文件(GJB 5235A):規(guī)定配置項(xiàng)的功能特性和物理特性,或從這些內(nèi)容發(fā)展而來的關(guān)于配置項(xiàng)驗(yàn)證、使用、保障和報(bào)廢要求的技術(shù)文件。這個(gè)定義對應(yīng)GJB 3206B是“技術(shù)狀態(tài)文件”并且這個(gè)定義在GJB 5235中沒有,是在GJB 5235A版才出現(xiàn)的。
受控庫(GJB 5235):一個(gè)受控的軟件配置項(xiàng)集合,以便于軟件開發(fā)、運(yùn)行及維護(hù)。配置管理庫(GJB 5235A):受控的計(jì)算機(jī)軟件配置項(xiàng)及其配置文件的集合,以便于軟件開發(fā)、運(yùn)行及維護(hù)。從GJB 5235的“受控庫”變成了GJB 5235A的“配置管理庫”,可以看出兩點(diǎn)變化:① 從兩個(gè)定義的內(nèi)容,GJB 5235的“軟件配置項(xiàng)集合”到GJB 5235A的“軟件配置項(xiàng)及其配置文件的集合”,說明GJB 5235開始區(qū)分配置項(xiàng)和配置文件兩個(gè)概念了;② 從“受控庫”到“配置管理庫”,不只是名稱變了,內(nèi)涵也從“受控庫”擴(kuò)展到了“開發(fā)庫”、“受控庫”和“產(chǎn)品庫”。
02
軟件配置管理過程
依據(jù)GJB 5235A,軟件配置管理的過程包括標(biāo)識、控制、記實(shí)、審核、發(fā)行管理和交付等活動(dòng),相對于GJB3206B,缺少了“策劃”和“驗(yàn)證”環(huán)節(jié),多了“發(fā)行管理和交付”內(nèi)容,以下分別進(jìn)行介紹。
2.1 配置標(biāo)識
基于GJB 5235A,配置標(biāo)識包括四部分:標(biāo)識軟件配置項(xiàng)和配置文件、標(biāo)識基線、建立配置管理庫、進(jìn)展?fàn)顟B(tài)四個(gè)部分,每個(gè)字都懂了,但什具體干什么工作還是不明白,翻譯如下:
1)建立配置控制委員會(huì),類似于GJB 3206B的技術(shù)狀態(tài)管理委員會(huì),從分類分級角度出發(fā),很多企業(yè)建立多層CCB,負(fù)責(zé)不同層級的配置管理工作;
2)識別配置項(xiàng)、配置文件和基線,依據(jù)GJB 5235A的6.1b)條內(nèi)容,選擇功能特性和物理特性能被單獨(dú)管理且有助于達(dá)到最終適用要求的產(chǎn)品或其組成部分作為配置項(xiàng);確定每個(gè)配置項(xiàng)在不同階段的配置文件內(nèi)容(如需求規(guī)格說明書);在軟件生產(chǎn)周期內(nèi)容,應(yīng)建立功能基線、分配基線和產(chǎn)品基線,它們由相應(yīng)配置項(xiàng)的配置文件體現(xiàn)。
3)標(biāo)識配置項(xiàng)、配置文件和配置基線,明確配置項(xiàng)、配置文件和配置基線的標(biāo)識規(guī)則,按規(guī)則進(jìn)行配置項(xiàng)、配置文件和配置基線的標(biāo)識,敲黑板,相對于GJB 3206B,GJB 5235A多了一個(gè)配置基線的標(biāo)識,這個(gè)“標(biāo)識”的內(nèi)涵包括明確基線的受控配置項(xiàng)/配置文件和記錄、納入/批準(zhǔn)基線的規(guī)程、批準(zhǔn)基線的授權(quán)、配置并建立完整基線的規(guī)程、標(biāo)識符以及建立基線所需的工具等。
4)制定配置管理計(jì)劃,相當(dāng)于GJB 3206B中技術(shù)狀態(tài)策劃,包括編制、評審《軟件配置管理計(jì)劃》,將評審后的《軟件配置管理計(jì)劃》納入配置庫管理,并通知有關(guān)的利益相關(guān)方。
5)建立配置管理庫,依據(jù)項(xiàng)目情況確定配置管理環(huán)境,定義配置庫結(jié)構(gòu)(一般分為開發(fā)庫、受控庫、產(chǎn)品庫)并在相應(yīng)庫中定義目錄結(jié)構(gòu),明確三類配置庫的訪問權(quán)限,并且定期備份配置庫內(nèi)容。
2.2 配置控制
基于GJB 5235A,配置控制包括四部分:檢入和檢出控制、更改控制、版本控制、存取控制,內(nèi)容清晰但復(fù)雜,翻譯如下:
1)檢入和檢出控制,參考GJB 5716-2006《軍用軟件開發(fā)庫、受控庫和產(chǎn)品庫通用要求》,軟件配置庫分為開發(fā)庫、受控庫、產(chǎn)品庫,軟件開發(fā)庫由項(xiàng)目組管理,軟件受控庫由研制管理部門(或質(zhì)量管理部門)管理,軟件產(chǎn)品庫由企業(yè)的檔案管理部門管理。① 軟件開發(fā)庫,軟件開發(fā)庫由項(xiàng)目組自行管理,不再贅述。② 軟件受控庫,軟件受控庫入庫內(nèi)容應(yīng)是通過測試或評審的軟件配置項(xiàng)以及組織和顧客認(rèn)可的其他內(nèi)容;在配置項(xiàng)或其配置文件通過評審或確認(rèn)后,提出受控庫入庫申請,經(jīng)受控庫管理負(fù)責(zé)人審查后,執(zhí)行入庫操作;項(xiàng)目基線在受控庫建立后,提出發(fā)布基線申請,經(jīng)相應(yīng)CCB審批后,基線正式發(fā)布。③ 軟件產(chǎn)品庫,軟件產(chǎn)品庫入庫內(nèi)容應(yīng)是提供交付、生產(chǎn)、檢驗(yàn)驗(yàn)收、維護(hù)的軟件產(chǎn)品和其他軟件工作產(chǎn)品;在軟件驗(yàn)收結(jié)束前,提出產(chǎn)品庫入庫申請,經(jīng)組織代表和顧客代表共同審查批準(zhǔn)后(注意,在最新發(fā)布的GJB 4072B-2023《軍用軟件質(zhì)量監(jiān)督要求》標(biāo)準(zhǔn)中,顧客代表在出入庫時(shí)需要簽字),執(zhí)行入庫操作;產(chǎn)品基線在入產(chǎn)品庫經(jīng)審查標(biāo)識、版本并審批后,產(chǎn)品正式發(fā)布。
2)更改控制。配置更改實(shí)施分類控制,分類的方式在GJB 5235A并沒有明確,要求參照GJB 3206,據(jù)此軟件配置更改也分為I類、II類、III類,具體的分類方式參見《學(xué)習(xí) | GJB 3206B-2022系列之8 — 技術(shù)狀態(tài)更改》,此處不再贅述;首先提出配置更改申請,然后評價(jià)配置更改申請的影響,按更改類別不同進(jìn)行審批(敲黑板,按照最新發(fā)布的GJB 5709A-2023《裝備技術(shù)狀態(tài)管理監(jiān)督要求》,對于I類技術(shù)狀態(tài)變更和狀態(tài)鑒定后的II類技術(shù)狀態(tài)更改申請,要求裝備承制單位報(bào)項(xiàng)目管理機(jī)構(gòu)處理,軍事代表監(jiān)督;對于III類技術(shù)狀態(tài)變更和狀態(tài)鑒定前的II類技術(shù)狀態(tài)更改申請,要求裝備承制單位審批,軍事代表監(jiān)督并提出意見,都沒有軍事代表簽署的要求)。審批后實(shí)施配置更改,注意實(shí)施過程中,需要先出庫、再更改、然后驗(yàn)證、最后入庫;通報(bào)處理,要求在批準(zhǔn)更改申請的情況下,應(yīng)通報(bào)哪些使用受已批準(zhǔn)配置更改影響的配置項(xiàng)及配置人員的有關(guān)人員。在未獲批準(zhǔn)的情況下,也應(yīng)通知有關(guān)人員(敲黑板,這是GJB 3206B標(biāo)準(zhǔn)中沒有的內(nèi)容,也是需要向配置管理學(xué)習(xí)的地方);更改結(jié)束后,要編寫軟件配置更改報(bào)告,對納入已建立基線的配置項(xiàng)及其配置文件的配置更改,產(chǎn)生一個(gè)新的基線。
3)版本控制,發(fā)生配置更改后,應(yīng)更新版本號。
4)存取控制,控制不同權(quán)限的人員訪問配置管理庫。
2.3 軟件配置狀態(tài)記實(shí)
基于GJB 5235A,配置狀態(tài)記實(shí)包括三部分:記錄標(biāo)識、跟蹤配置更改、報(bào)告狀態(tài)記實(shí),翻譯如下:
1)記錄標(biāo)識,包括記錄配置項(xiàng)及其配置文件的標(biāo)識和狀態(tài),并且原先版本可恢復(fù);對配置項(xiàng)及配置文件的每次更改時(shí)版本和狀態(tài)進(jìn)行維護(hù);說明配置項(xiàng)、配置文件及其版本號,明確基線的最新版本。
2)跟蹤配置更改,這是GJB3206B沒有的內(nèi)容,也是需要向配置管理學(xué)習(xí)之處,包括跟蹤配置更改申請、跟蹤批準(zhǔn)的配置更改落實(shí)情況,非常有必要,因?yàn)楹芏嗉夹g(shù)狀態(tài)混亂的根源就在于此。
3)報(bào)告狀態(tài)記實(shí),在配置庫的配置項(xiàng)及其配置文件狀態(tài)發(fā)生變化時(shí),應(yīng)對狀態(tài)進(jìn)行統(tǒng)計(jì),包括配置項(xiàng)、配置文件和基線的變更狀態(tài)、各個(gè)版本的記錄及差異等內(nèi)容,形成配置狀態(tài)報(bào)告,并及時(shí)通知利益相關(guān)方。
2.4 軟件配置審核
在GJB 5235A中,只對配置審核進(jìn)行了含糊的描述。在GJB 5000B-2021《軍用軟件能力成熟度模型》的CM2.6:配置審核的類型一般可包括功能配置審核、物理配置審核、配置管理審核(比GJB 3206B多了一個(gè)配置管理審核),其中,物理配置審核是為了評估基線的完整性,主要檢查組成基線的配置項(xiàng)及其配置文件是否完備、相應(yīng)版本是否正確等;功能配置審核是為了審核配置管理系統(tǒng)中配置項(xiàng)的結(jié)構(gòu)和完整性,主要檢查配置項(xiàng)的評審、測試記錄以及與軟件需求的追溯關(guān)系等;配置管理審核是為了確認(rèn)配置管理活動(dòng)與配置管理規(guī)程的一致性,可以由QA結(jié)合項(xiàng)目例行檢查開展。
2.5 軟件的發(fā)行管理和交付
軟件的發(fā)行管理和交付包括處理、存儲、復(fù)制、包裝、交付幾個(gè)部分,內(nèi)容相對簡單,處理主要規(guī)定軟件產(chǎn)品的發(fā)行過程;存儲更多是保證所存儲配置項(xiàng)的完整性;復(fù)制是確保一致且完整地復(fù)制軟件產(chǎn)品;包裝明確了介質(zhì)和標(biāo)識的要求;交付強(qiáng)調(diào)按規(guī)程交付并且留存記錄。
03
GJB 5235與GJB5235A的差異
在GJB 5235A的前言中,明確了本次修訂主要變化內(nèi)容,也是GJB 5235和GJB5235A的主要差異,包括以下內(nèi)容:
1)直接采用了GJB 3206《技術(shù)狀態(tài)管理》中的術(shù)語和定義,增加了“配置文件”術(shù)語和定義;將“受控庫”改為“配置管理庫”;
2)將配置控制涉及的“更改”改為“配置更改”,將“配置評價(jià)”改為“配置審核”;
3)修訂了“4 一般要求”的內(nèi)容,增加了配置管理庫、配置項(xiàng)清單、非開發(fā)軟件配置項(xiàng)等方面的要求;
4)細(xì)化了軟件配置項(xiàng)的選擇、標(biāo)識軟件配置項(xiàng)等方面的內(nèi)容;
5)配置更改申請方面增加了配置更改的類別方面的要求;
6)修改并細(xì)化了記錄標(biāo)識、跟蹤配置更改、軟件配置審核等方面的要求;
7)增加了附錄A《<軟件配置管理計(jì)劃>的正文格式》和附錄B《配置文件和基線》。
這些內(nèi)容都只是明面上的變化,透過這些變化可以看出兩個(gè)觀點(diǎn):
1)GJB 5235A正在與GJB3206保持一致
在GJB 5235A中,① 增加了“配置文件”的術(shù)語和定義,把GJB 5235的“配置項(xiàng)”細(xì)分為“配置項(xiàng)”和“配置文件”兩部分;② 將“配置評價(jià)”改為“配置審核”;③ 增加了配置項(xiàng)選擇的內(nèi)容,配置更改申請?jiān)黾恿伺渲酶念悇e等,都表示GJB 5235A正在逐步與GJB3206保持一致。
2)GJB 5235A關(guān)于基線的定義有點(diǎn)落伍
在GJB 5235A的附錄B.2 不同視角的基線中,產(chǎn)品的功能基線、分配基線和產(chǎn)品基線一般是面向產(chǎn)品的訂購方和總承制方,分承制方只對應(yīng)產(chǎn)品的分配基線和產(chǎn)品基線。當(dāng)然,這是GJB 3206A的觀點(diǎn),GJB 3206B已經(jīng)進(jìn)行了優(yōu)化,增加了面向分承制方的基線分類方式,當(dāng)然,這也可以理解,畢竟GJB 5235A是2021年發(fā)布的,而GJB 3206B是在2022年發(fā)布的。
04
最后的話
軟件配置管理是軟件產(chǎn)品質(zhì)量管理的重要環(huán)節(jié),包括配置標(biāo)識、配置控制、配置狀態(tài)記實(shí)、配置審核、放行管理和交付等活動(dòng),GJB 5235A標(biāo)準(zhǔn)中正在增加越來越多的GJB 3206要素,軟硬件的技術(shù)狀態(tài)管理內(nèi)容正在逐步趨向統(tǒng)一。本文也是從GJB 3206的方式理解軟件配置管理,很多都是個(gè)人理解,不對之處,敬請各位朋友批評指正。