王旗林
(中國(guó)航發(fā)湖南動(dòng)力機(jī)械研究所,湖南株洲 412002)
健康管理軟件是航空發(fā)動(dòng)機(jī)健康管理系統(tǒng)的重要組成部分,軟件產(chǎn)品的質(zhì)量直接關(guān)系到發(fā)動(dòng)機(jī)狀態(tài)監(jiān)視和故障診斷結(jié)果的準(zhǔn)確性,進(jìn)一步影響發(fā)動(dòng)機(jī)的外場(chǎng)維護(hù)策略和飛行安全[1]。而隨著軟件功能需求的不斷增加,軟件架構(gòu)越發(fā)復(fù)雜,開發(fā)難度越來(lái)越大,如何通過(guò)工程化方法有效地管理和規(guī)范軟件開發(fā)過(guò)程,避免開發(fā)活動(dòng)混亂,保證軟件工作產(chǎn)品全生存周期的完整性、一致性和可追溯性,是目前各航空發(fā)動(dòng)機(jī)科研院所健康管理軟件研制任務(wù)中面臨的實(shí)際問題。
配置管理是在軟件全生存周期內(nèi),通過(guò)技術(shù)及行政手段對(duì)軟件產(chǎn)品及其開發(fā)過(guò)程進(jìn)行控制、規(guī)范的一系列措施和過(guò)程[2]。GJB5000B軍用軟件能力成熟度模型[3]給出了配置管理實(shí)踐域需要達(dá)到的目標(biāo)和實(shí)踐要求,但沒有給出具體的執(zhí)行方法。本文針對(duì)航空發(fā)動(dòng)機(jī)健康管理軟件特點(diǎn)及開發(fā)過(guò)程中暴露的問題,以GJB5000B軍用軟件能力成熟度模型中配置管理(Configuration Management,簡(jiǎn)稱CM)實(shí)踐域的要求為理論指導(dǎo),結(jié)合2022年中國(guó)航發(fā)動(dòng)研所軟件研制能力成熟度二級(jí)資質(zhì)取證的工作實(shí)踐,總結(jié)了航空發(fā)動(dòng)機(jī)健康管理軟件配置管理的一套有效方法。
2003年,總裝備部根據(jù)SEI的CMM軟件能力成熟度模型標(biāo)準(zhǔn),制定了GJB 5000軍用軟件能力成熟模型,2008年,又以CMMI for Development V1.2為主要參考藍(lán)本,對(duì)GJB 5000進(jìn)行了修訂,發(fā)布了GJB 5000A軍用軟件研制能力成熟度模型[4]。GJB5000B自2018年啟動(dòng)修訂,總結(jié)了國(guó)內(nèi)各家軍工單位GJB5000A的實(shí)踐經(jīng)驗(yàn),吸收國(guó)外CMMI2.0的先進(jìn)思想,至2021年12月獲批發(fā)布。GJB5000A在航空、航天、兵器等軍工科研院所已得到廣泛推廣和應(yīng)用,以提高軍工企業(yè)軟件研制能力,GJB5000B自2022年3月開始實(shí)施,至2024年2月為標(biāo)準(zhǔn)換版過(guò)渡期。按照中央軍委裝備發(fā)展部要求,2024年3月后,將全部貫徹實(shí)施GJB 5000B標(biāo)準(zhǔn),并按此進(jìn)行軍用軟件研制能力評(píng)價(jià)。
軍用軟件能力成熟度模型是軍用軟件全生存周期過(guò)程技術(shù)和管理最佳實(shí)踐的集合。這些實(shí)踐按照實(shí)踐域進(jìn)行分類,指導(dǎo)組織實(shí)施精細(xì)化過(guò)程管理,不斷改進(jìn)組織過(guò)程,提高質(zhì)量和過(guò)程績(jī)效,提升顧客滿意度[3]。模型分為5個(gè)等級(jí),分別為一級(jí)初始級(jí)、二級(jí)規(guī)范級(jí)、三級(jí)全面級(jí)、四級(jí)量化級(jí)和五級(jí)卓越級(jí),逐級(jí)遞進(jìn)。GJB5000B適用于軍用軟件論證、研制、試驗(yàn)和維護(hù)能力的評(píng)價(jià)和過(guò)程改進(jìn)。相比于其前身GJB5000A“軍用軟件研制能力成熟度模型”,GJB5000B“軍用軟件能力成熟度模型”將適用范圍從研制擴(kuò)展到全生存周期,對(duì)成熟度等級(jí)、實(shí)踐域名稱及其內(nèi)容等進(jìn)行了本地化改進(jìn),更加通俗易懂。通過(guò)新增、合并、調(diào)整,將原來(lái)的22個(gè)過(guò)程域更新為21個(gè)實(shí)踐域,劃分為組織管理、項(xiàng)目管理、工程、支持4類實(shí)踐域。
配置管理屬于支持類實(shí)踐域,來(lái)源于GJB5000A中的配置管理過(guò)程域。配置管理的目的是通過(guò)配置標(biāo)識(shí)、配置控制、配置狀態(tài)記實(shí)、配置審核,建立并維護(hù)工作產(chǎn)品的完整性和一致性,以具備向顧客提供正確版本工作產(chǎn)品的能力。配置管理實(shí)踐域共分1個(gè)等級(jí)(成熟度二級(jí))和6個(gè)實(shí)踐,如表1所示。
表1 配置管理實(shí)踐域等級(jí)說(shuō)明表
航空發(fā)動(dòng)機(jī)健康管理軟件是健康管理系統(tǒng)的核心部分,通常包括機(jī)載嵌入式軟件和地面應(yīng)用分析軟件。機(jī)載軟件對(duì)發(fā)動(dòng)機(jī)運(yùn)行數(shù)據(jù)進(jìn)行記錄、分析,實(shí)時(shí)監(jiān)視發(fā)動(dòng)機(jī)健康狀態(tài),對(duì)影響飛行安全的故障或異常進(jìn)行告警。地面應(yīng)用分析軟件,下載機(jī)載存儲(chǔ)數(shù)據(jù),結(jié)合發(fā)動(dòng)機(jī)歷史數(shù)據(jù)和人工錄入維護(hù)數(shù)據(jù),對(duì)發(fā)動(dòng)機(jī)故障進(jìn)行深入分析和預(yù)測(cè),對(duì)發(fā)動(dòng)機(jī)的性能衰減進(jìn)行趨勢(shì)分析。
航空發(fā)動(dòng)機(jī)健康管理系統(tǒng)為滿足飛行用戶、維護(hù)用戶、機(jī)群管理用戶、技術(shù)支持用戶等各方使用要求,軟件整體復(fù)雜度高,研制周期長(zhǎng),因需求變化而引起的變更頻繁。且健康管理軟件涉及發(fā)動(dòng)機(jī)氣路、振動(dòng)、滑油、壽命、運(yùn)維等多專業(yè)、多學(xué)科人員間的協(xié)調(diào)合作。人員能力水平,專業(yè)技術(shù)成熟度參差不齊,難免產(chǎn)生某些缺陷和錯(cuò)誤,導(dǎo)致軟件開發(fā)過(guò)程混亂,代碼版本修改頻繁,文檔內(nèi)容錯(cuò)漏、軟件維護(hù)困難等一系列問題,無(wú)法保證軟件工作產(chǎn)品全生存周期的可追溯性、正確性、完整性和一致性[5],給軟件開發(fā)活動(dòng)和項(xiàng)目管理過(guò)程帶來(lái)一定的困難,進(jìn)而影響軟件產(chǎn)品的質(zhì)量和開發(fā)進(jìn)度。目前,各軍用航空發(fā)動(dòng)機(jī)型號(hào)均要求裝備健康管理系統(tǒng),且通過(guò)軟件來(lái)實(shí)現(xiàn)的功能越來(lái)越多,對(duì)軟件質(zhì)量和可靠性的要求不斷提高,為避免軟件研制過(guò)程混亂,提高軟件產(chǎn)品的可維護(hù)性,實(shí)現(xiàn)有效的軟件技術(shù)狀態(tài)全生存周期管理,必須引入工程化的軟件配置管理方法。
依據(jù)GJB5000B配置管理實(shí)踐域要求,除設(shè)置項(xiàng)目配置管理人員和組織及配置管理人員外,組織應(yīng)成立配置控制委員會(huì)(CCB),對(duì)配置及其管理具有決策權(quán)限和職責(zé)。配置控制委員會(huì)一般由來(lái)自不同領(lǐng)域的項(xiàng)目利益相關(guān)方的代表組成,而且有能力在管理上作出承諾,對(duì)提出的配置項(xiàng)的變更進(jìn)行評(píng)價(jià)、批準(zhǔn)或否決[6]。
項(xiàng)目建立軟件配置庫(kù)(開發(fā)庫(kù)、受控庫(kù)、產(chǎn)品庫(kù)),用來(lái)對(duì)軟件配置項(xiàng)進(jìn)行入庫(kù)、訪問、出庫(kù)、維護(hù)、更改、發(fā)布、備份等活動(dòng)實(shí)施管理,以確保軟件產(chǎn)品的正確性、完整性、可控性和可追溯性。
在軟件項(xiàng)目立項(xiàng)后,軟件負(fù)責(zé)人組織項(xiàng)目軟件組人員建立軟件開發(fā)庫(kù),內(nèi)容包括項(xiàng)目軟件開發(fā)過(guò)程中產(chǎn)生的工作產(chǎn)品和軟件過(guò)程管理數(shù)據(jù),包括過(guò)程記錄表單、出入庫(kù)單等。項(xiàng)目配置管理人員按照項(xiàng)目標(biāo)準(zhǔn)規(guī)范要求建立軟件受控庫(kù),用于存放項(xiàng)目軟件開發(fā)過(guò)程中產(chǎn)生的不同控制等級(jí)的配置項(xiàng)及基線,并為項(xiàng)目軟件組成員分配合適的受控庫(kù)權(quán)限,將權(quán)限生成結(jié)果告知項(xiàng)目軟件組成員及項(xiàng)目質(zhì)量保證人員。組織級(jí)配置管理人員建立軟件產(chǎn)品庫(kù)并設(shè)置產(chǎn)品庫(kù)權(quán)限。產(chǎn)品庫(kù)用于存放在完成系統(tǒng)測(cè)試后作為最終交付物或等待用戶現(xiàn)場(chǎng)安裝運(yùn)行的軟件產(chǎn)品。在項(xiàng)目的實(shí)際運(yùn)行中,配置管理人員可根據(jù)需要修改配置庫(kù)目錄結(jié)構(gòu)和人員權(quán)限,以及對(duì)受控庫(kù)進(jìn)行備份。
項(xiàng)目配置管理人員與軟件負(fù)責(zé)人根據(jù)《軟件開發(fā)計(jì)劃》及項(xiàng)目應(yīng)遵循的標(biāo)準(zhǔn)、規(guī)范、約定要求編制《軟件配置管理計(jì)劃》,確定將置于配置管理之下的配置項(xiàng)(包括各類文檔、源代碼、執(zhí)行程序以及各類數(shù)據(jù)等),明確配置項(xiàng)納入配置管理的時(shí)機(jī)和配置庫(kù)的人員訪問權(quán)限,并根據(jù)產(chǎn)品開發(fā)和交付的要求定義將建立的基線(包括功能基線、分配基線和產(chǎn)品基線)及其包含的配置項(xiàng)和基線建立時(shí)機(jī)。項(xiàng)目配置管理人員為每個(gè)配置項(xiàng)和基線分配唯一標(biāo)識(shí),根據(jù)軍用航空發(fā)動(dòng)機(jī)健康管理軟件研制任務(wù)特點(diǎn),結(jié)合GJB5000B中軟件配置項(xiàng)分級(jí)管理和分級(jí)受控要求,配置項(xiàng)(或基線)標(biāo)識(shí)按圖1格式進(jìn)行定義,包含軟件代號(hào)、研制階段、配置項(xiàng)(基線)簡(jiǎn)號(hào),版本標(biāo)識(shí)等重要特征。通過(guò)組織評(píng)審后的《軟件配置管理計(jì)劃》納入受控庫(kù)進(jìn)行管理。
圖1 標(biāo)識(shí)定義格式
配置項(xiàng)出入庫(kù)及變更控制是配置管理活動(dòng)中的重要內(nèi)容,需要配置管理人員、軟件開發(fā)人員及測(cè)試人員共同協(xié)作。
(1)配置項(xiàng)入庫(kù)。入庫(kù)申請(qǐng)人填寫并提交“入庫(kù)申請(qǐng)單”,提出配置項(xiàng)入庫(kù)申請(qǐng)。若配置項(xiàng)入受控庫(kù),由項(xiàng)目配置管理人員執(zhí)行物理配置審核,執(zhí)行配置項(xiàng)入受控庫(kù)操作;若配置項(xiàng)入產(chǎn)品庫(kù),由組織級(jí)配置管理人員執(zhí)行物理配置審核,執(zhí)行配置項(xiàng)入產(chǎn)品庫(kù)操作。對(duì)要進(jìn)入軟件產(chǎn)品庫(kù)的配置項(xiàng),需軟件驗(yàn)收通過(guò)后才能將配置項(xiàng)入庫(kù)。軟件開發(fā)庫(kù)由項(xiàng)目軟件開發(fā)人員在軟件研制過(guò)程中內(nèi)部控制維護(hù)。
(2)配置項(xiàng)出庫(kù)。出庫(kù)申請(qǐng)人填寫并提交“出庫(kù)申請(qǐng)單”,提出配置項(xiàng)出庫(kù)申請(qǐng),經(jīng)配置控制委員會(huì)批準(zhǔn)后,由項(xiàng)目軟件配置管理人員執(zhí)行配置項(xiàng)出受控庫(kù)操作。軟件開發(fā)階段,軟件產(chǎn)品庫(kù)只進(jìn)行配置項(xiàng)入庫(kù)操作,不進(jìn)行配置項(xiàng)出庫(kù)。
(3)配置項(xiàng)變更。項(xiàng)目軟件組成員根據(jù)發(fā)現(xiàn)的問題情況填寫“問題報(bào)告單”內(nèi)容,明確需要變更的配置項(xiàng)、變更原因、影響范圍分析及修改建議。軟件負(fù)責(zé)人組織相關(guān)人員進(jìn)行變更影響分析,主要包括管理影響分析和技術(shù)影響分析。管理影響分析主要分析變更所需的各種資源,包括人力、時(shí)間、設(shè)備等物質(zhì)條件,同時(shí)還要分析變更對(duì)項(xiàng)目進(jìn)度、內(nèi)外承諾的影響,以及可能引入的風(fēng)險(xiǎn);技術(shù)影響分析主要對(duì)軟件變更前后的功能、性能、狀態(tài)進(jìn)行比較。由軟件負(fù)責(zé)人指定的修復(fù)人填寫“出庫(kù)申請(qǐng)單”,對(duì)出庫(kù)配置項(xiàng)進(jìn)行修改,指定驗(yàn)證人進(jìn)行驗(yàn)證或確認(rèn),確保配置項(xiàng)的功能和性能滿足要求,且變更未造成意外影響。驗(yàn)證方法有單人復(fù)審、會(huì)議評(píng)審、回歸測(cè)試等方式。完成驗(yàn)證后,變更申請(qǐng)人發(fā)起配置項(xiàng)入庫(kù)申請(qǐng)流程。軟件負(fù)責(zé)人跟蹤變更活動(dòng)流程直至關(guān)閉。
軟件項(xiàng)目基線是在軟件項(xiàng)目生存周期中一個(gè)特定時(shí)刻正式指定的配置信息,至少包括功能基線、分配基線和產(chǎn)品基線。基線往往是軟件開發(fā)階段的各個(gè)里程碑[2],每個(gè)基線都是下一步工作的基礎(chǔ),并且只有通過(guò)更改控制過(guò)程才能進(jìn)行修改。軟件產(chǎn)品基線所包括的配置項(xiàng)與軟件研制任務(wù)書中要求交付給用戶的交付物保持一致,產(chǎn)品基線下所有配置項(xiàng)均應(yīng)納入產(chǎn)品庫(kù)。建立產(chǎn)品基線時(shí),軟件測(cè)試人員應(yīng)對(duì)納入產(chǎn)品庫(kù)的配置項(xiàng)進(jìn)行功能配置審核。在用戶無(wú)額外交付物要求的情況下,各基線包含的最小集如表2所示。
表2 基線包含的最小集
項(xiàng)目建立的基線種類及基線構(gòu)成的配置項(xiàng),建立時(shí)機(jī)在軟件配置管理計(jì)劃中明確[7]。按照計(jì)劃節(jié)點(diǎn)要求,當(dāng)某條基線的所有配置項(xiàng)已納入配置管理后,軟件負(fù)責(zé)人填寫“基線建立和發(fā)布申請(qǐng)單”,申請(qǐng)建立功能基線、分配基線或產(chǎn)品基線。經(jīng)配置控制委員會(huì)審批通過(guò)后,項(xiàng)目配置管理人員負(fù)責(zé)創(chuàng)建功能基線、分配基線或產(chǎn)品基線并告知軟件負(fù)責(zé)人,項(xiàng)目軟件組成員、項(xiàng)目質(zhì)量保證人員基線在庫(kù)中存放的位置及訪問權(quán)限。
依據(jù)《軟件配置管理計(jì)劃》,對(duì)納入配置管理的工作產(chǎn)品進(jìn)行審核,以保持配置項(xiàng)、基線、變更內(nèi)容的完整性、一致性和正確性,驗(yàn)證配置項(xiàng)是否符合規(guī)定的標(biāo)準(zhǔn)或需求。
(1)物理配置審核。項(xiàng)目配置管理人員在配置項(xiàng)入受控庫(kù)時(shí),執(zhí)行物理配置審核,組織級(jí)配置管理人員在配置項(xiàng)入產(chǎn)品庫(kù)時(shí),執(zhí)行物理配置項(xiàng)審核。物理配置審核包括配置項(xiàng)標(biāo)識(shí)、基線的完整性和正確性,審核結(jié)果在“物理配置檢查單”中記錄。
(2)功能配置審核。在建立產(chǎn)品基線時(shí),有軟件測(cè)試人員進(jìn)行功能配置審核,功能配置審核的目的是驗(yàn)證配置項(xiàng)的所有功能特性是否已達(dá)到其功能基線文件中所規(guī)定的需要,軟件文檔是否齊全且內(nèi)容格式符合項(xiàng)目標(biāo)準(zhǔn)規(guī)范(如GJB 438B等)要求。審核結(jié)果在“功能配置檢查單”中記錄。對(duì)于審核發(fā)現(xiàn)的問題,由軟件負(fù)責(zé)人負(fù)責(zé)跟蹤解決。
項(xiàng)目配置管理員在配置項(xiàng)進(jìn)入受控庫(kù)時(shí)開始記錄配置項(xiàng)出、入庫(kù)以及更改狀態(tài),基線建立、標(biāo)識(shí)、版本變更信息并填寫《軟件配置項(xiàng)狀態(tài)記錄表》,完成后存入開發(fā)庫(kù)。所級(jí)配置管理人員在配置項(xiàng)進(jìn)入產(chǎn)品庫(kù)時(shí)開始記錄配置項(xiàng)入庫(kù)以及更改狀態(tài),基線建立、標(biāo)識(shí)、版本變更信息并填寫《軟件配置項(xiàng)狀態(tài)記錄表》,完成后存入開發(fā)庫(kù)。項(xiàng)目配置管理人員在階段會(huì)議或里程碑會(huì)議前根據(jù)《軟件配置項(xiàng)狀態(tài)記錄表》編寫《軟件配置狀態(tài)報(bào)告》,并發(fā)送給軟件負(fù)責(zé)人、項(xiàng)目軟件組成員、項(xiàng)目質(zhì)量保證人員,以便查看配置項(xiàng)最新狀態(tài)。
在項(xiàng)目軟件驗(yàn)收前,項(xiàng)目配置管理員根據(jù)配置管理過(guò)程中的各項(xiàng)記錄總結(jié)項(xiàng)目軟件配置管理工作,編寫《軟件配置管理報(bào)告》,納入配置管理。
本文總結(jié)的航空發(fā)動(dòng)機(jī)健康管理軟件配置管理方法,能夠規(guī)范軟件項(xiàng)目的開發(fā)過(guò)程,提高軟件開發(fā)團(tuán)隊(duì)工作效率,降低軟件開發(fā)成本,對(duì)組織提高軟件研制能力和過(guò)程管理水平具有重要意義,該方法滿足GJB5000B標(biāo)準(zhǔn)的要求,為其他軍工軟件的研制工作提供技術(shù)參考。