唐家強 王星皓 安品臣 胡賓洋


摘? ?要:在對分布式綜合航空電子系統中的信息流進行分析評價時,必須構建相應的信息流模型。體系結構分析與設計語言具有對較為復雜的系統集成和性能進行規格說明與分析,并可實現硬件的計算資源和軟件構件之間相互映射的能力,因此,特別適用于性能關鍵性嵌入式實時系統的分析與設計,文章結合綜合化航電系統的結構特征,闡述了系統信息流的AADL建模方法。
關鍵詞:綜合模塊化航電;信息流;建模;AADL
綜合化航電系統替代了聯合式航電系統[1],成為越來越多飛機的選擇,但是由于其系統復雜,給其建模分析帶來了挑戰,體系結構分析與設計語言(Architecture Analysis and Design Language,AADL)以結構化、模塊化的特征引起了各國學者的注意,開始成為主流建模方法。
1? ? 體系結構分析與設計語言
1.1? AADL標準
SAE標準定義的體系AADL[2]脫胎于航空電子領域中具有長期的工程應用基礎的MetaH語言,應用于有實時響應要求的、具有挑戰性的資源限制的、必須經過認證得到高度信任的嵌入式實時系統。
對于被分析的系統,AADL語言能夠正規地描述體系結構模型,以發現如調度、定時、故障冗余等潛在的系統問題。對于設計中的系統,AADL語言的優勢在于多尺度的逼真性:既能對完全規模的系統進行抽象表達,也可以通過分析部分信息模型來確定設計是否滿足預期需求。因此,其特別適用于綜合式模塊化航空電子系統的體系結構描述。
SAE AS5506標準給出了AADL語言的基本概念和核心模型,主要通過“語法”“語義”“命名規則”“預定義屬性”“合法性規則”以及“處理需求和許可”等幾部分對標準AADL進行全面闡述。由于篇幅所限,此處僅簡略介紹部分核心內容。
標準AADL模型主要分為兩大類:聲明模型與實例模型。從兩類模型之間的相互關系來看,聲明模型是生成實例模型的基礎與必要條件,實例模型是將各個層次的聲明模型進行綜合并具體化的結果。
在AADL聲明模型中,最為基本的結構要素是“構件”。構件的定義分為“構件類型”和“構件實現”兩部分,其中構件類型通過使用特征、屬性指定功能接口以及流規范來對該構件與外界的交互接口進行定義。構件實現是構件類型在當前層次(不包含子構件的子構件)的具體化實現形式,通過“子構件”“子構件連接”“屬性”“流實現”“子程序調用序列”和“模式”來對構件類型的內部結構和構造方式進行更為詳細的描述。另外需要說明的是,由于構件可以根據不同的特征和連接情況進行具體化,一個構件類型可以具有多個相應的構件實現。
構件定義中的“特征”,主要用于描述構件與外界進行交互的功能接口。AADL標準定義了“事件端口”“數據端口”“事件數據端口”“端口組”“服務子程序”“數據子程序”“子程序參數”“提供與請求的子構件的訪問”等多種構件“特征”。構件定義中的“連接”主要用來表示不同構件之間的數據和控制通信連接,可以承載不同線程的端口間、處理器和線程之間或不同設備構件之間的控制和數據信息的傳輸。
此外,必須說明的一點是,AADL標準中將所有構件劃分為3類:應用類別,主要包括“線程”“線程組”“進程”以及“數據”構件等。執行平臺類別,包括“處理器”“總線”“設備”以及“存儲器”構件。組成類別,主要指“系統”構件。一個構件所屬的類別是由其定義中所聲明的類型決定的。
AADL語言的核心規范要素如圖1所示。
AADL實例模型是將對應的聲明模型中所有的元素全部進行實例化后所得的模型。實例模型的主要設計目標是具備如下3種能力:根據一個具有實現模型的AADL聲明模型來生成實例模型,該實現模型作為實例模型的根。允許在無須加載全部聲明模型的條件下對實例模型進行處理。使用同一個實例模型來統一表達所有模態的聲明模型,而無須為每個模式組合分別創建一個單獨的實例模型。
1.2? AADL工具環境:OSATE
目前已經面世的AADL建模和處理分析工具有TOPCASED-AADL、OSATE、Cheddar、Ocarina等,其中最具代表性的是開放源碼AADL工具環境(Open Source Code AADL Tool Environment,OSATE)。
OSATE是一款由美國卡耐基梅隆大學軟件工程學院AADL開發小組開發并負責維護的基于Eclipse平臺的源碼開放的插件集。該工具通過由具有AADL語法高亮提示功能的文本編輯器、AADL語義檢查器與規范解釋器以及AAXL對象編輯器與閱讀器等多個插件構成的一組工具集對AADL模型進行前端處理,以支持AADL模型以文本文件(AADL格式)或專用的XML格式(AAXL格式)的模型文件形式進行存儲、更新與維護。非常重要的一點是,該工具具備通過AADL源文本自動創建AAXL模型文件以及兩者之一發生變更后的雙向一致性修改功能。此外,如果用戶需要,還可以對OSATE前端自行進行插件形式的擴展。
2? ? 信息流模型的構建
AADL使用“流(flow)”對通信與信息處理的流量進行描述[3],并據此靈活地處理具有多逼真度的、層次化的、只有部分詳細設計的模型,從而對系統的綜合化處理過程開展基于流模型的實時性能分析。
針對數據或事件的傳輸,或任務處理過程的時延分析,特別是對端到端的時延的分析,都需要以對流的建模為基礎來開展。端到端流量的AADL模型,主要通過“流規范”“流實現”“端到端流”3種類型的聲明來進行描述,其中,后兩種類型可以通過實例化的方式生成相應的實例,該實例則稱為“流實例”。
“流規范(flow specification)”的主要描述對象是通過一個構件的應用邏輯的外部可見流量。關于流規范,AADL定義了3個相關的保留字“flow source”“flow sink”和“flow path”分別用以表示構件中流的起始、終止以及從輸入端口到輸出端口所通過的流的路徑。
“流實現(flow implementation)”主要對通過構件的實際的流序列和跨越一段或多段連接的構件集合進行具體的描述,是流規范的具體實現。流實現和流規范之間的關系,符合前文對構件實現與構件類型之間關系的描述。
“端到端流(end-to-end flow)”定義的是一條源于子構件、終止于子構件的流,是經過一連串系統子構件,如線程、設備等的邏輯信息流,由關鍵字“end-to-end flow”在構件實現中進行聲明。端到端流其實是流實現的一種特殊情形。對于逼真度較低的模型,在端到端流的描述中,可以直接使用當前構件下的第一層子構件中的流規范,而無須這些構件實現的聲明。同樣,端到端流的聲明中也可以使用子構件的構件實現中定義的流。
端到端流的聲明顯然只涉及當前一層子構件,但實際模型中的子構件實現中還可以包含子構件[4]。因此,按照子構件的層次,將端到端流的聲明逐層進行實例化[5],最終即可得到流規范實例和連接實例共同構成的端到端的“流實例(flow instance)”。在圖2所示的典型AADL流模型中,線程構件T1,T2和T3分別是進程構件P1,P2和P3的子構件,系統S中由P1發出,經過P2到達P3的端到端流,具體到線程層次即表現為由T1發出,經過T2到達T3的端到端流。
3? ? 結語
綜合航電系統以其高效、安全、模塊化的特點被越來越多的飛機所采用,系統分析必須選擇合適的方法、工具開展,以保證分析結果的可信性以及對飛機安全性的保證。文章分析了AADL語言的特性和平臺工具特性,提出了航電系統流模型的建模方法。
[參考文獻]
[1]熊華鋼,王中華.先進航空電子綜合技術[M].北京:國防工業出版社,2009.
[2]許金淼,楊志斌,黃志球,等.系統架構描述語言AADL的功能行為建模擴展[J].計算機科學與探索,2019(10):2350-2370.
[3]劉博,李蜀瑜.基于NuSMV的AADL行為模型驗證的探究[J].計算機技術與發展,2012(2):110-113.
[4]高志偉.基于AADL的嵌入式軟件可靠性建模與評估[D].西安:西安電子科技大學,2011.
[5]田丹,霍峰.基于AADL的航電系統建模技術[J].航空計算技術,2010(3):120-122.