張 旻,吳 芳
(1.中國航空計算技術研究所,西安710068;2.陜西省紡織科學研究所,西安710038)
機載軟件屬于嵌入式軟件范疇,是航空電子系統(tǒng)的重要組成部分.主要包括飛機上的信息管理和指令控制系統(tǒng)及上述系統(tǒng)的依托平臺(如嵌入式實時操作系統(tǒng))等。隨著應用領域的擴展,機載軟件已經普及到了航空電子系統(tǒng)的各個子系統(tǒng)中。
調試是任何軟件開發(fā)過程中的必要環(huán)節(jié)[1]。機載軟件受其自身資源的限制,不具備在機載計算機上直接進行本地調試的能力。因此,機載軟件開發(fā)環(huán)境的出現是機載軟件發(fā)展的必然。一個好的機載軟件開發(fā)環(huán)境可提供比較完備的開發(fā)工具,能夠極大提高機載軟件的開發(fā)效率,縮短開發(fā)周期,降低試飛風險。機載軟件開發(fā)環(huán)境的引入對于整個航空電子系統(tǒng)產業(yè)具有非常重要的意義。機載軟件開發(fā)環(huán)境在航空電子系統(tǒng)產業(yè)鏈中起著承上啟下的作用:上游的硬件商、系統(tǒng)集成商要借助機載軟件開發(fā)環(huán)境使他們的產品得以實際應用;下游的機載軟件開發(fā)商要依靠機載軟件開發(fā)環(huán)境快速、高效地開發(fā)機載軟件。因此,機載軟件開發(fā)環(huán)境在航空電子產業(yè)鏈中占有極其重要的地位。
在國外,對實時操作系統(tǒng)的研究起步較早,二十世紀70年代中期,針對實時語言PEARL(Process and Experiment Automation Real-Time Language)的特殊要求,德國支持開發(fā)了功能強大的實時操作系統(tǒng);八十年代初,美國就出現了商業(yè)化的實時操作系統(tǒng)產品,如Ready公司1981年發(fā)布的實時操作系統(tǒng)產品VRTX。經過三十多年的發(fā)展,國際市場上出現了以 VRTX、VxWorks、pSOS、Windows CE、EPOC、PalmOS、Symbian、Android等為代表的幾十種嵌入式操作系統(tǒng),廣泛應用于信息家電、數字通信、工業(yè)控制、航空航天、醫(yī)療設備、軍事電子等領域。
實時操作系統(tǒng)應用程序的開發(fā)一般首先需要在主機平臺(如LINUX或WINDOWS)上配備相應的嵌入式軟件集成開發(fā)環(huán)境,完成編輯、交叉編譯和交叉調試等編碼階段的任務,支持C、C++等高級語言的編程。這類集成開發(fā)環(huán)境最初主要由第三方工具公司提供,為不同操作系統(tǒng)的不同處理器版本專門定制,如美國 Metrowerks公司的產品 CodeWarrior。隨著用戶對嵌入式軟件開發(fā)平臺的需求大增,實時操作系統(tǒng)供應商也紛紛投入巨資發(fā)展本系列實時操作系統(tǒng)產品的集成開發(fā)環(huán)境,如WindRiver公司的產品 Tornado/Workbench、ISI公司的產品pRISM+、GreenHill公司的產品 Multi、QSSL 公司的Momentics等。其中Tornado/Workbench和Multi在機載領域中得到廣泛應用。
國際上,嵌入式軟件集成開發(fā)環(huán)境的另一支重要的研發(fā)隊伍是自由軟件協會(GNU),他們在Internet上免費提供有關研究和開發(fā)成果,如針對各種處理器的交叉編譯器。上述所有嵌入式軟件集成開發(fā)環(huán)境都是在GNU軟件的基礎上,經過集成、優(yōu)化和測試而推出的更加成熟、穩(wěn)定的商業(yè)化版本。
國內的實時操作系統(tǒng),從上世紀90年代初開始經過一些單位多年的攻關,已經突破了主要關鍵技術,并開發(fā)出具有一定先進水平、自主版權的實時操作系統(tǒng)產品,如 AcoreOS/AcoreOS653、ReWorks等。為支持這些實時操作系統(tǒng)產品,誕生了LambdaAE、ReDe等嵌入式軟件集成開發(fā)環(huán)境。其中AcoreOS/AcoreOS653及其配套開發(fā)環(huán)境LambdaAE主要面向機載軟件領域。
機載軟件開發(fā)環(huán)境一般由宿主層、基本層、應用層和駐留層組成。
宿主層指機載軟件開發(fā)環(huán)境的基本宿主軟/硬環(huán)境。硬件環(huán)境一般是采用PC機,軟件環(huán)境一般包括PC機的桌面操作系統(tǒng)和基礎軟件平臺。
對于桌面操作系統(tǒng),一般采用Windows或Linux操作系統(tǒng),這也對機載軟件開發(fā)環(huán)境選擇的基礎軟件平臺提出了一定的可移植性要求。
Eclipse是IBM 2001年11月份提供給開源社區(qū)的插件式體系結構開發(fā)平臺[2]。根據Eclipse的體系結構,通過開發(fā)插件,它能擴展到任何語言的開發(fā),而且Eclipse是一個開放源代碼的、用Java來實現的項目,任何人都可以在此基礎上開發(fā)自己的功能插件。換句話說,其功能可以無限擴展,而且有著統(tǒng)一的外觀、操作和系統(tǒng)資源管理。
與其他開發(fā)工具不同的是,即使是不同種類的嵌入式操作系統(tǒng),也可使用相同的開發(fā)工具,這正是基于Eclipse的嵌入式開發(fā)平臺一個不可取代的優(yōu)點。另外,由于Java語言跨平臺的特性,Eclipse平臺支持的主機環(huán)境操作系統(tǒng)可以是Windows,也可以是Linux,或者其他操作系統(tǒng),這也是基于Eclipse的嵌入式開發(fā)平臺的優(yōu)點。與其他的嵌入式開發(fā)平臺相比,基于Eclipse的嵌入式開發(fā)平臺顯示出眾多優(yōu)勢,如工具集成,完美的界面整合,易學易用,大大縮短了軟件的開發(fā)周期,節(jié)省了開發(fā)成本。另外,基于Eclipse的嵌入式開發(fā)平臺還能夠與基于Eclipse插件標準開發(fā)的第三方工具無縫集成。
綜上所述,機載軟件開發(fā)迫切需要一套功能全面且強大的集成開發(fā)環(huán)境。這個集成開發(fā)環(huán)境應該提供友好的用戶界面,提供簡單易用的操作,提供開發(fā)過程需要的各種功能的高度集成,能夠支持嵌入式軟件開發(fā)流程中的每個開發(fā)環(huán)節(jié)。而基于Eclipse的嵌入式開發(fā)平臺則能夠滿足這樣的需求,這也是各大廠商和研究機構選擇Eclipse平臺的原因。
基本層在宿主層的基礎上集成一組用于支持機載軟件開發(fā)的最基本的工具集,包括編輯工具、交叉編譯/鏈接工具、加載/固化工具、交叉調試工具等。
編輯工具主要提供對各種軟件資源的編輯能力,比如對源代碼、工程文件、腳本文件、配置文件等的編輯、修改。
機載軟件是典型的嵌入式軟件。源代碼在宿主機進行編譯/鏈接,在目標機(一般與宿主機的處理器不同)端運行。因此機載軟件開發(fā)環(huán)境必須提供交叉編譯/鏈接工具。GNU工具鏈以其開源的性質和幾乎對所有處理器的支持能力得到了各大機載軟件開發(fā)環(huán)境廠商的青睞。目前,機載軟件開發(fā)環(huán)境一般都采用GNU工具鏈作為交叉編譯/鏈接工具。
機載軟件作為嵌入式軟件的一種,具有在宿主機構建,在目標機運行的特點。加載/固化工具的主要功能是將在宿主機上編譯/鏈接好的二進制程序文件加載或固化到目標機系統(tǒng)中去以支持對程序的調試或最終的實際運行。加載/固化的過程一般與目標機載操作系統(tǒng)的啟動方式和映像管理方式相關。因此,加載/固化工具根據所支持的目標機載操作系統(tǒng)的不同而有所區(qū)別,各大機載軟件開發(fā)環(huán)境廠商都有自己的加載/固化工具。
調試是任何軟件開發(fā)過程必不可少的一個環(huán)節(jié)。交叉調試工具提供在宿主機對目標機上運行的程序進行遠程調試的能力,包括設置/刪除斷點、單步執(zhí)行、繼續(xù)運行、查看和修改變量/內存/寄存器等功能。目前機載軟件開發(fā)環(huán)境通常采用與GNU工具鏈配套的GDB交叉調試器來支持機載軟件的調試。
基本層為機載軟件的開發(fā)提供了最基礎的支持能力。為了更好地支持機載軟件的開發(fā),提高開發(fā)效率,還需要從用戶層面提供一組圖形化的高級開發(fā)工具。應用層就是在基本層的基礎上,提供一些補充工具以更好地支持機載軟件的研制。
目前的機載軟件開發(fā)環(huán)境在應用層提供的工具主要有工程管理、編譯系統(tǒng)、編輯系統(tǒng)、調試系統(tǒng)、目標機管理、系統(tǒng)瀏覽器等等。
工程管理是支持開發(fā)人員組織和管理機載軟件開發(fā)項目中的主要組件,一般來說工程管理支持項目模板、組件配置、創(chuàng)建向導、導入、導出、共享、版本控制等功能。使用工程管理可以提高用戶管理機載軟件資源的效率,使各種常規(guī)操作更加簡單。
編譯系統(tǒng)作為交叉編譯/鏈接工具的前端支持用戶設定編譯器、編譯選項及參數。編譯系統(tǒng)允許使用從簡單的全局編譯設置到針對單個文件的微觀編譯設置,及在這兩個極端之間任何級別上的編譯設置。一般來說編譯系統(tǒng)支持自動生成編譯/鏈接腳本、自動依賴關系分析、圖形化的編譯/鏈接參數設置、多目標機編譯配置、命令行編譯及團隊編譯等功能。
編輯系統(tǒng)在編輯工具的基礎上提供一系列的增強功能,例如適用于源文件的代碼自動完成、參數自動提示以及語法突出顯示等,從而使用戶加快了開發(fā)過程,并縮短了編輯、編譯、調試周期,降低了開發(fā)難度和出錯率。編輯器一般與工程管理、編譯系統(tǒng)和調試系統(tǒng)協同使用,因此,用戶可以充分利用它來執(zhí)行所有面向源代碼的工作。編輯系統(tǒng)一般支持代碼自動補全、代碼提示、代碼導航、代碼折疊、語法高亮顯示等功能。
調試系統(tǒng)是交叉調試器的前端,主要功能是將交叉調試器的命令行界面或文本用戶界面轉換為圖形化界面呈現給用戶。調試系統(tǒng)一般支持多調試會話管理、圖形化的調試控制管理、斷點管理、變量管理、表達式管理、寄存器管理、堆棧管理、內存管理等功能。對于支持多種模式的目標操作系統(tǒng),調試系統(tǒng)一般還針對目標操作系統(tǒng)的各種模式提供相應的調試模式,例如風河的vxWorks操作系統(tǒng)有任務和系統(tǒng)兩種模式,Workbench的調試系統(tǒng)就相應地支持任務級調試和系統(tǒng)級調試。
目標機管理主要支持用戶創(chuàng)建和維護開發(fā)環(huán)境與目標機直接的連接配置。機載軟件開發(fā)環(huán)境作為一個嵌入式的交叉開發(fā)環(huán)境必須以某種方式與目標機建立連接以支持機載軟件的加載和調試。一般來說目標機管理支持創(chuàng)建/刪除目標機連接、配置目標機連接屬性、連接/斷開目標機等功能。所有與目標機相關的工具,如加載/固化、交叉調試工具等都要以目標機管理為基礎。
機載軟件作為典型的嵌入式軟件,它與外部世界幾乎沒有什么接口,這就對開發(fā)人員提出了一個重大挑戰(zhàn):如何實時了解系統(tǒng)的運行狀態(tài)及系統(tǒng)中的對象信息?系統(tǒng)瀏覽器正是解決這一矛盾的工具軟件。系統(tǒng)瀏覽器可對系統(tǒng)事件提供詳細的分析和圖形化的可視效果,同時還可展示在目標機上執(zhí)行的應用程序的相關任務、線程、中斷和系統(tǒng)對象之間復雜的交互作用。它能夠清楚地顯示上下文變化以及諸如信號量、消息隊列、信號、任務、用戶事件和計時器一類的系統(tǒng)信息。當需要診斷系統(tǒng)時,系統(tǒng)瀏覽器是開發(fā)人員的最佳選擇。
除了以上提到的工具外,各機載軟件開發(fā)環(huán)境廠商還針對各自支持的目標操作系統(tǒng)和開發(fā)過程提出了很多有用的應用層工具,例如風河公司的ScopeTools系列監(jiān)控分析工具、GreenHill公司的Run-Time Error Checking工具、QSSL公司的 Profiler和Memory Analysis工具等。
綜上所述,應用層工具比較豐富,而且不同廠商提供的工具也都形形色色、不一而足。但應用層工具都有一個共同的目標:就是在基本層工具的基礎上為用戶提供更加簡單、易用、可操作性更強的圖形化工具以幫助用戶在整個機載軟件開發(fā)過程中提高效率、規(guī)避錯誤、豐富開發(fā)手段。
駐留層是指為支持宿主機端各種工具的運行而駐留在目標機系統(tǒng)中的各種程序。它們有的與目標系統(tǒng)綁定,有的則可以作為目標系統(tǒng)的組件進行剪裁。駐留層軟件設計和實現的基本原則是盡可能避免對目標系統(tǒng)的正常運行造成干擾,如果這種干擾不可避免,則要求干擾是可以預計和計算的。對于駐留層,各種機載軟件開發(fā)環(huán)境都有自成一套的體系架構,例如風河Workbench的開發(fā)環(huán)境將不同開發(fā)工具對駐留層的要求進行抽象形成WTX協議和Gopher語言,通過對它們所提供的一組服務的排列組合就能夠滿足所有開發(fā)工具對駐留層的功能需求。
機載軟件開發(fā)環(huán)境的主要關鍵技術有多調試模式支持和綜合化航電系統(tǒng)支撐兩個方面。
機載嵌入式實時操作系統(tǒng)具有多任務的特點,符合ARINC653標準的機載嵌入式實時操作系統(tǒng),還具有更為復雜的多分區(qū)、分區(qū)內多進程的特點。這在基本調試支持方面對機載軟件開發(fā)環(huán)境提出了一定的要求:能否支持多種調試模式,使得斷點僅對某個任務、分區(qū)或進程有效?目前主要的機載軟件開發(fā)環(huán)境所使用的調試器多為GDB調試器,它本身并不支持多種調試模式。另外,調試模式切換后斷點是否有效、在調試暫停和運行狀態(tài)下進行調試模式切換的不同情況、調試模式切換時符號表的調整等等都是多調試模式支持需要考慮的問題。
對于調試級別切換的復雜情況,采用狀態(tài)圖分析法進行設計,達到各種情況的覆蓋是一種有效的解決途徑。
對于GDB調試器不支持多種調試模式的情況,可在上一層的調試會話和調試模式管理中對調試模式的切換以及不同調試模式的操作差異進行處理。
自20世紀40年代以來,電子技術在航空領域應用不斷深入,航空電子系統(tǒng)已逐步成為飛機不可缺少的功能子系統(tǒng)之一。在七十多年的發(fā)展歷程里,航空電子系統(tǒng)經歷了獨立式、聯合式、綜合化三個發(fā)展階段。當前,航空電子系統(tǒng)普遍采用綜合模塊化結構(IMA)。該結構在硬件上使用由通用功能模塊(CFM)構成的綜合核心處理平臺來提供綜合處理能力;在軟件上原來航空電子系統(tǒng)里的各任務子系統(tǒng)演變?yōu)橐唤M以空間和時間上均安全隔離的以分區(qū)為單位的功能軟件,各分區(qū)共享相同的硬件模塊,分區(qū)之間通過分區(qū)間通信機制進行交互。隨著綜合化航空電子系統(tǒng)的發(fā)展,機載軟件向著高度集成、資源共享、協作處理等方向發(fā)展,符合ARINC653標準的分區(qū)實時操作系統(tǒng)和分布式系統(tǒng)管理技術的出現正是這些發(fā)展方向的重要體現。進而,綜合化航空電子系統(tǒng)逐步發(fā)展成為一種嵌入式的分布式實時計算系統(tǒng),即綜合化航電系統(tǒng)。
綜合化航電系統(tǒng)在硬件上是一個多處理器系統(tǒng),它由一組節(jié)點組成。每個節(jié)點是一個自足的計算單元,包含CPU、存儲器、I/O、網絡通訊等部件。每個節(jié)點在軟件上劃分為相互隔離的三層:模塊支持層、操作系統(tǒng)層和應用層。操作系統(tǒng)層采用的是滿足ARINC653標準的高安全性實時操作系統(tǒng),系統(tǒng)支持多個分區(qū)應用的運行,分區(qū)之間在空間、時間上隔離,每個分區(qū)里可以運行多個并發(fā)進程。同一節(jié)點上的不同分區(qū)之間、不同節(jié)點上的分區(qū)之間均采用虛通道技術進行通訊。整個系統(tǒng)的管理由通用系統(tǒng)管理軟件(GSM)來實現。
綜合化航電系統(tǒng)具有嵌入式、綜合性、復雜性、時序性、并行性和并發(fā)性等特點。系統(tǒng)的正常運行不僅依賴于單個節(jié)點的正常運轉,而且依賴于分布在網絡各處眾多節(jié)點之間的通訊及協同工作。雖然人們在測試和調試分布式系統(tǒng)方面付出了巨大的努力,比如形式化驗證和不斷優(yōu)化的調度策略,然而在實際應用中一旦系統(tǒng)真實部署后,又會暴露出很多在測試和調試中從未出現過的異常情況。因此,不論形式化驗證的貢獻有多大,不論實時調度策略有多好,對分布式實時系統(tǒng)運行時監(jiān)控、調試和仿真的要求并沒有降低。這是由分布式實時系統(tǒng)與生俱來的復雜性和在處理外部環(huán)境時的不確定性決定的。
綜合化航電系統(tǒng)支撐環(huán)境主要由上述的機載軟件開發(fā)環(huán)境以及分布式監(jiān)控、分布式調試和分布式仿真等三個方面構成。
4.2.1 分布式監(jiān)控
監(jiān)控是任何軟件開發(fā)和調試過程中必不可少的手段,尤其對于綜合化航電系統(tǒng)這樣的復雜嵌入式系統(tǒng)來說,了解系統(tǒng)運行時的行為和狀態(tài)就顯得尤為重要[3]。分布式監(jiān)控工具能夠對綜合化航電系統(tǒng)進行監(jiān)視并將監(jiān)視數據圖形化顯示。
分布式監(jiān)控工具主要對綜合化航電系統(tǒng)的輸入(應用分區(qū)所需的數據,取決于應用,比如飛控應用需要航向、高度、氣壓、航姿、俯仰角等數據)、輸出(應用分區(qū)產生的輸出,比如飛控應用輸出的舵機等數據),輔助輸出(如健康監(jiān)控輸出的故障信息等)、系統(tǒng)調用、上下文切換、中斷、GSM事件、應用事件、存儲器使用、CPU利用、網絡利用、實時內核狀態(tài)、共享資源等進行監(jiān)控。根據監(jiān)控到的數據,分布式監(jiān)控工具可以定義出一致性的全局狀態(tài),這是進行分布式調試的重要基礎。另外通過對監(jiān)控日志進行可視化轉換還可以使開發(fā)人員直觀地了解系統(tǒng)運行的全貌和細節(jié),以幫助診斷和定位系統(tǒng)故障。
4.2.2 分布式調試
綜合化航電系統(tǒng)在完成平臺綜合之后,后續(xù)階段主要圍繞分區(qū)綜合進行,保證分區(qū)之間正確的、協調的交互是綜合過程的關鍵,而傳統(tǒng)的調試手段只能為單個計算機系統(tǒng)的機載應用軟件(即順序程序)開發(fā)提供調試支持,對此卻無能為力[4]。加之,綜合化航電系統(tǒng)的軟件功能復雜,規(guī)模龐大,子系統(tǒng)軟件之間的數據耦合性高,表現為分區(qū)之間可能存在紛繁復雜的通信關系,極大地增加了機載軟件的開發(fā)難度,尤其是調試難度。所以,傳統(tǒng)的調試手段已經無法滿足多分區(qū)綜合階段的調試需求。如何高效地進行多分區(qū)綜合,尤其是跨平臺的多分區(qū)綜合已經對調試技術和調試手段提出了新的要求。因此,面向綜合化航空電子系統(tǒng),開發(fā)機載應用軟件的調試方法及調試技術應運而生。
分布式調試的基礎是分布式監(jiān)控,對于綜合化航電系統(tǒng)來說就是綜合化航電系統(tǒng)分布式軟件執(zhí)行過程的確定性監(jiān)控,即有效地、確定地監(jiān)控綜合化航電系統(tǒng)分布式軟件執(zhí)行過程以及不確定性執(zhí)行的誘發(fā)因素,然后記錄和有效管理所監(jiān)控的信息。
分布式調試的主要功能是分布式軟件執(zhí)行過程的確定性重演和確定性重演調試。軟件調試過程是一個在調試器控制下反復準確地再現被調試軟件執(zhí)行行為的過程。分布式調試借助于所記錄的監(jiān)控信息確定性地再現進程、分區(qū)的執(zhí)行路徑,支持用戶反復觀察程序的執(zhí)行過程。分布式調試將確定性重演與基本調試技術進行有機結合,借助于基本調試手段高效地分析和定位故障。
4.2.3 分布式仿真
綜合化航電系統(tǒng)是一個復雜的實時信息處理系統(tǒng),為了降低開發(fā)成本和縮短軟件開發(fā)周期,如何進行系統(tǒng)資源的有效共享、如何進行系統(tǒng)任務的合理調度、如何縮短系統(tǒng)的設計周期、如何準確地進行提前設計驗證和性能預測,是設計人員面臨的主要問題[5]。對綜合化航電系統(tǒng)進行建模仿真,提供系統(tǒng)開發(fā)驗證平臺,是解決以上問題的有效途徑。在現代機載航空電子系統(tǒng)的研制過程中,綜合仿真系統(tǒng)已經成為必不可少的支持設施,利用它可以在地面對機載航空電子系統(tǒng)進行各種接口和功能檢查試驗,這種試驗是可重復的,可控的以及安全的,從而大大減少試飛風險并縮短研制周期。因此,分布式仿真工具是綜合化航電系統(tǒng)支撐環(huán)境的重要組成部分。
分布式仿真工具從分區(qū)應用、操作系統(tǒng)平臺、運行時藍圖三方面對航空電子系統(tǒng)進行仿真,是一種全數字仿真。
在分區(qū)應用方面:分布式仿真工具可以在沒有目標平臺的前提下,利用IBM Rational Rhapsody的基于統(tǒng)一建模語言(UML)進行應用建模,然后根據目標平臺選擇生成源代碼,再進行仿真運行,達到模型的提前驗證。
操作系統(tǒng)平臺方面:結構分析與建模語言(AADL)在對航空電子系統(tǒng)結構的描述方面具有很好的優(yōu)勢。但是它對操作系統(tǒng)以及平臺的描述還具有很多局限性。比如具體實現細節(jié)以及軟件算法等行為,只能通過用戶自行擴展AADL行為附件進行功能添加。所以對于綜合化航空電子系統(tǒng)的平臺和操作系統(tǒng)仿真可以采用同步語言(例如Signal語言)對其進行建模和仿真。
運行時藍圖方面:運行時藍圖的產生和維護是系統(tǒng)設計過程的一部分,一系列相關工具可以集成到機載軟件開發(fā)環(huán)境中達到這樣的目的,最后的結果就是生成運行時藍圖,然后將運行時藍圖加載到目標系統(tǒng)上,這樣對系統(tǒng)的管理就可以通過專用的接口對藍圖進行訪問。
隨著航空電子系統(tǒng)綜合化程度的提高,機載軟件承擔更多的功能,航空電子系統(tǒng)也逐步由物理融合過渡到功能融合。機載軟件變得越來越復雜,模塊化的開發(fā)與集成是綜合化機載軟件的主要手段。
從開發(fā)的角度,首先,綜合化系統(tǒng)軟件規(guī)模龐大,需要采用“分而治之”的方法將大規(guī)模的軟件進行模塊化劃分,并部署在不同的分區(qū)中運行;其次,不同的軟件模塊可能根據其特點采用不同的開發(fā)方法,或者這些方法的組合。機載軟件設計方法將根據待開發(fā)的軟件系統(tǒng)具體而定,不能機械地使用確定的方法。目前,結構化分析與設計方法、面向對象的分析與設計方法和模型驅動的軟件開發(fā)方法在現代機載軟件開發(fā)過程中都可能被采用。盡管結構化分析與設計方法已提出并應用了幾十年,但其仍然是機載領域主要的軟件開發(fā)方法之一,只是根據機載軟件發(fā)展的需要,融入了新的元素和思想。面向對象思想和描述方法大量應用于機載應用軟件的設計和開發(fā)過程中,現已成為機載軟件設計和開發(fā)的重要方法。近年來,模型驅動的軟件開發(fā)方法逐步在機載軟件開發(fā)過程中得到應用,采用模型作為軟件開發(fā)各個階段的統(tǒng)一描述,可以通過自動化工具保證各個設計階段的一致性,以提高軟件開發(fā)的可信性及開發(fā)效率。模型驅動的軟件開發(fā)方法以系統(tǒng)模型設計為中心,通過模型指導軟件設計的需求分析、系統(tǒng)設計、代碼實現、系統(tǒng)測試以及系統(tǒng)維護等各個階段。與傳統(tǒng)軟件設計方法相比,模型驅動的軟件設計方法消除了軟件設計各個階段之間的鴻溝,使它們相互之間能夠很好的協調。
在綜合化系統(tǒng)中,系統(tǒng)集成首先體現在綜合化系統(tǒng)的配置上。綜合化系統(tǒng)運行時,將根據這些配置完成系統(tǒng)功能的部署與重構。系統(tǒng)配置參數用于描述系統(tǒng)配置,這些配置參數都在系統(tǒng)配置數據文件中維護。系統(tǒng)配置數據文件使用配置編輯工具編寫,并通過配置生成工具轉換為可加載格式。系統(tǒng)根據系統(tǒng)配置數據文件進行配置和操作,系統(tǒng)配置數據文件已成為系統(tǒng)安全的關鍵。但在一個大型系統(tǒng)中,系統(tǒng)配置數據文件本身的配置項非常多,人工配置與數據檢驗是非常困難的事情,很容易導致系統(tǒng)故障。
在硬件方面,近年來處理器技術向多核方向發(fā)展,這對機載軟件開發(fā)環(huán)境的基本層提出了新的挑戰(zhàn)。新一代的機載軟件開發(fā)環(huán)境必須支持多核、多分區(qū)并發(fā)調試功能和多級安全架構,這是機載軟件開發(fā)環(huán)境最迫切需要解決的一個問題。另外綜合化航電系統(tǒng)在開發(fā)和集成中的幾個核心問題,包括綜合化的開發(fā)方法、綜合化系統(tǒng)配置及驗證、配置數據的圖形化管理、配置數據驗證、配置生成等都對機載軟件開發(fā)環(huán)境提出了新的要求。
[1]Thane H.Design for Deterministic Monitoring of Distributed Real- Time Systems[D].M?lardalen:M?lardalen Real- Time Research Centre,Dept.Computer Engineering,M?lardalen University,1999.
[2]劉亞濱.精通 Eclipse[M].北京:電子工業(yè)出版社,2004.
[3]張旻,吳芳,劉建軍.分布式系統(tǒng)監(jiān)視器的設計與實現[J].微處理機,2010(2):101 -104.
[4]張樹兵,葉宏,戴小氐.面向IMA的機載分布式軟件調試方法初探[A].中國航空學會.探索 創(chuàng)新 交流:第四屆中國航空學會青年科技論壇文集(第4集)[C].北京:航空工業(yè)出版社,2010:406-413.
[5]齊曉斌.分布式系統(tǒng)仿真工具——仿真控制軟件的設計與實現[D].西安:中國航空研究院,2010.