李紅軍 牟明 崔西寧
關(guān)鍵詞: 軟件開發(fā); 模型開發(fā); 軟件復(fù)用; 仿真驗(yàn)證; 機(jī)載軟件; 航空電子系統(tǒng)
中圖分類號(hào): TN99?34 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼: A ? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào): 1004?373X(2019)05?0111?04
Research on software development technology for large?scale complex airborne system
LI Hongjun1, MU Ming2, CUI Xining2
(1. Military Representative Office of PLA Stationed in AVIC 631 Research Institute, Xian 710065, China;
2. AVIC Xian Aeronautic Computing Technique Research Institute, Xian 710065, China)
Abstract: The problem that the traditional airborne software development method can′t satisfy the large?scale complex airborne software development due to the upward tendency of airborne software scale and complexity of integrated modular avionics system. The software development method taking demand management, module development, simulation verification, product reuse, tool support and process management as the cores is proposed to solve the credibility, certainty, robustness and continuity of the integrated large?scale airborne software. The development practice of the large?scale airborne software such as domestic airborne embedded operation system can improve the development quality of software. The method has high reference value for the similar software development.
Keywords: software development; model?based development; software reuse; simulation verification; airborne software; avionics system
近半個(gè)世紀(jì)以來,在作戰(zhàn)需求牽引下和先進(jìn)科學(xué)技術(shù)的支撐下,航空電子系統(tǒng)結(jié)構(gòu)經(jīng)歷了從分立式、聯(lián)合式、綜合化到高度綜合化的發(fā)展過程,機(jī)載軟件隨著航空電子系統(tǒng)的更新?lián)Q代,功能不斷擴(kuò)展、規(guī)模不斷增加?;趥鹘y(tǒng)的軟件開發(fā)研制方法,軟件的開發(fā)與維護(hù)工作量大幅增加,軟件開發(fā)成本激增,幾近極限。本文從分析機(jī)載軟件研制中面臨的問題出發(fā),就開發(fā)技術(shù)、仿真驗(yàn)證和項(xiàng)目管理等提出解決措施和建議。
本文中的機(jī)載軟件特指高度綜合或復(fù)雜系統(tǒng)中的大規(guī)模機(jī)載軟件?!案叨染C合”指用于完成或提供多重功能的系統(tǒng);“復(fù)雜”指系統(tǒng)的安全性不可能僅通過試驗(yàn)來證明,系統(tǒng)的邏輯如果沒有分析手段的幫助很難得到理解[1];“大規(guī)模”指代碼行數(shù)在百萬行以上的機(jī)載軟件。
美國F?35飛機(jī)是最為典型的第四代戰(zhàn)機(jī),機(jī)載軟件在該型飛機(jī)綜合化航空電子系統(tǒng)中承擔(dān)了CNI(通信、導(dǎo)航、識(shí)別)、FLC(飛行控制)、顯示處理與控制、信號(hào)與信息處理、火控解算、外掛物管理等22個(gè)領(lǐng)域87個(gè)專業(yè)方向[2]的任務(wù)。軟件規(guī)模超過1 000萬LOC,大約80%航空電子系統(tǒng)功能已由軟件實(shí)現(xiàn)。而第三代F?16戰(zhàn)機(jī),軟件規(guī)模為12.8萬LOC,由軟件實(shí)現(xiàn)的航空電子系統(tǒng)功能約為40%。由于軟件的大量使用,使機(jī)載軟件的失效可能導(dǎo)致人身傷亡、環(huán)境危害,因此對(duì)軟件的安全性要求越來越嚴(yán)。
總體上,機(jī)載軟件呈現(xiàn)出應(yīng)用范圍廣、軟件的規(guī)模大、綜合化程度高、安全性要求嚴(yán)等趨勢,國內(nèi)機(jī)載軟件的發(fā)展和此類似,與發(fā)展趨勢伴隨的是軟件開發(fā)難度增大、潛在缺陷增多、質(zhì)量難以控制,這就要求通過分析存在的問題,研究更為有效的軟件設(shè)計(jì)方法以提高軟件質(zhì)量。
2.1 ?由機(jī)載軟件規(guī)模增大凸顯的問題
在面臨開發(fā)1 000萬行LOC級(jí)別的軟件時(shí),國內(nèi)(B級(jí)以上軟件)220行/月的開發(fā)效率[3]和手工編碼6‰軟件千行代碼缺陷率,將使軟件開發(fā)工作量巨大,產(chǎn)品存在6萬個(gè)軟件缺陷(這意味著嚴(yán)重的質(zhì)量隱患), 開發(fā)效率、軟件質(zhì)量存在突出問題。
2.2 ?由綜合化產(chǎn)生的問題
綜合化使需求的數(shù)量激增、需求之間的關(guān)系呈強(qiáng)耦合,需求識(shí)別不充分、成熟度不高成為一種客觀現(xiàn)象。需求數(shù)量激增,也帶來需求傳遞的脆弱性問題[4]。大規(guī)模復(fù)雜系統(tǒng)軟件一般都是由多家單位聯(lián)合研制,系統(tǒng)綜合驗(yàn)證問題成為導(dǎo)致F?35飛機(jī)研制進(jìn)度一再拖延的主要原因[2]。如何對(duì)大規(guī)模復(fù)雜系統(tǒng)軟件進(jìn)行綜合驗(yàn)證,可采用系統(tǒng)化的方法保證機(jī)載軟件的安全性能得到解決。
2.3 ?問題的本質(zhì)
機(jī)載軟件的問題表現(xiàn)為:開發(fā)太慢、故障太多、成本太大、不夠安全,如何以可接受的價(jià)格構(gòu)造具有得到保證的功能和質(zhì)量的系統(tǒng)是機(jī)載軟件開發(fā)面臨的主要技術(shù)和科學(xué)挑戰(zhàn)[2]。問題的本質(zhì)是:可信、健壯、復(fù)雜系統(tǒng)的設(shè)計(jì)問題;系統(tǒng)的確定性、連續(xù)性和系統(tǒng)的復(fù)雜性之間的矛盾問題[5]。
解決這些問題必須從軟件編碼、需求工程、缺陷控制、故障檢測、質(zhì)量管理等技術(shù)入手,進(jìn)行改進(jìn)和提高。
本文在總結(jié)、梳理相關(guān)國內(nèi)外技術(shù)資料的基礎(chǔ)上,系統(tǒng)地研究了機(jī)載軟件開發(fā)技術(shù)。經(jīng)過機(jī)載大規(guī)模軟件研制實(shí)踐,針對(duì)機(jī)載綜合化大規(guī)模機(jī)載軟件提出“需求管理、模型開發(fā)、仿真驗(yàn)證、產(chǎn)品復(fù)用、工具支撐、過程管理”為核心的軟件開發(fā)方法,總體框架如圖1所示。
3.1 ?全生命周期需求管理
在瀑布模型的基礎(chǔ)上,采用迭代的方法,將需求變更引入軟件開發(fā)的各階段,實(shí)現(xiàn)融合增量、迭代和進(jìn)化式思想的綜合開發(fā);引入基于模型的需求分析,解決需求識(shí)別的不充分和傳遞的脆弱性問題;實(shí)現(xiàn)以需求為中心的全生存周期需求管理模型,如圖2所示。
3.2 ?基于模型的開發(fā)
美國自動(dòng)機(jī)協(xié)會(huì)(SAE)發(fā)布的《安全關(guān)鍵嵌入式系統(tǒng)確認(rèn)的挑戰(zhàn)》中: “對(duì)于大規(guī)模復(fù)雜軟件,基于模型的開發(fā)是提高系統(tǒng)工程和嵌入式軟件系統(tǒng)工程的關(guān)鍵”。模型開發(fā)是目前公認(rèn)的解決開發(fā)效率、開發(fā)質(zhì)量、開發(fā)成本問題的最佳工程實(shí)踐[6]。本文提出可行的基于模型的開發(fā)過程如圖3所示。
3.3 ?軟件仿真驗(yàn)證
針對(duì)復(fù)雜系統(tǒng)的綜合驗(yàn)證問題,波音、洛克希德馬丁、SEI攻關(guān)后提出,建立于軟件仿真技術(shù)之上的“系統(tǒng)架構(gòu)虛擬綜合項(xiàng)目”,期望采用基于軟件仿真技術(shù)的“先綜合后構(gòu)建”的開發(fā)方法,使得在開發(fā)初期和整個(gè)生命周期中都能夠基于軟件仿真進(jìn)行功能和非功能需求的分析,盡早發(fā)現(xiàn)系統(tǒng)中的錯(cuò)誤,以降低花費(fèi)、開發(fā)周期和風(fēng)險(xiǎn)?;诜抡婕夹g(shù)的系統(tǒng)/軟件開發(fā)過程如圖4所示。
3.4 ?工具鏈支撐
針對(duì)各開發(fā)階段都應(yīng)安排相應(yīng)的開發(fā)工具,以輔助開發(fā)活動(dòng)。但目前,在工具之間往往存在數(shù)據(jù)不能兼容的情況。對(duì)軟件研發(fā)過程中所涉及的需求分析、建模、仿真及測試驗(yàn)證等工具開展集成,通過數(shù)據(jù)轉(zhuǎn)換工具,打通工具數(shù)據(jù)接口,建立有效的工具鏈,對(duì)于軟件開發(fā)工作意義重大。
3.5 ?軟件復(fù)用
實(shí)踐證明,軟件復(fù)用對(duì)于提高軟件研發(fā)質(zhì)量和效率作用明顯。面對(duì)機(jī)載軟件規(guī)模、復(fù)雜度的挑戰(zhàn),可采用軟件復(fù)用,以支撐產(chǎn)品快速、高效的開發(fā)要求。軟件復(fù)用包括開發(fā)可復(fù)用構(gòu)件、對(duì)可復(fù)用構(gòu)件的集成和組裝,關(guān)鍵因素如圖5所示。
3.6 ?過程管理
軟件產(chǎn)品質(zhì)量受制于過程質(zhì)量是業(yè)界的共識(shí),提高軟件過程質(zhì)量(能力),是保證軟件質(zhì)量的根本措施。CMMI作為一種典型實(shí)踐,對(duì)于推動(dòng)組織軟件能力提升,作用明顯。GJB5000A?2008《軍用軟件能力成熟度模型》是相應(yīng)的國家軍用標(biāo)準(zhǔn)。
2013年頒布的GJB 8000《軍用軟件研制能力等級(jí)》對(duì)軟件規(guī)模、安全等級(jí)對(duì)應(yīng)的承制單位能力要求進(jìn)行了規(guī)定,要求對(duì)有效代碼行在10萬以上的A級(jí)軟件,軟件研制單位必須達(dá)到五級(jí)能力。因此,實(shí)施GJB5000A過程管理是機(jī)載大規(guī)模復(fù)雜軟件研發(fā)的必由之路。
3.7 ?安全性分析
目前,型號(hào)軟件安全性設(shè)計(jì)主要依據(jù)的軍用標(biāo)準(zhǔn)包括GJB/Z 102?97《軟件可靠性和安全性設(shè)計(jì)準(zhǔn)則》、GJB/Z 102A?2012《軍用軟件安全性設(shè)計(jì)指南》、GJB/Z 142?2004 《軍用軟件安全性分析指南》等。這些標(biāo)準(zhǔn)是基于軟件本體的安全性分析方法,即從軟件自身出發(fā),以工程化為基礎(chǔ),結(jié)合軟件生命周期過程的各階段,考慮安全性設(shè)計(jì)的實(shí)現(xiàn)。
而軟件安全性(Software Safety)是指軟件對(duì)既定系統(tǒng)安全性的貢獻(xiàn),衡量的是在特定環(huán)境下和規(guī)定時(shí)間內(nèi)不會(huì)因軟件功能失效或需求缺陷等引起系統(tǒng)危險(xiǎn)的能力。這種基于本體的分析方法對(duì)大規(guī)模軟件安全性分析存在不足,因?yàn)檐浖踩噪x不開系統(tǒng),只有在特定系統(tǒng)上下文環(huán)境中才能討論其安全性[4]。
民機(jī)中普遍使用的基于系統(tǒng)的安全性分析方法[7]被認(rèn)為是解決目前復(fù)雜系統(tǒng)軟件安全性分析的最好方法。本文提出一種基于模型的開發(fā)過程,引入民機(jī)適航中軟件安全性分析的方法,如圖6所示。
綜合模塊化航空電子系統(tǒng)架構(gòu)的出現(xiàn),使機(jī)載軟件的規(guī)模和復(fù)雜度呈現(xiàn)指數(shù)增長,傳統(tǒng)的機(jī)載軟件研制方法已不能適應(yīng)技術(shù)發(fā)展的需要。本文首先分析了目前軟件研制存在的問題,借鑒國內(nèi)外先進(jìn)研究成果,系統(tǒng)地研究了機(jī)載軟件開發(fā)技術(shù),針對(duì)機(jī)載綜合化大規(guī)模機(jī)載軟件提出“需求管理、模型開發(fā)、仿真驗(yàn)證、產(chǎn)品復(fù)用、工具支撐、過程管理”為核心的軟件開發(fā)方法,經(jīng)過國產(chǎn)機(jī)載嵌入式操作系統(tǒng)等機(jī)載大規(guī)模軟件研制實(shí)踐,可有效提高軟件安全性,降低軟件缺陷率,全面提高軟件研制質(zhì)量。該方法對(duì)于同等類型大規(guī)模軟件的研制具有很強(qiáng)的參考價(jià)值。
參考文獻(xiàn)
[1] 劉暢.航空機(jī)載軟件質(zhì)量評(píng)價(jià)技術(shù)研究[R].北京:中國航空綜合技術(shù)研究所,2012.
LIU Chang. Research of airborne software quality evaluation method [R]. Beijing: China Aero?Polytechnology Establishment, 2012.
[2] 國科環(huán)宇.美軍F?35項(xiàng)目軟件研制與測試問題研究[R].北京:國科環(huán)宇,2014.
UCAS. Research of F?35 plane software development and test problems [R]. Beijing: UCAS, 2014.
[3] 空軍裝備部研究院.空軍航空武器裝備軟件計(jì)價(jià)辦法研究[R].北京:空軍裝備部研究院,2013.
Aeronatical Armaments Research Institute. Air force aeronatical armaments software price evaluation method research [R]. Beijing: Aeronatical Armaments Research Institute, 2013.
[4] 李紅軍.先進(jìn)飛機(jī)綜合模塊化航空電子系統(tǒng)研制質(zhì)量監(jiān)督研究[R].西安:中國人民解放軍駐六三一所軍事代表室,2014.
LI Hongjun. Quality supervision research on integrated modular avionic systems development [R]. Xian: Military Representative Office of PLA Stationed in AVIC 631 Research Institute, 2014.
[5] 周耀榮.安全關(guān)鍵嵌入式系統(tǒng)設(shè)計(jì)面臨的全面挑戰(zhàn)[R].西安:中航工業(yè)計(jì)算所,2014.
ZHOU Yaorong. Challenge of safety critical embedded system design [R]. Xian: AVIC Xian Aeronautic Computing Technique Research Institute, 2014.
[6] 牟明,邢亮.模型開發(fā)在型號(hào)軟件研制中的應(yīng)用研究[J].航空計(jì)算技術(shù),2015,45(3):76?79.
MU Ming, XING Liang. Research on application of model?based method in airborne software development [J]. Journal of aeronautical computing technique, 2015, 45(3): 76?79.
[7] 田莉蓉,牟明.適航產(chǎn)品本地化開發(fā)過程研究[J].航空計(jì)算技術(shù),2015,45(3):87?91.
TIAN Lirong, MU Ming. Application of airworthiness standard in airborne product development procedure [J]. Journal of aeronautical computing technique, 2015, 45(3): 87?91.