王 妍,董 曦
(揚(yáng)州船用電子儀器研究所,江蘇揚(yáng)州 225101)
使用人工方式或簡單開源軟件配置管理工具(如 SVN、CVS等)進(jìn)行軟件配置管理活動,存在著配置項(xiàng)易丟失、對象版本易失控、出入庫不及時等缺點(diǎn)。因此,以上方式不利于進(jìn)行大型復(fù)雜項(xiàng)目的軟件配置管理操作。而配置管理又是 GJB 5000A—2008標(biāo)準(zhǔn)的重要組成部分,GJB 5000A—2008標(biāo)準(zhǔn)要求在整個項(xiàng)目的軟件生命周期內(nèi)建立并且維護(hù)軟件產(chǎn)品的完整性和可追蹤性。因此,船舶軟件研制企業(yè)在引入Qone工具后,如何使用好其內(nèi)置的配置管理功能模塊進(jìn)行船舶軟件配置管理活動是個值得探究的課題。
Qone工具是一款功能齊全的軟件過程管理平臺,由中科方德公司研制。本文示范的Qone工具版本為5.9,內(nèi)含配置管理功能。
使用配置管理功能首先需進(jìn)行“配置庫關(guān)聯(lián)”操作。“配置庫關(guān)聯(lián)”操作是由系統(tǒng)配置管理員設(shè)置Qone工具與配置庫存儲工具的關(guān)聯(lián)。只有實(shí)現(xiàn)配置庫關(guān)聯(lián)步驟后,才可以對配置管理軟件進(jìn)行出入庫等操作[1]。對庫信息進(jìn)行配置的操作見圖1。

圖1 配置庫信息
GJB 5000A—2008二級CM過程域中專用目標(biāo)SG1“建立基線”下的專用實(shí)踐SP1.2為“建立一個配置管理系統(tǒng)”[2]。該專用實(shí)踐的主要目標(biāo)就是利用建立的配置管理系統(tǒng),更好地對軟件狀態(tài)進(jìn)行控制。
船舶軟件研制單位為了滿足該專用實(shí)踐以及整個CM過程域的要求,可用Qone工具中配置管理模塊實(shí)現(xiàn)其固有的存儲、訪問、變更、記錄配置項(xiàng)的配置管理操作。然后在此基礎(chǔ)上,定義整個船舶軟件生命周期內(nèi)Qone工具配置管理操作規(guī)程。將工具與規(guī)程結(jié)合,以此建立一套科學(xué)的船舶軟件配置管理系統(tǒng)方案。
所有在生命周期內(nèi)的船舶軟件項(xiàng)目必須先建立一種管理機(jī)制,即所有軟件在開發(fā)庫中研制和修改、在軟件受控庫中版本受控、在軟件產(chǎn)品庫中進(jìn)行發(fā)布。一旦變更需要分層級操作,比如:船舶軟件在經(jīng)過一定條件(如合格性測試等)之后,需入受控庫進(jìn)行版本固化,如果受控庫中產(chǎn)品需要變更,則首先需要審批后出庫至開發(fā)庫中進(jìn)行修改,然后再次入受控庫。產(chǎn)品庫中操作亦是如此。
“三庫”之間關(guān)系見圖2。

圖2 “三庫”關(guān)系圖
軟件開發(fā)庫可以設(shè)立在開發(fā)人員所在單位建設(shè)的開發(fā)網(wǎng)中,軟件受控庫和軟件產(chǎn)品庫則建立在Qone工具中。此處需要說明的是,Qone工具并不是在物理上部署出三庫,而是從邏輯上加以區(qū)分。Qone工具的配置管理功能及軟件受控庫、軟件產(chǎn)品庫的操作界面見圖3。

圖3 配置管理功能界面
項(xiàng)目組人員日常開發(fā)中所涉及的軟件代碼、軟件文檔等均應(yīng)在存放于開發(fā)庫中;研制過程的各個階段性版本應(yīng)保存在受控庫中;經(jīng)過確認(rèn)的階段性版本或最終版本轉(zhuǎn)入產(chǎn)品庫。軟件產(chǎn)品入產(chǎn)品庫后,受控庫內(nèi)容封存,除變更外,不再進(jìn)行出入庫操作,僅供項(xiàng)目有關(guān)人員檢索和查閱。產(chǎn)品庫建立后,將產(chǎn)品庫內(nèi)容刻錄光盤,連同紙質(zhì)文檔存入檔案室以備份。
配置項(xiàng)的內(nèi)容包括船舶軟件整個研制生命周期內(nèi)的所有工作產(chǎn)品集,如:軟件任務(wù)書、軟件需求規(guī)格說明等文檔;軟件源代碼、目標(biāo)代碼等工作中間過程及產(chǎn)品;開發(fā)工具、外協(xié)供方產(chǎn)品等相關(guān)內(nèi)容[3]。因此在“三庫”中建立1個架構(gòu)清晰、方便管理、易于查詢的目錄結(jié)構(gòu)顯得尤為重要。
開發(fā)庫的目錄結(jié)構(gòu)一般根據(jù)開發(fā)人員特點(diǎn)而定,不做特別要求。
受控庫的目錄結(jié)構(gòu)通常與船舶軟件開發(fā)階段的3個基線(即功能、分配和產(chǎn)品基線)相一致,見圖 4。如單位有特定或增加的其他基線,可以在受控庫中增加相應(yīng)的目錄,目錄下的存放內(nèi)容必須符合該基線的定義和要求。

圖4 受控庫目錄結(jié)構(gòu)示意圖
產(chǎn)品庫中存放交付版本的各項(xiàng)工作產(chǎn)品,可按產(chǎn)品種類劃分目錄,見圖5。

圖5 產(chǎn)品庫目錄結(jié)構(gòu)示意圖
配置標(biāo)識是在整個軟件生命周期內(nèi)各軟件配置項(xiàng)在配置管理系統(tǒng)中的唯一標(biāo)識[4]。因此,配置標(biāo)識應(yīng)當(dāng)遵循唯一性、可追溯性、可擴(kuò)充性的原則。本系統(tǒng)中,配置標(biāo)識包括基線配置標(biāo)識、文檔配置標(biāo)識和代碼配置標(biāo)識。
基線配置標(biāo)識按照船舶研制項(xiàng)目代號、船舶軟件配置項(xiàng)名稱、分支號、基線類型和版本號進(jìn)行標(biāo)識,見表1。

表1 基線配置標(biāo)識
如XXX項(xiàng)目的XYZ配置項(xiàng)000分支的功能基線的基線配置標(biāo)識可以標(biāo)識成為XXX_XYZ_000_FBL_V1.0.00,此時,該基線的版本為V1.0.00。文檔配置標(biāo)識按照船舶研制項(xiàng)目代號、船舶軟件配置項(xiàng)名稱、分支號、文檔類型和版本號進(jìn)行標(biāo)識,見表2。

表2 文檔配置標(biāo)識
如XXX項(xiàng)目的XYZ配置項(xiàng)000分支的軟件需求規(guī)格說明的配置項(xiàng)標(biāo)識可以標(biāo)識成為XXX_XYZ_000_SRS_V1.0.00,此時,該文檔的版本為V1.0.00。代碼配置標(biāo)識按照船舶研制項(xiàng)目代號、船舶軟件配置項(xiàng)名稱、分支號、代碼類型和版本號進(jìn)行標(biāo)識,見表3。

表3 代碼配置標(biāo)識
如XXX項(xiàng)目的XYZ配置項(xiàng)000分支的軟件源代碼的配置項(xiàng)標(biāo)識可以標(biāo)識成為XXX_XYZ_000_SC_V1.0.00,此時,該源代碼的版本為V1.0.00。
配置變更控制其主要目的是為了嚴(yán)格控制受控庫或產(chǎn)品庫中配置項(xiàng)的任何一次變更,保證配置項(xiàng)的狀態(tài)可控。
配置項(xiàng)如需變更,變更申請人需如實(shí)填寫變更內(nèi)容、變更理由、變更影響,并提交項(xiàng)目SCCB審批[5]。項(xiàng)目SCCB收到變更申請后,需要對變更進(jìn)行影響域客觀分析,主要分析此次變更對該工作產(chǎn)品和關(guān)聯(lián)的工作產(chǎn)品的整個人力、物力、財力、進(jìn)度、難度等影響。記錄影響分析結(jié)果,并給出變更級別。項(xiàng)目SCCB負(fù)責(zé)人根據(jù)影響分析意見,確定變更級別、變更方案及內(nèi)容,審批意見為同意變更或不同意變更。
若受控庫變更申請被批準(zhǔn),由項(xiàng)目配置管理員從受控庫中取出被批準(zhǔn)更改的配置項(xiàng),將配置項(xiàng)置于開發(fā)庫,開發(fā)人員實(shí)施變更。產(chǎn)品庫變更得到批準(zhǔn)后,變更配置項(xiàng)應(yīng)出產(chǎn)品庫、入受控庫、出受控庫、入開發(fā)庫,其中出產(chǎn)品庫、出受控庫審批手續(xù)可在一張出庫單上完成,入受控庫、入開發(fā)庫審批手續(xù)可在一張出庫單上完成。
變更活動通過驗(yàn)證后,變更實(shí)施人在Qone中提交入庫申請,得到批準(zhǔn)后重新提交入受控庫,Qone工具對該次變更自動進(jìn)行記錄,更新配置項(xiàng)的狀態(tài),關(guān)閉此次變更。基線配置項(xiàng)(如軟件研制任務(wù)書、軟件需求規(guī)格說明等)變更時,應(yīng)實(shí)施新的基線建立和發(fā)布相關(guān)過程。
配置審核是檢查并確認(rèn)所產(chǎn)生的待審核產(chǎn)品符合制定的標(biāo)準(zhǔn)或需求,維護(hù)基線的完整性和正確性[6]。
配置審核分為3種類型:
1)物理配置審核。配置項(xiàng)入庫、基線建立前需進(jìn)行物理配置審核,其目的是驗(yàn)證構(gòu)造的配置項(xiàng)是否符合定義它的技術(shù)文檔,并保證軟件交付版本中已進(jìn)行了所有已批準(zhǔn)的更改,所有要求的軟件項(xiàng)目、數(shù)據(jù)和文檔都包含其中。物理配置審核一般是從齊套性上去判別是否符合要求。
2)功能配置審核。功能配置審核顧名思義就是從功能和性能上驗(yàn)證配置項(xiàng)的特性是否滿足需求,并且包含一套完備的操作支持文檔。產(chǎn)品基線建立前應(yīng)審核軟件產(chǎn)品的功能特性是否達(dá)到功能基線、分配基線規(guī)定的需求。產(chǎn)品基線配置項(xiàng)變更涉及功能、性能、接口時,在基線版本升級前需執(zhí)行功能配置審核。功能配置審核主要從正確性上判別是否符合要求。
3)配置管理審核。船舶軟件研制單位的配置管理組長在一定周期內(nèi)或某個合適的時間點(diǎn),同單位的質(zhì)量保證組、配置管理組成員組成臨時審核小組,對配置管理系統(tǒng)內(nèi)的軟件項(xiàng)目進(jìn)行配置管理審核。主要確認(rèn)項(xiàng)目配置管理員的工作是否合格、項(xiàng)目配置管理記錄是否完整、項(xiàng)目的配置項(xiàng)是否準(zhǔn)確。
配置審核的結(jié)果應(yīng)當(dāng)以配置審核報告的形式提供,審核報告內(nèi)容包括審核日期、審核人、項(xiàng)目名稱、配置項(xiàng)名稱、審核類型、被審核產(chǎn)品等。Qone工具中配置審核報告見圖6。

圖6 配置審核報告
配置管理過程域是 GJB 5000A—2008二級非常重要的一個支持類過程域,配置管理工作的好壞在一定程度上決定了軟件項(xiàng)目的成功與否。本文依托軟件項(xiàng)目管理平臺Qone工具,結(jié)合船舶軟件研制企業(yè)的實(shí)際工作情況,設(shè)計了一種船舶軟件配置管理系統(tǒng)。按照文中的系統(tǒng)架構(gòu)和配置管理活動實(shí)施方案,既可覆蓋GJB 5000A—2008配置管理過程域的主要活動,也可滿足船舶軟件研制單位本地化的實(shí)施要求。