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