鮑冬梅, 馬 恩
(中國(guó)航發(fā)商用航空發(fā)動(dòng)機(jī)有限責(zé)任公司, 上海 201108)
自1992年以來(lái),全球的航空業(yè)和合格審定機(jī)構(gòu)已經(jīng)將DO-178B用作機(jī)載系統(tǒng)以及設(shè)備合格審定中軟件批準(zhǔn)的適航性符合驗(yàn)證方法,2013年7月美國(guó)聯(lián)邦航空局(Federal Aviation Administration,FAA)明確了新開(kāi)發(fā)軟件適航標(biāo)準(zhǔn)由DO-178B升級(jí)為DO-178C[1]。DO-178C是經(jīng)典軟件工程化研制體系在民用航空發(fā)動(dòng)機(jī)軟件產(chǎn)品研制中的具體實(shí)施要求,給出了民用航空發(fā)動(dòng)機(jī)控制系統(tǒng)軟件的開(kāi)發(fā)過(guò)程,標(biāo)準(zhǔn)要求所有關(guān)鍵軟件研制數(shù)據(jù)都必須納入構(gòu)型管理,并提出了構(gòu)型管理的目標(biāo)和活動(dòng),是民用航空發(fā)動(dòng)機(jī)軟件產(chǎn)品研制過(guò)程中實(shí)施構(gòu)型管理活動(dòng)的主要依據(jù)。
DO-178C對(duì)軟件構(gòu)型管理主要包括構(gòu)型標(biāo)識(shí)、基線確定、問(wèn)題報(bào)告、追蹤和糾正、變更控制以及軟件產(chǎn)品(包括相關(guān)軟件生命周期數(shù)據(jù))歸檔等。
軟件構(gòu)型管理是DO-178C中規(guī)定的軟件綜合過(guò)程的活動(dòng)之一,其目標(biāo)[1]包括以下9項(xiàng):
1)每一個(gè)構(gòu)型項(xiàng)及其后續(xù)版本都應(yīng)清楚地進(jìn)行標(biāo)識(shí),確保為構(gòu)型項(xiàng)的控制和參考建立一個(gè)基準(zhǔn)。
2)應(yīng)為軟件生命周期過(guò)程的活動(dòng)確定基線,并允許在構(gòu)型項(xiàng)之間引用、控制和跟蹤。
3)問(wèn)題報(bào)告過(guò)程應(yīng)記錄不符合軟件計(jì)劃和標(biāo)準(zhǔn)的過(guò)程,記錄軟件生命周期過(guò)程中輸出數(shù)據(jù)的缺失或者不足,以及記錄軟件產(chǎn)品的異常狀態(tài),并且確保這些問(wèn)題得到了解決。
4)變更控制應(yīng)在軟件生命周期內(nèi)為變更提供記錄、評(píng)估、解決方案和批準(zhǔn)。
5)變更評(píng)審應(yīng)確保問(wèn)題和更改得到了評(píng)估、批準(zhǔn)或否決,批準(zhǔn)的更改得以實(shí)施,基于軟件計(jì)劃過(guò)程中已定義的問(wèn)題報(bào)告及變更控制方法,為受影響的過(guò)程提供反饋。
6)狀態(tài)統(tǒng)計(jì)應(yīng)為軟件生命周期過(guò)程中的構(gòu)型標(biāo)識(shí)、基線、問(wèn)題報(bào)告和變更控制等構(gòu)型管理提供數(shù)據(jù)。
7)歸檔和檢索應(yīng)確保與軟件產(chǎn)品相關(guān)的軟件生命周期數(shù)據(jù)在需要復(fù)制、重現(xiàn)、重新測(cè)試和修改軟件產(chǎn)品的情況下可以被恢復(fù)。除了歸檔與檢索之外,發(fā)布活動(dòng)的目的是確保只有經(jīng)過(guò)批準(zhǔn)的軟件才可以被使用,尤其是軟件制造時(shí)。
8)軟件加載控制應(yīng)確保可執(zhí)行目標(biāo)碼和參數(shù)數(shù)據(jù)項(xiàng)文件(如有)在加載到系統(tǒng)和設(shè)備時(shí)得到合適的保護(hù)。
9)軟件生命周期環(huán)境控制應(yīng)確保產(chǎn)生軟件所使用的工具是確定、受控和可檢索的。
DO-178C對(duì)構(gòu)型標(biāo)識(shí)的要求包括:為軟件生命周期數(shù)據(jù)、軟件產(chǎn)品的每一個(gè)構(gòu)型項(xiàng)及組成一個(gè)軟件產(chǎn)品的構(gòu)型項(xiàng)組合確定構(gòu)型標(biāo)識(shí);任何構(gòu)型項(xiàng)在使用前、加載前都應(yīng)被標(biāo)識(shí);軟件產(chǎn)品外場(chǎng)加載時(shí),其產(chǎn)品標(biāo)識(shí)應(yīng)能由物理檢查(如部件號(hào)銘牌檢查)確定[2-3]。
我們根據(jù)控制系統(tǒng)軟件研制過(guò)程中產(chǎn)生的輸出物的類型,將其分為文檔類構(gòu)型項(xiàng)、模型類構(gòu)型項(xiàng)、代碼類構(gòu)型項(xiàng),對(duì)這幾類構(gòu)型項(xiàng)分別定義了標(biāo)識(shí)規(guī)則,其中文檔類構(gòu)型項(xiàng)直接利用了已有的文件編號(hào)規(guī)定;模型類和代碼類直接使用其名稱作為構(gòu)型標(biāo)識(shí)。另外定義了包含所有這些構(gòu)型項(xiàng)的整個(gè)軟件產(chǎn)品的標(biāo)識(shí),可以滿足軟件研制過(guò)程中對(duì)這些構(gòu)型項(xiàng)生成、變更控制、追溯、受控、使用、加載的需求。
DO-178C對(duì)基線和可追溯性的要求包括:為合格審定的構(gòu)型項(xiàng)確定基線,并保證基線內(nèi)容的完整;明確基線的建立流程,并且基于已建立的基線重新建立基線時(shí)必須進(jìn)行變更控制;基線與其派生的基線之間應(yīng)該建立追溯;構(gòu)型項(xiàng)與其派生的構(gòu)型項(xiàng)之間應(yīng)建立追溯;可以設(shè)置中間基線幫助控制軟件生命周期過(guò)程的活動(dòng)。
我們調(diào)研了其他院所的相關(guān)標(biāo)準(zhǔn)規(guī)范,并根據(jù)控制系統(tǒng)軟件研制的實(shí)踐,定義了功能基線、分配基線、設(shè)計(jì)基線和產(chǎn)品基線。各類基線所包含的軟件構(gòu)型項(xiàng)數(shù)據(jù)如表1所示,這些數(shù)據(jù)都是用于合格審定的與軟件產(chǎn)品狀態(tài)密切相關(guān)的構(gòu)型項(xiàng),并且基線之間的包含關(guān)系可以保證它們之間的追溯性。
表1 軟件基線的類型和內(nèi)容
為了描述基線建立和升級(jí)之前軟件構(gòu)型項(xiàng)的狀態(tài),我們定義了標(biāo)簽來(lái)標(biāo)記還不具備基線建立條件時(shí)軟件構(gòu)型項(xiàng)的狀態(tài),并且根據(jù)所使用工具的特點(diǎn)對(duì)標(biāo)簽進(jìn)行了進(jìn)一步的分類。
我們定義了基線建立流程并將其固化在工具中,達(dá)到基線建立時(shí)機(jī)的軟件項(xiàng)目應(yīng)當(dāng)申請(qǐng)建立相應(yīng)的基線,經(jīng)過(guò)一定的審批環(huán)節(jié)才能完成基線的建立,而且定義了嚴(yán)格的變更控制流程,納入基線管理的構(gòu)型項(xiàng)不得隨意更改。
納入產(chǎn)品庫(kù)的軟件數(shù)據(jù)即為軟件產(chǎn)品基線中的數(shù)據(jù),存放于檔案系統(tǒng),變更過(guò)程受控。
2.3.1 建立問(wèn)題報(bào)告、跟蹤和糾正機(jī)制
DO-178C對(duì)問(wèn)題報(bào)告、跟蹤和糾正的要求包括:應(yīng)對(duì)過(guò)程不符合計(jì)劃、輸出缺失或者軟件異常狀態(tài)及采取的糾正措施進(jìn)行問(wèn)題報(bào)告;報(bào)告中應(yīng)當(dāng)明確問(wèn)題的構(gòu)型項(xiàng)并對(duì)問(wèn)題進(jìn)行詳細(xì)的描述;需要變更活動(dòng)的問(wèn)題報(bào)告應(yīng)觸發(fā)變更控制活動(dòng)。
我們建立了問(wèn)題報(bào)告流程并利用工具來(lái)記錄軟件研制過(guò)程中發(fā)現(xiàn)的問(wèn)題并給出糾正措施。將發(fā)現(xiàn)問(wèn)題分為質(zhì)量審核發(fā)現(xiàn)的問(wèn)題以及軟件驗(yàn)證發(fā)現(xiàn)的問(wèn)題。對(duì)于質(zhì)量審核問(wèn)題,報(bào)告中明確描述問(wèn)題涉及的構(gòu)型項(xiàng)及具體問(wèn)題現(xiàn)象,需經(jīng)過(guò)審批確定下一步的處理方式,如圖1所示;如果在軟件驗(yàn)證過(guò)程中發(fā)現(xiàn)了問(wèn)題,需要另外提交信息更為全面的驗(yàn)證缺陷單來(lái)記錄、審核和處理問(wèn)題,如果需要引發(fā)變更則另外提起變更申請(qǐng)流程。
圖1 軟件問(wèn)題報(bào)告單
2.3.2 建立變更控制和評(píng)審機(jī)制
DO-178C對(duì)變更控制和評(píng)審的要求包括:對(duì)每個(gè)構(gòu)型項(xiàng)的任何變更都應(yīng)對(duì)其構(gòu)型標(biāo)識(shí)進(jìn)行變更;對(duì)基線和構(gòu)型項(xiàng)的變更要加以記錄、批準(zhǔn)和跟蹤;軟件的變更應(yīng)追蹤到源頭,并從受到影響的環(huán)節(jié)開(kāi)始重復(fù)軟件生命周期過(guò)程;評(píng)估問(wèn)題或變更對(duì)軟件生命周期數(shù)據(jù)的影響,確定要進(jìn)行的變更以及將實(shí)施的活動(dòng)。
對(duì)于已經(jīng)建立基線和納入受控庫(kù)或產(chǎn)品庫(kù)的軟件構(gòu)型項(xiàng),如果需要變更必須提交變更申請(qǐng)[4]。我們已建立了完整的變更控制流程,如圖2所示。首先,描述需要變更的構(gòu)型項(xiàng)標(biāo)識(shí)、原因和方案以及變更的影響域;其次,變更控制小組(Change Control Team,CCT)需要討論變更的方案、影響域等技術(shù)問(wèn)題,CCT由變更涉及的相關(guān)方組成,包括軟件、硬件、系統(tǒng)的相關(guān)負(fù)責(zé)人,CCT討論通過(guò)之后才能實(shí)施變更。
圖2 軟件變更流程
DO-178C對(duì)構(gòu)型狀態(tài)紀(jì)實(shí)的要求包括:對(duì)構(gòu)型項(xiàng)標(biāo)識(shí)、基線標(biāo)識(shí)、問(wèn)題報(bào)告狀態(tài)、變更歷史和發(fā)布狀態(tài)進(jìn)行報(bào)告。
我們已經(jīng)開(kāi)展構(gòu)型紀(jì)實(shí)活動(dòng)[5],根據(jù)軟件構(gòu)型管理計(jì)劃,記錄了如下信息:
1)構(gòu)型項(xiàng)的標(biāo)識(shí)、發(fā)布狀態(tài)。
2)標(biāo)簽和基線的申請(qǐng)人、名稱、包含的構(gòu)型項(xiàng)/產(chǎn)品名稱、用途(包括版本差異說(shuō)明)、批準(zhǔn)人、建立時(shí)間、狀態(tài)等信息。
3)問(wèn)題和變更的來(lái)源、更改對(duì)象的名稱、具體原因、變更前、后的版本、批準(zhǔn)人。
4)缺陷報(bào)告人、缺陷標(biāo)題、被測(cè)軟件名稱、版本、發(fā)現(xiàn)階段、發(fā)現(xiàn)日期、缺陷審核結(jié)果、狀態(tài)。
5)出入庫(kù)的構(gòu)型項(xiàng)名稱、代號(hào)、時(shí)間等信息。
上述信息按照一定的周期匯總和發(fā)布,為軟件項(xiàng)目負(fù)責(zé)人等相關(guān)人員提供軟件構(gòu)型狀態(tài),便于項(xiàng)目監(jiān)控。
DO-178C對(duì)歸檔、檢索和發(fā)布的要求包括:與軟件產(chǎn)品有關(guān)的軟件生命周期數(shù)據(jù)從經(jīng)過(guò)批準(zhǔn)數(shù)據(jù)源處檢索;在軟件生產(chǎn)之前確認(rèn)和發(fā)布構(gòu)型項(xiàng),構(gòu)型項(xiàng)在發(fā)布之前應(yīng)經(jīng)過(guò)批準(zhǔn)。
對(duì)于軟件生命周期數(shù)據(jù)及主要的構(gòu)型項(xiàng)數(shù)據(jù),我們建立了軟件產(chǎn)品庫(kù)和相應(yīng)的入庫(kù)流程。軟件產(chǎn)品庫(kù)即為檔案系統(tǒng);達(dá)到入庫(kù)條件時(shí)填寫入庫(kù)申請(qǐng),明確待入庫(kù)的軟件代號(hào)和版本號(hào),分別將目標(biāo)碼文件、可調(diào)參數(shù)(如有)以及源代碼文件打包作為附件一并申請(qǐng)歸檔;入庫(kù)申請(qǐng)需經(jīng)過(guò)項(xiàng)目負(fù)責(zé)人審批通過(guò)納入產(chǎn)品庫(kù)后完成發(fā)布,發(fā)布之后的軟件才能進(jìn)一步加載和使用。
DO-178C對(duì)軟件加載控制的要求包括:加載到機(jī)載系統(tǒng)或設(shè)備的軟件需要通過(guò)批準(zhǔn),軟件構(gòu)型應(yīng)通過(guò)包含部件編號(hào)和介質(zhì)標(biāo)識(shí)的流程來(lái)進(jìn)行確認(rèn);無(wú)論是作為終端發(fā)布還是安裝到機(jī)載系統(tǒng)或設(shè)備上發(fā)布,發(fā)布或者安裝記錄都需要被保留,以確保軟件機(jī)載系統(tǒng)或設(shè)備硬件的兼容性得到保證。
我們定義了軟件加載流程,對(duì)于加載到機(jī)載系統(tǒng)或設(shè)備的軟件必須經(jīng)過(guò)批準(zhǔn)才能開(kāi)展加載活動(dòng),系統(tǒng)履歷本中描述了所包含的硬件信息及與之配套的軟件構(gòu)型;我們通過(guò)軟件加載單記錄上述的審批過(guò)程以及具體的硬件信息、被加載軟件信息、加載設(shè)備信息及加載的時(shí)間、是否成功等情況。
上述加載過(guò)程較為繁瑣,需要專門人員現(xiàn)場(chǎng)目擊,手動(dòng)填寫加載單也容易出錯(cuò)。應(yīng)當(dāng)在軟件產(chǎn)品中增加唯一校驗(yàn)碼,軟件加載時(shí),加載設(shè)備讀取該校驗(yàn)碼,如果信息正確則更新硬件設(shè)備上的軟件銘牌標(biāo)識(shí),包括軟件件號(hào)、版本標(biāo)識(shí)及校驗(yàn)碼。該校驗(yàn)過(guò)程由工具自動(dòng)完成,不僅可以保證軟件及其版本的正確性,還減少人工確認(rèn)、填寫表單的環(huán)節(jié),避免引入人為錯(cuò)誤、節(jié)約時(shí)間和成本,是我們下一步改進(jìn)的方向。
DO-178C對(duì)軟件生命周期環(huán)境控制的要求包括:確定軟件生命周期環(huán)境硬件和操作系統(tǒng)軟件、軟件開(kāi)發(fā)、驗(yàn)證工具并為用于開(kāi)發(fā)、控制、構(gòu)建、驗(yàn)證和加載軟件的工具建立構(gòu)型標(biāo)識(shí)。
我們?yōu)橛糜陂_(kāi)發(fā)、控制、構(gòu)建、驗(yàn)證和加載軟件使用到的工具確定了唯一的名稱和版本,并按照要求將其納入許用庫(kù),保證了工具來(lái)源的唯一性。
通過(guò)近幾年在控制系統(tǒng)軟件研制過(guò)程中的實(shí)踐,我們歸納、總結(jié)并發(fā)布了公司級(jí)規(guī)范、工作指導(dǎo)書(shū)以及項(xiàng)目級(jí)管理要求,明確了構(gòu)型標(biāo)識(shí)規(guī)則、構(gòu)型項(xiàng)清單,基線/標(biāo)簽的定義、命名規(guī)則及其建立流程,變更流程,構(gòu)型庫(kù)劃分及出、入庫(kù)流程,構(gòu)型狀態(tài)紀(jì)實(shí)的內(nèi)容、構(gòu)型索引的內(nèi)容以及環(huán)境構(gòu)型索引的內(nèi)容,并在某型發(fā)動(dòng)機(jī)控制軟件中應(yīng)用,包括30多個(gè)軟件產(chǎn)品,覆蓋燃油控制系統(tǒng)、健康管理系統(tǒng)、發(fā)動(dòng)機(jī)模型、地面軟件等,基本滿足了DO-178C對(duì)機(jī)載軟件構(gòu)型管理的要求。
未來(lái)需要對(duì)DO-178C軟件加載過(guò)程進(jìn)一步改進(jìn),在軟件產(chǎn)品中增加唯一校驗(yàn)碼,開(kāi)發(fā)校驗(yàn)工具來(lái)識(shí)別加載設(shè)備讀取的校驗(yàn)碼并與軟件版本文件進(jìn)行比較,最后將比較結(jié)果自動(dòng)生成校驗(yàn)報(bào)告,使我們的項(xiàng)目最終滿足適航要求。
[1] RTCA.DO-178C Software Consideration in Airborne Systems and Equipment Certification[S].US:RTCA,2011.
[2] 蔡喁,鄭征,蔡開(kāi)元,等.機(jī)載軟件適航標(biāo)準(zhǔn)DO-178B/C研究[M].上海:上海交通大學(xué)出版社,2013.
[3] 沈小明,王云明,陸榮國(guó),等.機(jī)載軟件研制流程最佳實(shí)踐[M].上海:上海交通大學(xué)出版社,2013.
[4] 任繼平,朱國(guó)慶,邢偉,等.軟件配置管理解決方案[J].計(jì)算機(jī)應(yīng)用研究,2003(5):43-46.
[5] 石柱,潘美華,郭曉慧,等.GJB 5880-2006軟件配置管理[S].北京:國(guó)防科工委科技與質(zhì)量司,2006.