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

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

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

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

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

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

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

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

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

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