張曉麗 彭寒
摘要:針對當前綜合模塊化航空電子系統(tǒng)(IMA)開發(fā)中存在的問題,提出了一種基于特定領域元模型的綜合航電分區(qū)級系統(tǒng)建模方法。通過分析提取航電系統(tǒng)分區(qū)內核對象特性及相互間聯(lián)系,采用基于面向領域的元建模分析方法,構建了綜合航電分區(qū)級通信的元模型,通過建模工具將元模型解析生成了面向領域的元建模語言。通過實例分析驗證,該建模語言接近ARINC653標準對于分區(qū)內核對象的定義,具有較好的可理解性、易用性,可顯著提高航電系統(tǒng)的開發(fā)效率,為基于元模型的綜合航電系統(tǒng)建模方法奠定基礎。
關鍵詞:綜合航電;領域建模;元模型;通用建模環(huán)境
中圖分類號:TP391.9
文獻標識碼:A
隨著計算機技術、航空技術的不斷發(fā)展,綜合化和模塊化成為航空電子系統(tǒng)軟件發(fā)展的總體趨勢,新一代的航空電子系統(tǒng)已經(jīng)演變成高度集成的綜合模塊化的系統(tǒng),為了保證綜合航電系統(tǒng)的高安全性、高可靠性,ARINC653[1]系統(tǒng)提出了分區(qū)操作系統(tǒng)的概念。在系統(tǒng)的設計和實現(xiàn)過程中,傳統(tǒng)的開發(fā)測試方法已不能適應日益增長的軟件系統(tǒng)規(guī)模和復雜性需求,為實現(xiàn)系統(tǒng)的先期驗證,應采用各種分析、建模的方法在系統(tǒng)設計初期保證系統(tǒng)的功能驗證,降低系統(tǒng)的開發(fā)成本,確保系統(tǒng)的功能需求和非功能需求的正確實現(xiàn)。
構建模型是研究復雜系統(tǒng)的主要方法,采用基于元模型的建模方法,可以將綜合航電系統(tǒng)的分區(qū)操作系統(tǒng)特性抽取出來,建立平臺無關的元模型(PIM)[2],使其適應不同的軟件環(huán)境。研究了綜合航電系統(tǒng)分區(qū)級內核對象的特征,設計了分區(qū)級通信軟件的元模型結構,構建專業(yè)技術人員適用的圖形化建模元素,從模型構建及使用的角度分析了綜合航電分區(qū)級建模語言的設計、實現(xiàn)與應用。
1 MDA與元模型
模型驅動構架(model driven architecture,MDA)[3]是由對象管理小組(object managementgroup,OMG)提出的一套以模型為中心的軟件設計開發(fā)方法,其主要思想是在軟件開發(fā)整個生命周期內,使用高度抽象的模型作為開發(fā)核心,使程序設計人員將設計中心轉向模型,將設計與實現(xiàn)分開。MDA從領域問題進行需求捕獲、分析、再到模型設計以及實現(xiàn)最終的系統(tǒng)平臺,每個階段都對應相應的模型。
元建模( MetaModeling)[5,6]是MDA的重要組成技術之一,以模型為核心,通過建立描述領域特征的元模型來實現(xiàn)建模語言的定義。元建模是一種模型集成化的工程分析方法,其本質就是在特定領域內抽象該領域的元模型。實踐表明,利用元建模技術可以簡化建模語言的定義過程,大幅度提高軟件開發(fā)效率,滿足大量的建模需求。元模型是描述模型的模型,主要用于描述特定領域的模型,是模型的更高一級抽象,對如何建模、模型定義、模型間集成和互操作等信息作出了描述[7]。
關注的重點在于構建系統(tǒng)的元模型。在分析研究綜合航電分區(qū)級通信機制的基礎上,采用GME元建模工具來構建綜合航電分區(qū)級元模型。
2 綜合航電系統(tǒng)分區(qū)內核對象特性
綜合航電系統(tǒng)(IMA)[8]分區(qū)由一個或多個進程組成,各進程之間為實現(xiàn)其分區(qū)特性的功能和實時要求并發(fā)執(zhí)行。分區(qū)級通信是指處在同一分區(qū)內的進程之間的通信,IMA中數(shù)據(jù)交換是通過內部通信機制,不需要使用模塊或內核的服務,主要通過緩沖區(qū)、黑板、信號量和事件等四種通信機制來實現(xiàn)。緩沖區(qū)和黑板被提供用于一般進程的通信,而信號量和事件提供進程間互斥和同步的功能。所有分區(qū)內消息傳遞機制必須確保原子消息訪問(即部分寫入的消息不能被讀?。?。
(1)緩沖區(qū)Buffers
緩沖區(qū)支持多個源和目的之間處理單個消息類型的進程通信,允許設置消息隊列,消息在緩沖區(qū)內具有排隊方式(FIFO和優(yōu)先級隊列)。緩沖區(qū)的管理以及其存儲消息所需內存空間由系統(tǒng)構建時定義的分區(qū)內存分配。緩沖區(qū)內,消息可以攜帶不同數(shù)據(jù),但是在傳送期間內不允許覆蓋先前數(shù)據(jù)。O/S允許緩沖區(qū)在消息隊列中存儲多條消息。
緩沖區(qū)的屬性主要有進程隊列、緩沖區(qū)內單一消息的大小、緩沖區(qū)整體大小。
(2)黑板Blackboards
黑板與緩沖區(qū)類似,但是黑板只能攜帶單個消息,所以黑板無消息排隊機制,寫入黑板的消息將被O/S保留,直到此消息被新的消息覆蓋,這一機制允許發(fā)送過程中隨時顯示消息,并且可以隨時接受訪問最新消息的進程。進程可以讀取黑板上的消息、設置并顯示消息或者清除消息信息。
黑板的屬性主要包括黑板所攜帶消息的大小、黑板狀態(tài)。
(3)信號量Semaphores
ARINC653中定義的信號量是計數(shù)信號量,與進程和緩沖區(qū)的創(chuàng)建一樣,創(chuàng)建信號量所需的內存空間將在系統(tǒng)構建時定義的分區(qū)內存中分配,通常用于提供對分區(qū)內共享資源的受控訪問。信號量存在于分區(qū)內,其屬性包括進程隊列、信號量最大值、信號量當前值。
(4)事件Events
事件被用于控制進程同步執(zhí)行,進程通過事件通知保證進程之間有序執(zhí)行,防止因為某些不可預測的原因導致進程陷入停滯狀態(tài),事件允許通知可能等待某處理條件發(fā)生的進程。
事件的主要屬性包含進程隊列、事件當前狀態(tài)、事件信息。
3 分區(qū)級元模型的設計
3.1 元模型設計
綜合航電分區(qū)級元模型是機載操作系統(tǒng)分區(qū)級通信過程中的共性、基礎元素的抽象集合,通過建立其元模型,可以提供對其內核對象的統(tǒng)一理解和開發(fā)規(guī)范,實現(xiàn)分區(qū)級數(shù)據(jù)對象間的信息資源共享和重用。ARINC653中定義的內核對象之間的關系主要在于建立進程與信號量、事件、緩沖區(qū)、黑板之間的關系。
綜合航電分區(qū)內的通信是指屬于同一個分區(qū)的進程之間的通信,其中緩沖區(qū)和黑板實現(xiàn)一般的進程間的通信和同步,信號量和事件保證了進程之間的同步,必須保證所有的分區(qū)內通信信息在寫入信息的時候是無法讀取信息的,即信息是原子訪問的。
在構建分區(qū)元模型時,需要將分區(qū)看作為獨立系統(tǒng)以作為基礎模型,并且分區(qū)內各獨立對象需要標明與分區(qū)的從屬關系。根據(jù)分區(qū)級內核對象的分析,構建了圖1所示的分區(qū)級元模型。圖中描述了分區(qū)內通信所需的元素及關系。
3.2 綜合航電系統(tǒng)分區(qū)級內核對象靜態(tài)約束
根據(jù)ARINC653標準,其分區(qū)內的信號量、事件、緩沖區(qū)、黑板與進程的通信條件需要設置相關的約束條件,信號量與進程之間進行通信時,在同一時刻下不允許有多個進程訪問信號量,需要進行排隊等待,而信號量也不允許在同一時間下對多個進程發(fā)送信號,只能約束單個信號量與兩個不同進程連接。事件與進程之間的約束條件與信號量類似,同一時間下無法有多個進程設置事件,需要進行進程排隊。單個緩沖區(qū)和黑板在同一時間下表明了數(shù)據(jù)的流向、訪問關系,所以也需要使用約束條件限制關聯(lián)條數(shù)。
可以使用OCL語言對分區(qū)內的四個對象設置靜態(tài)的約束屬性,其OCL關鍵語句為:
self.attachingConnections(“src”)->size <=1。
self.attachingConnections(“dst”)一> size<=1
該語句表示設置緩沖區(qū)的通信源和目的都只能有一個。
分區(qū)內對象信號量、事件、緩沖區(qū)的約束對象,與黑板相同,通過此約束語句,便可達到AR-INC653標準中定義的約束條件標準。
4 綜合航電分區(qū)內通信實例驗證
在GME環(huán)境中,使用自動化元模型解析工具,將搭建的分區(qū)級元模型解析并生成了綜合航電分區(qū)級建模環(huán)境及建模工具,并使用該建模工具設計了一個關于機載分區(qū)操作系統(tǒng)分區(qū)內電力監(jiān)控的通信配置實例,如圖2所示。該實例包含三個進程,其中CURRENT_POWER進程用于監(jiān)控并顯示當前電量,POWER_WARING進程用于顯示電力不足的報警,PARAMETER_REFRESHER進程用于刷新當前電量。
CURRENT_POWER_Process:此進程可以申請黑板資源用于顯示當前電量狀態(tài),此進程無截止周期,時間容量為無限大,當電量到達一定值后會通知POWER_WARING進程,以觸發(fā)報警系統(tǒng)。
POWER_WARING_Process:此進程用于實時讀取當前電量狀態(tài),并且通過事件通知的方式進行報警,還可以通過Buffer通知PARAMETER_RE-FRESHER進程進行其他變量的管理。
PARAMETER_REFRESHER_Process:此進程用于強制刷新當前電力的變量,如果機載系統(tǒng)突然斷電,此進程運行期間就可以重新讀取當前電量。
根據(jù)設計的元模型約束條件,在圖2的模型中,如果某一對象違反約束,則會提示相信的錯誤信息。在圖2實例模型中,如果將一個進程連了兩條關聯(lián)線到同一內核對象,那么就會發(fā)出報警,如果單個內核對象連了兩條關聯(lián)線到同一進程,那么也會發(fā)出報警狀況。通過每個內核對象的約束條件,在設計模型的過程中,防止越界條件發(fā)生,通過多個內核對象約束條件的限制,可以對模型進行靜態(tài)檢查和方向互補性檢查。
6 結論
通過研究模型驅動(MDA)和特定領域建模的相關理論和方法,分析了綜合航電系統(tǒng)分區(qū)級通信軟件的特性,采用特定領域建模方法,構建了描述綜合航電分區(qū)級建模語言的元模型,實現(xiàn)了對IMA分區(qū)內對象進行可視化配置、靜態(tài)檢查等功能。通過實例驗證了本建模環(huán)境對分區(qū)級對象通信的完整性、易用性、適用性。
下一步的研究工作將主要集中在針對元模型操作的數(shù)據(jù)接口,模型轉化,從代碼中抽取元模型的逆向工程等方向。
參考文獻
[1]
PRISAZNUK P J.ARINC 653 role in integrated modular avionics[C].Proceeding of IEEE/AIAA 27th Digital Avionics SystemsConference.2008.
[2]劉潔,王凱,柏彥奇.MDA中平臺無關模型的抽象表達方法研究[J].兵工自動化,2008,27(1):49-51.
[3] OBJECT MANACEMENT CROUP. OMC model driven architec-ture -the architecture of choice for a changing world [EB/OL].( 2010-06-02) [201 1-05-07].http://www.omg.org/mda/.
[4] OMG.Unified modeling language:superstructure v2.4.1 [EB/OL].http://www.omg.org/spec/UML/2.4. 11, 2011
[5]劉輝,麻志毅,邵維忠,元建模技術研究進展[J].軟件學報,2008. 19(6):1318-1327.
[6]衛(wèi)翔,張立民,齊新戰(zhàn),基于元建模的通用艦艇指控仿真模型驅動引擎設計[J].系統(tǒng)仿真學報,2013,25(8):1919-1929.
[7]王志樂,魏俊淦,于輝.基于元模型特性的機載顯控系統(tǒng)建模方法[J].系統(tǒng)仿真學報,2015,27 (11):2638-2643.
[8]
SHU J, ZHENG C, YANC F Y,et al.Research on applied-infor-mation technology with inter-partition integration testing strategyunder IMA architecture [J]. Advanced Materials Research,2014, 3295( 977): 454-459.