李紅軍 牟明 崔西寧
關鍵詞: 軟件開發; 模型開發; 軟件復用; 仿真驗證; 機載軟件; 航空電子系統
中圖分類號: TN99?34 ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A ? ? ? ? ? ? ? ? ? ? ? ?文章編號: 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
近半個世紀以來,在作戰需求牽引下和先進科學技術的支撐下,航空電子系統結構經歷了從分立式、聯合式、綜合化到高度綜合化的發展過程,機載軟件隨著航空電子系統的更新換代,功能不斷擴展、規模不斷增加。基于傳統的軟件開發研制方法,軟件的開發與維護工作量大幅增加,軟件開發成本激增,幾近極限。本文從分析機載軟件研制中面臨的問題出發,就開發技術、仿真驗證和項目管理等提出解決措施和建議。
本文中的機載軟件特指高度綜合或復雜系統中的大規模機載軟件。“高度綜合”指用于完成或提供多重功能的系統;“復雜”指系統的安全性不可能僅通過試驗來證明,系統的邏輯如果沒有分析手段的幫助很難得到理解[1];“大規模”指代碼行數在百萬行以上的機載軟件。
美國F?35飛機是最為典型的第四代戰機,機載軟件在該型飛機綜合化航空電子系統中承擔了CNI(通信、導航、識別)、FLC(飛行控制)、顯示處理與控制、信號與信息處理、火控解算、外掛物管理等22個領域87個專業方向[2]的任務。軟件規模超過1 000萬LOC,大約80%航空電子系統功能已由軟件實現。而第三代F?16戰機,軟件規模為12.8萬LOC,由軟件實現的航空電子系統功能約為40%。由于軟件的大量使用,使機載軟件的失效可能導致人身傷亡、環境危害,因此對軟件的安全性要求越來越嚴。

總體上,機載軟件呈現出應用范圍廣、軟件的規模大、綜合化程度高、安全性要求嚴等趨勢,國內機載軟件的發展和此類似,與發展趨勢伴隨的是軟件開發難度增大、潛在缺陷增多、質量難以控制,這就要求通過分析存在的問題,研究更為有效的軟件設計方法以提高軟件質量。
2.1 ?由機載軟件規模增大凸顯的問題
在面臨開發1 000萬行LOC級別的軟件時,國內(B級以上軟件)220行/月的開發效率[3]和手工編碼6‰軟件千行代碼缺陷率,將使軟件開發工作量巨大,產品存在6萬個軟件缺陷(這意味著嚴重的質量隱患), 開發效率、軟件質量存在突出問題。
2.2 ?由綜合化產生的問題
綜合化使需求的數量激增、需求之間的關系呈強耦合,需求識別不充分、成熟度不高成為一種客觀現象。需求數量激增,也帶來需求傳遞的脆弱性問題[4]。大規模復雜系統軟件一般都是由多家單位聯合研制,系統綜合驗證問題成為導致F?35飛機研制進度一再拖延的主要原因[2]。如何對大規模復雜系統軟件進行綜合驗證,可采用系統化的方法保證機載軟件的安全性能得到解決。
2.3 ?問題的本質
機載軟件的問題表現為:開發太慢、故障太多、成本太大、不夠安全,如何以可接受的價格構造具有得到保證的功能和質量的系統是機載軟件開發面臨的主要技術和科學挑戰[2]。問題的本質是:可信、健壯、復雜系統的設計問題;系統的確定性、連續性和系統的復雜性之間的矛盾問題[5]。
解決這些問題必須從軟件編碼、需求工程、缺陷控制、故障檢測、質量管理等技術入手,進行改進和提高。
本文在總結、梳理相關國內外技術資料的基礎上,系統地研究了機載軟件開發技術。經過機載大規模軟件研制實踐,針對機載綜合化大規模機載軟件提出“需求管理、模型開發、仿真驗證、產品復用、工具支撐、過程管理”為核心的軟件開發方法,總體框架如圖1所示。
3.1 ?全生命周期需求管理
在瀑布模型的基礎上,采用迭代的方法,將需求變更引入軟件開發的各階段,實現融合增量、迭代和進化式思想的綜合開發;引入基于模型的需求分析,解決需求識別的不充分和傳遞的脆弱性問題;實現以需求為中心的全生存周期需求管理模型,如圖2所示。

3.2 ?基于模型的開發
美國自動機協會(SAE)發布的《安全關鍵嵌入式系統確認的挑戰》中: “對于大規模復雜軟件,基于模型的開發是提高系統工程和嵌入式軟件系統工程的關鍵”。模型開發是目前公認的解決開發效率、開發質量、開發成本問題的最佳工程實踐[6]。本文提出可行的基于模型的開發過程如圖3所示。
3.3 ?軟件仿真驗證
針對復雜系統的綜合驗證問題,波音、洛克希德馬丁、SEI攻關后提出,建立于軟件仿真技術之上的“系統架構虛擬綜合項目”,期望采用基于軟件仿真技術的“先綜合后構建”的開發方法,使得在開發初期和整個生命周期中都能夠基于軟件仿真進行功能和非功能需求的分析,盡早發現系統中的錯誤,以降低花費、開發周期和風險。基于仿真技術的系統/軟件開發過程如圖4所示。
3.4 ?工具鏈支撐
針對各開發階段都應安排相應的開發工具,以輔助開發活動。但目前,在工具之間往往存在數據不能兼容的情況。對軟件研發過程中所涉及的需求分析、建模、仿真及測試驗證等工具開展集成,通過數據轉換工具,打通工具數據接口,建立有效的工具鏈,對于軟件開發工作意義重大。
3.5 ?軟件復用
實踐證明,軟件復用對于提高軟件研發質量和效率作用明顯。面對機載軟件規模、復雜度的挑戰,可采用軟件復用,以支撐產品快速、高效的開發要求。軟件復用包括開發可復用構件、對可復用構件的集成和組裝,關鍵因素如圖5所示。
3.6 ?過程管理
軟件產品質量受制于過程質量是業界的共識,提高軟件過程質量(能力),是保證軟件質量的根本措施。CMMI作為一種典型實踐,對于推動組織軟件能力提升,作用明顯。GJB5000A?2008《軍用軟件能力成熟度模型》是相應的國家軍用標準。
2013年頒布的GJB 8000《軍用軟件研制能力等級》對軟件規模、安全等級對應的承制單位能力要求進行了規定,要求對有效代碼行在10萬以上的A級軟件,軟件研制單位必須達到五級能力。因此,實施GJB5000A過程管理是機載大規模復雜軟件研發的必由之路。
3.7 ?安全性分析
目前,型號軟件安全性設計主要依據的軍用標準包括GJB/Z 102?97《軟件可靠性和安全性設計準則》、GJB/Z 102A?2012《軍用軟件安全性設計指南》、GJB/Z 142?2004 《軍用軟件安全性分析指南》等。這些標準是基于軟件本體的安全性分析方法,即從軟件自身出發,以工程化為基礎,結合軟件生命周期過程的各階段,考慮安全性設計的實現。
而軟件安全性(Software Safety)是指軟件對既定系統安全性的貢獻,衡量的是在特定環境下和規定時間內不會因軟件功能失效或需求缺陷等引起系統危險的能力。這種基于本體的分析方法對大規模軟件安全性分析存在不足,因為軟件安全性離不開系統,只有在特定系統上下文環境中才能討論其安全性[4]。



民機中普遍使用的基于系統的安全性分析方法[7]被認為是解決目前復雜系統軟件安全性分析的最好方法。本文提出一種基于模型的開發過程,引入民機適航中軟件安全性分析的方法,如圖6所示。
綜合模塊化航空電子系統架構的出現,使機載軟件的規模和復雜度呈現指數增長,傳統的機載軟件研制方法已不能適應技術發展的需要。本文首先分析了目前軟件研制存在的問題,借鑒國內外先進研究成果,系統地研究了機載軟件開發技術,針對機載綜合化大規模機載軟件提出“需求管理、模型開發、仿真驗證、產品復用、工具支撐、過程管理”為核心的軟件開發方法,經過國產機載嵌入式操作系統等機載大規模軟件研制實踐,可有效提高軟件安全性,降低軟件缺陷率,全面提高軟件研制質量。該方法對于同等類型大規模軟件的研制具有很強的參考價值。
參考文獻
[1] 劉暢.航空機載軟件質量評價技術研究[R].北京:中國航空綜合技術研究所,2012.
LIU Chang. Research of airborne software quality evaluation method [R]. Beijing: China Aero?Polytechnology Establishment, 2012.
[2] 國科環宇.美軍F?35項目軟件研制與測試問題研究[R].北京:國科環宇,2014.
UCAS. Research of F?35 plane software development and test problems [R]. Beijing: UCAS, 2014.
[3] 空軍裝備部研究院.空軍航空武器裝備軟件計價辦法研究[R].北京:空軍裝備部研究院,2013.
Aeronatical Armaments Research Institute. Air force aeronatical armaments software price evaluation method research [R]. Beijing: Aeronatical Armaments Research Institute, 2013.
[4] 李紅軍.先進飛機綜合模塊化航空電子系統研制質量監督研究[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] 周耀榮.安全關鍵嵌入式系統設計面臨的全面挑戰[R].西安:中航工業計算所,2014.
ZHOU Yaorong. Challenge of safety critical embedded system design [R]. Xian: AVIC Xian Aeronautic Computing Technique Research Institute, 2014.
[6] 牟明,邢亮.模型開發在型號軟件研制中的應用研究[J].航空計算技術,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] 田莉蓉,牟明.適航產品本地化開發過程研究[J].航空計算技術,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.