彭文希 謝 莉
(四川九洲空管科技有限責(zé)任公司,四川 綿陽(yáng) 621000)
RTCA/DO-178B[1]規(guī)定了機(jī)載軟件研制的目標(biāo)以及為了達(dá)到這些目標(biāo)所需的活動(dòng)與設(shè)計(jì)考慮,但未提及實(shí)現(xiàn)的方法與手段,本文就此問(wèn)題提出了一些實(shí)際可行的工程經(jīng)驗(yàn),包括生命周期階段劃分以及問(wèn)題處理流程規(guī)劃。與獨(dú)立適航取證不同,隨機(jī)適航由主機(jī)廠作為申請(qǐng)方向局方進(jìn)行表明,機(jī)載電子設(shè)備供應(yīng)商向主機(jī)廠提供技術(shù)支持,同時(shí)也需要通過(guò)主機(jī)廠的驗(yàn)證評(píng)審。在文獻(xiàn)[2]中描述了SOⅠ1 至SOⅠ4 審查階段的活動(dòng),但未涉及在軟件研制過(guò)程中的問(wèn)題處理流程分析以及如何完成主機(jī)廠的適航驗(yàn)證活動(dòng),文獻(xiàn)[3]描述了機(jī)載電子設(shè)備的CTSOA 取證過(guò)程,重點(diǎn)傾向于對(duì)設(shè)備的制造符合性試驗(yàn)及軟硬件審查概述,文獻(xiàn)[4]中主要針對(duì)軟件計(jì)劃過(guò)程的活動(dòng)研究,未涉及整個(gè)生命周期。本文對(duì)機(jī)載軟件各階段的具體實(shí)施過(guò)程作了詳述。
民用航空機(jī)載軟件研制和審定指南的規(guī)定,機(jī)載電子設(shè)備的軟件可分為3 個(gè)過(guò)程,分別是軟件計(jì)劃過(guò)程、軟件開(kāi)發(fā)過(guò)程、軟件支持過(guò)程,過(guò)程的劃分與關(guān)系如圖1 所示。
圖1 軟件生命周期過(guò)程關(guān)系圖
各過(guò)程的定義與相互關(guān)系描述如下:
a.軟件計(jì)劃過(guò)程:定義并協(xié)調(diào)軟件開(kāi)發(fā)和支持過(guò)程的活動(dòng),此過(guò)程屬于軟件生命周期中的軟件計(jì)劃階段。
b.軟件開(kāi)發(fā)過(guò)程:生產(chǎn)軟件產(chǎn)品的過(guò)程,這個(gè)過(guò)程包括軟件需求過(guò)程(即軟件需求階段)、軟件設(shè)計(jì)過(guò)程(即軟件設(shè)計(jì)階段)、軟件編碼過(guò)程(即軟件編碼階段)和軟件/硬件集成過(guò)程(即軟件集成階段)。
c.軟件支持過(guò)程:確保軟件生命周期過(guò)程及其輸出正確、受控和可信。它包括軟件驗(yàn)證過(guò)程、軟件構(gòu)型管理過(guò)程、軟件質(zhì)量保證過(guò)程和合格審定聯(lián)絡(luò)過(guò)程。
軟件生命周期模型采用V 模型開(kāi)發(fā)[5],圖2 展示了開(kāi)發(fā)模型架構(gòu)。
圖2 軟件V 模型開(kāi)發(fā)流程圖
軟件生命周期可劃分為軟件計(jì)劃階段、軟件需求階段、軟件設(shè)計(jì)階段、軟件編碼階段、軟件集成階段、軟件測(cè)試階段和軟件總結(jié)階段等7 個(gè)階段,軟件構(gòu)型管理過(guò)程、軟件驗(yàn)證過(guò)程、軟件質(zhì)量保證過(guò)程和軟件合格審定聯(lián)絡(luò)過(guò)程則貫穿7個(gè)階段。機(jī)載軟件生命周期各過(guò)程之間是一個(gè)相互補(bǔ)充并不斷重復(fù)的過(guò)程,階段產(chǎn)品是一個(gè)反復(fù)迭代、持續(xù)改進(jìn)過(guò)程的結(jié)果。
軟件研制過(guò)程不同階段須滿足不同的目標(biāo),為了達(dá)到這些目標(biāo)所需要的活動(dòng)和設(shè)計(jì)考慮應(yīng)是什么,該如何既滿足目標(biāo)要求又能在實(shí)際工程中較好地實(shí)現(xiàn)?本文以C919 客機(jī)某機(jī)載軟件隨機(jī)適航為例結(jié)合文獻(xiàn)[6],解析軟件整個(gè)生命周期階段的具體活動(dòng)。
1.2.1 軟件計(jì)劃階段
在軟件計(jì)劃階段需完成軟件開(kāi)發(fā)過(guò)程的策劃,確定軟件生命周期,包括過(guò)程之間的內(nèi)部關(guān)系、它們的順序、反饋機(jī)理和轉(zhuǎn)換準(zhǔn)則,同時(shí)選擇軟件生命周期環(huán)境及軟件開(kāi)發(fā)模型,包括用于每一個(gè)軟件生命周期活動(dòng)的方法和工具,定義與系統(tǒng)安全目標(biāo)相符的軟件開(kāi)發(fā)標(biāo)準(zhǔn)。
1.2.2 軟件需求設(shè)計(jì)階段
在軟件需求設(shè)計(jì)階段可采用SSR 方法[7]完成需求開(kāi)發(fā),建立軟件高低級(jí)需求間的追溯關(guān)系,識(shí)別軟件衍生需求,對(duì)其進(jìn)行安全性評(píng)估,形成軟件衍生需求安全性評(píng)估報(bào)告,若軟件衍生需求有潛在的安全影響,則應(yīng)在更上一層需求中增加建立系統(tǒng)需求,相應(yīng)的衍生需求與之建立追溯關(guān)系。
1.2.3 軟件編碼與集成階段
開(kāi)發(fā)人員根據(jù)設(shè)計(jì)的軟件架構(gòu)和低級(jí)別需求編寫符合軟件編碼標(biāo)準(zhǔn)的源代碼,保證其可追蹤性、可驗(yàn)證性、合理性及正確性。生成可執(zhí)行目標(biāo)碼并將其加載到目標(biāo)機(jī)中以完成軟硬件集成,在驗(yàn)證過(guò)程開(kāi)展軟件代碼的評(píng)審與分析和軟件集成工程檢查。
1.2.4 軟件測(cè)試階段
在軟件測(cè)試階段,驗(yàn)證軟件是否滿足高低級(jí)需求、軟件架構(gòu)所規(guī)定的內(nèi)容,完成需求、語(yǔ)句、數(shù)據(jù)耦合和控制耦合覆蓋分析,使得需求覆蓋率和結(jié)構(gòu)覆蓋率達(dá)到規(guī)定值,對(duì)于不滿足覆蓋率要求的軟件部件,應(yīng)對(duì)代碼結(jié)構(gòu)進(jìn)行分析,確認(rèn)是否存在軟件缺陷。在此階段中通過(guò)測(cè)試、評(píng)審檢測(cè)到的不符合性的或不正確的輸入要反饋至軟件需求過(guò)程、軟件設(shè)計(jì)過(guò)程、軟件編碼過(guò)程、軟件集成過(guò)程和軟件計(jì)劃過(guò)程。
1.2.5 軟件總結(jié)階段
證明整個(gè)軟件生命周期符合RTCA/DO—178B 要求,以文本的形式總結(jié)研制過(guò)程,編制軟件構(gòu)型索引、軟件生命周期環(huán)境構(gòu)型索引、軟件實(shí)施概要等,分析和比較實(shí)際軟件研制過(guò)程及實(shí)際產(chǎn)生軟件生命周期相關(guān)數(shù)據(jù)與軟件合格審定計(jì)劃的差異,對(duì)偏離情況進(jìn)行說(shuō)明。
在隨機(jī)適航項(xiàng)目中還須完成主機(jī)廠的工程評(píng)審,評(píng)審后對(duì)相關(guān)軟件評(píng)審問(wèn)題進(jìn)行處理歸零,若涉及需上報(bào)主機(jī)廠批準(zhǔn)的修改項(xiàng),應(yīng)先申請(qǐng)?jiān)僬?,處理后發(fā)生變更的文件納入軟件構(gòu)型管理受控庫(kù),變更后的文件還應(yīng)考慮是否重新提交主機(jī)廠,以保證問(wèn)題處理過(guò)程的前后關(guān)聯(lián)性以及證據(jù)的完整性,因此軟件生命周期應(yīng)設(shè)計(jì)邏輯合理的問(wèn)題處理流程以及變更控制過(guò)程。
在機(jī)載軟件研制過(guò)程中存在客戶發(fā)起的需求變更或局方適航審查發(fā)現(xiàn)的工程問(wèn)題,當(dāng)接收到這些問(wèn)題時(shí)將其轉(zhuǎn)換為內(nèi)部問(wèn)題,內(nèi)部問(wèn)題又分為工程問(wèn)題和QA(Quality Assurance)問(wèn)題,再按照相應(yīng)的工程問(wèn)題或QA 問(wèn)題處理機(jī)制進(jìn)行處理。所有問(wèn)題項(xiàng)應(yīng)作為變更的輸入,從而把構(gòu)型管控與問(wèn)題處理關(guān)聯(lián)起來(lái)。
在局方審查的四個(gè)階段中,證據(jù)鏈完整是最重要的特質(zhì),因此問(wèn)題處理與變更的關(guān)聯(lián)性也是整個(gè)軟件研制過(guò)程的基本。QA 問(wèn)題和工程問(wèn)題處理機(jī)制說(shuō)明如下:
a. QA 問(wèn)題處理流程:填寫QA 問(wèn)題報(bào)告單并發(fā)送至問(wèn)題責(zé)任人,責(zé)任人依據(jù)QA 問(wèn)題報(bào)告單對(duì)相關(guān)工作進(jìn)行整改并填寫處理過(guò)程,每一份報(bào)告單應(yīng)有唯一確定的標(biāo)識(shí)號(hào),實(shí)現(xiàn)問(wèn)題可追溯性,項(xiàng)目的質(zhì)量保證人員對(duì)整改措施及結(jié)果進(jìn)行確認(rèn)審核,完成問(wèn)題閉環(huán)歸零,同時(shí)保存相應(yīng)的QA 問(wèn)題報(bào)告單作為質(zhì)量保證審核依據(jù)。
b. 工程問(wèn)題處理流程如下:出現(xiàn)工程問(wèn)題時(shí)在工程問(wèn)題報(bào)告單中記錄問(wèn)題項(xiàng),并對(duì)問(wèn)題進(jìn)行影響分析和評(píng)估,判定是否需要更改,如需更改還應(yīng)判斷是否需要提交主機(jī)廠批準(zhǔn)。問(wèn)題整改完畢后,由問(wèn)題整改責(zé)任人完成工程問(wèn)題報(bào)告單中問(wèn)題處理情況的填寫。
在問(wèn)題整改完畢歸零后應(yīng)進(jìn)行受控變更,變更流程為:a.當(dāng)構(gòu)型項(xiàng)產(chǎn)生更改時(shí),填寫變更申請(qǐng),描述變更原因和影響域分析,同時(shí)應(yīng)關(guān)聯(lián)對(duì)應(yīng)的工程問(wèn)題報(bào)告單編號(hào);
b.更改責(zé)任人對(duì)構(gòu)型項(xiàng)實(shí)施更改,更改完成后經(jīng)功能審核、師物理審核、質(zhì)量審核和軟件測(cè)試驗(yàn)證通過(guò)后入庫(kù)。
QA 問(wèn)題、工程問(wèn)題的問(wèn)題報(bào)告和更改控制流程圖如圖3所示。
圖3 問(wèn)題報(bào)告和更改控制流程圖
機(jī)載電子設(shè)備軟件適航過(guò)程工作量大,審查范圍廣而細(xì),問(wèn)題處理與更改控制貫穿于整個(gè)研制過(guò)程,也是適航審查的關(guān)注重點(diǎn)。按照SOⅠ1~SOⅠ4 四個(gè)階段進(jìn)行審查,分階段表明軟件符合性,能夠有效地完成隨機(jī)適航工作,同時(shí)明確機(jī)載設(shè)備供應(yīng)商、主機(jī)廠與局方之間的分工關(guān)系,建立清晰的問(wèn)題處理流程機(jī)制,可以更好地符合DO-178B 標(biāo)準(zhǔn)要求。