999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向航天領域的模型驅動軟件設計開發方法*

2017-11-21 04:23:17王海鵬梁運暢王智飛
航天控制 2017年5期
關鍵詞:安全性故障方法

張 濤 秦 凱 王 楠 王海鵬 梁運暢 王智飛

1.西北工業大學軟件與微電子學院,西安 710072 2.北京神舟航天軟件技術有限公司,北京 100094

面向航天領域的模型驅動軟件設計開發方法*

張 濤1秦 凱1王 楠2王海鵬1梁運暢1王智飛1

1.西北工業大學軟件與微電子學院,西安 710072 2.北京神舟航天軟件技術有限公司,北京 100094

針對航天嵌入式任務關鍵軟件特點,研究基于AADL模型,實現對其結構模型、行為模型、故障模型和執行模型的多維度描述。通過構造其代碼規則模板,實現從模型到源程序的自動化映射,降低編程工作量。研究將AADL模型轉換為故障樹模型和時間自動機模型,分析驗證軟件安全性與可調度性;通過構建航天領域模型庫,支持大規模軟件復用。最后,基于所開發的航天型號軟件模型驅動開發平臺,對航天飛行器GNC系統的軟件開發進行了初步驗證,結果表明模型驅動的軟件開發方法能有效提高航天型號軟件開發效率和質量。

模型驅動軟件開發;軟件代碼生成;軟件安全性分析;軟件可調度性分析

隨著探月工程、空間站等國家重大航天工程的實施,航天型號軟件的規模與復雜度也在指數級增加,這對傳統航天型號軟件開發方法與技術提出了嚴峻的挑戰[1]。例如,航天型號軟件屬于典型的安全關鍵軟件,其質量將直接影響航天器和航天員安全,而如何系統、全面地分析與測試軟件安全性、實時性等質量屬性是其技術難點。隨著航天型號軟件研發工作量劇增,如何提高軟件研發效率,保證軟件研發質量與進度是目前面臨的挑戰。航天型號軟件研發過程中通常需要多次迭代,如何保證需求、設計和代碼的一致性,是軟件管理難點。

模型驅動的軟件開發方法是一種以模型為核心的軟件開發方法,已經在航空、航天及核電等眾多領域得到廣泛應用[2]。該方法將模型定義為系統在外部環境下完成設計功能的描述或者規范,著重關注軟件設計正確性,支持盡早分析和驗證系統設計的軟件屬性,并支持不同級別模型之間的映射與抽取,以及代碼的自動生成。研究和應用模型驅動的軟件開發方法,有助于提高航天型號軟件開發效率和質量,促進我國航天型號軟件技術水平的進步。

本文首先給出了模型驅動軟件開發方法的基本概念,并與傳統軟件開發方法進行了對比分析;然后針對航天領域軟件開發需求,詳細討論了模型驅動軟件開發方法的關鍵技術;最后介紹了模型驅動軟件開發平臺框架,并以航天飛行器GNC系統為例,說明了方法的有效性。

1 模型驅動軟件開發方法概述

模型驅動軟件開發方法是由OMG組織提出的一種軟件開發框架,其核心思想是以模型,而非代碼為中心的軟件開發模式。通過開發模型,達到分離問題域、業務邏輯以及具體實現平臺的目標[3]。如圖1所示,模型驅動軟件開發方法包括4個層次模型:計算獨立模型(CIM)、平臺獨立模型(PIM)、平臺相關模型(PSM)和代碼模型。其中,CIM是從用戶視角描述特定領域所面臨的問題即系統需求,例如UML中的用例模型;PIM是與實現平臺無關的軟件系統結構和功能的高度抽象設計模型;PSM描述了與特定平臺技術相關的軟件詳細設計模型;代碼模型即軟件源程序代碼,通常由PSM模型自動生成。

模型驅動軟件開發方法支持PIM到PSM,PSM到源程序代碼之間的雙向映射與抽取。通過映射,基于上層模型自動生成下層模型和源程序代碼,提高軟件開發效率。而通過抽取,保證下層模型變化后仍能與上層模型保持一致。因此,模型驅動的軟件開發方法有效解決了軟件開發各個階段間不同層次抽象模型之間的一致性問題,使得開發人員集中關注系統業務與設計,減少實現細節干擾,并且通過映射PIM到不同的PSM,實現在不同平臺上的快速適配。

圖1 模型驅動軟件開發過程框架

如圖2所示,與傳統軟件開發方法相比,模型驅動軟件開發方法具有顯著優勢。首先,通過構造模型,使得軟件開發參與者能可視化的理解所開發的軟件系統,減少因溝通引發的軟件故障;其次,通過構造形式化、半形式化軟件模型,避免傳統軟件文檔描述的模糊性。并且,基于模型,可以在軟件開發的初期階段,分析驗證軟件行為、安全性和可調度性等重要質量屬性,盡早發現軟件設計缺陷,降低軟件故障修正成本;最后,基于模型軟件開發方法,支持自動化的代碼生成,減輕編程工作量,提高軟件開發效率,避免了軟件設計與實現的不一致。

2 航天領域模型驅動軟件開發關鍵技術

體系架構分析與設計語言AADL是由CMU等機構提出的一種嵌入式軟件標準建模方法,已在國外成功應用于航天、航空和核電等嵌入式任務關鍵領域[4-5]。本文以AADL模型為基礎,研究針對航天型號軟件的結構、行為、安全性和調度性等特征的建模方法,以及基于模型的航天型號軟件質量分析與驗證,代碼和文檔自動生成等關鍵技術。

圖2 模型驅動軟件開發方法與傳統軟件開發方法比較

2.1 基于AADL的航天嵌入式軟件建模方法

模型是對軟件結構、行為、以及其他質量特性的抽象描述。在航天型號軟件開發過程中,針對各個階段的需求,需要設計和開發不同抽象級別和類型的軟件模型。主要的航天嵌入式軟件模型包括:硬件環境模型、軟件結構模型、行為模型、錯誤模型及執行模型等。

在嵌入式系統中,軟硬件是緊密耦合的,AADL支持構造軟硬件一體的系統結構模型。AADL定義了3類構件:軟件構件、執行平臺構件以及系統構件。軟件構件用于軟件體系結構建模,包括數據(data)、線程(thread)、線程組(thread group)、進程(process)和子程序(subprogram)構件;執行平臺構件用于硬件體系結構建模,包括處理器(processor)、虛擬處理器(virtual processor)、存儲器(memory)、總線(bus)、虛擬總線(virtual bus)和外設(device)構件;系統構件組合所有的構件,層次化地建立系統的體系結構。

AADL行為附件則基于狀態機,描述線程、子程序構件的具體行為。行為附件通過定義構件的狀態、變遷、觸發條件和動作等詳細建模構件行為。行為附件支持的動作包括:接受/發送數據、子程序調用、異步訪問、執行時間和延遲時間等。

AADL提供錯誤模型附件(Error Model Annex),用于建模和描述構件、連接等系統故障。AADL錯誤附件的本質是一個隨機自動機,通過聲明潛在的故障狀態、故障事件以及故障傳播等,支持分析系統發生故障的概率。AADL錯誤附件也可以與故障樹分析、馬爾科夫鏈和依賴圖等方法相互集合,支持對系統的可靠性、安全性和可用性等的定量分析。

AADL提供執行模型用于描述系統的運行環境,管理和支持構件的同步或者異步執行,包括構件分發、同步/異步通信、調度和模式演化等行為。AADL默認調度模式為帶同步通信的搶占式調度。基于執行模型,支持對系統的可調度性分析與驗證。針對航空領域,已經擴展了對應的ARINC653調度模型。針對航天嵌入式系統的具體應用特性,需要擴展開發相應的調度策略與可調度性分析模型。

2.2 模型驅動的軟件代碼生成方法

AADL模型到代碼的自動生成,有助于提高嵌入式實時系統軟件開發的自動化水平,縮短軟件開發周期,減少人工寫代碼的工作量和編碼過程中出錯的可能性。目前,AADL代碼生成方法主要采用基于規則的代碼生成方法,即如圖3所示,通過模型解析,按照線程、子程序等構件和連接件的代碼轉化規則,由模板引擎實現從模型到代碼的自動化映射與轉換。

圖3 基于模板的自動代碼生成工具結構圖

2.3 模型驅動的航天型號軟件安全性分析方法

模型驅動的航天型號軟件安全性分析方法,通常是將系統的AADL模型轉換為軟件故障樹、馬爾科夫鏈及廣義隨機Petri網等模型,分析和計算軟件的安全性[6]。這里以故障樹分析為例,具體描述基于模型的軟件安全性分析方法。

故障樹是航天領域廣泛使用的軟件安全性分析方法。傳統基于故障樹的安全性分析,由人工完成,難以保證故障樹的完備性與一致性。模型驅動的軟件安全性分析方法,則通過將軟件模型直接映射為軟件故障樹,支持基于割集的軟件安全性定性分析[7]。在AADL模型中,根據其結構模型和錯誤模型,通過所定義的映射規則,生成軟件故障樹模型,然后采用最小割集方法定性分析。

軟件故障樹的生成步驟如下:

1)系統錯誤模型實例提取: 系統錯誤模型實例包括構件錯誤模型實例、通信錯誤模型實例以及系統實例。在生成故障樹時,需要提取其構件的Model_Hierarchy, Derived_State_ Mapping, Occurrence 和 Guard_In等屬性。并進一步根據其傳播路徑,以有向圖方式描述其故障傳播路徑;

2)生成中間故障樹: 基于故障傳播有向圖,可以生成中間故障樹。在中間故障樹中可能存在多余操作符號、崩潰門及故障傳播循環路徑等問題,需要進行處理;

3)優化中間故障樹:針對同一故障樹的共享子樹問題,以及不同故障樹之間的共享子樹問題,進行故障樹優化處理。

2.4 模型驅動的航天型號軟件可調度性分析方法

航天嵌入式軟件多屬于強實時軟件系統,可調度性是其重要屬性。在標準AADL模型中,支持對帶同步通信的搶占式調度策略分析;而航天型號軟件可調度性分析則更為復雜和困難,其根據CPU架構分為:單處理器調度和多處理器調度。針對多處理器,又包括局部調度和全局調度。調度算法又包括:固定優先級調度和最短截止時間調度等。

UPPAAL是一種常用的實時系統模擬與驗證工具,其模型是時間自動機[8]。通過將AADL模型映射為UPPAAL的時間自動機模型,可以基于該工具自動仿真和驗證系統的可調度性。這里,時間自動機定義為一個六元組,TA=,其中:

L是自動機狀態(Location)的集合;

l0(l0∈L)表示自動機的初始狀態;

C是時鐘(Clock)的集合,時鐘默認從0開始,不斷自增1,可以在任意時刻被重新賦值;

Var是一系列變量的集合;

E是邊(Edge)的集合,E?L×G×Act×U×L,其中,G(有可能為空)表示約束條件(guards),只有滿足約束條件才能發生狀態轉移;Act表示同步信號,構成了觸發轉移的使能條件;U表示對時鐘變量或整型變量的更新操作,即在觸發轉移的同時完成變量的賦值操作;

I表示不變條件(invariant),是狀態轉移約束函數的集合。

為了實現從AADL模型到UPPAAL模型的自動化映射與轉換,需要為其典型任務、調度策略等設計映射模板。轉換工具則基于映射模板,將AADL模型中的線程等元素轉換為UPPAAL模型,再采用UPPAAL分析工具實現自動化仿真分析,在圖4中,給出了AADL-UPPAADL映射模板示例。

圖4 AADL-UPPAAL任務模板示例

2.5 面向航天領域模型的軟件可復用技術

模型驅動的軟件開發方法支持基于模型的大規模軟件復用。火箭、衛星等航天產品具有大量的相似特征,這使得開發面向火箭、衛星等典型航天產品線的領域模型成為可能。如圖5所示,在航天領域模型中主要包括2類領域模型:1)通用航天組件模型,如典型航天CPU、總線等硬件組件模型;2)面向航天產品族的領域模型,如面向火箭、衛星等,設計開發其軟件組件模型、體系結構模型及故障模型等。

圖5 航天領域軟件模型

在新型號軟件研發過程中,可以直接復用領域

模型庫中的已有模型。通過復用已有模型,不僅復用了軟件設計,同時也復用了軟件代碼、測試用例及軟件安全性報告等模型派生的相關軟件資產。并且,這些模型已經得到了充分驗證,保證了航天型號軟件質量與可靠性。

3 航天型號軟件模型驅動開發平臺設計

航天型號軟件模型驅動開發平臺采用開放式Eclipse框架設計,支持動態集成和擴展模型驅動軟件開發工具,其系統框架如圖6所示。在系統框架中,航天領域模型庫提供航天通用組件模型庫、火箭模型庫和衛星模型庫。設計人員在開發軟件模型時,可以從領域模型庫中直接復用已有產品和組件模型,提高軟件建模效率和質量。根據軟件規格說明中的功能和安全性等質量需求,分別構造其結構模型、行為模型、環境模型、執行模型和故障模型。然后應用代碼轉換規則模板,由代碼生成引擎自動生成軟件源程序。通過將其環境模型和執行模型轉換為時間狀態機,集成已有分析工具開展可調度性分析驗證。通過將故障模型自動映射為故障樹模型,應用最小割集等方法開展安全性定性分析。

圖6 航天型號軟件模型驅動開發平臺框架

4 模型驅動軟件開發方法的航天應用實例

本文以航天飛行器GNC系統為例,初步驗證模型驅動的軟件開發方法的有效性。GNC系統主要包含4個周期性任務:控制任務、系統管理任務、遙測任務和空閑任務。圖7給出了GNC系統的結構模型,其主要構件包括進程構件、全局共享數據、處理器構件、存儲器構件和總線構件等。在結構模型之上,附加其行為描述、錯誤附件、調度信息及資源信息等,形成完整的GNC系統模型。

圖8給出了GNC系統中處理器構件的錯誤狀態轉移過程。根據分析,處理器構件中存在6個故障狀態和8個故障事件,使用錯誤附件子語言對處理器構件進行錯誤建模,如圖9所示。基于該系統模型,實現了對GNC子系統設計一致性檢查,以及對安全性、可調度性的分析驗證,共發現重大設計缺陷和故障7處。最后,基于模型自動生成了82%的源程序代碼,有效減輕了編程工作量。通過本實例證明了在航天領域中使用模型驅動的軟件開發方法能夠有效提高航天型號軟件開發效率和質量。

圖7 GNC系統AADL結構模型

圖8 處理器錯誤狀態轉移過程

圖9 處理器錯誤模型

5 結論

針對當前航天型號軟件開發遇到的挑戰與問題,探討了模型驅動軟件開發方法在航天領域的應用。針對航天嵌入式任務關鍵軟件特點,分別研究了基于AADL的航天型號軟件建模方法、模型驅動的軟件代碼生成、安全性分析及可調度分析等關鍵技術。提出了構建航天領域模型庫,實現大規模基于模型的軟件復用思想。最后,描述了面向航天領域的模型驅動軟件開發平臺框架,并通過GNC系統實例初步驗證了模型驅動方法在航天型號軟件開發中的有效性。

[1] 李曉涼. 航天型號可靠性分析及軟件的實現[D]. 電子科技大學, 2014.

[2] France R, Rumpe B. Model-driven Development of Complex Software: A Research Roadmap [C]// Future of Software Engineering. IEEE, 2007:37-54.

[3] Vanzandt L L. Intentions and Issues of Model-driven Development and an Introduction to the OMG MARTETMProfile[C]// Aerospace Conference. IEEE, 2009:1-13.

[4] Blouin D, Giese H. Combining Requirements, Use Case Maps and AADL Models for Safety-Critical Systems Design[C]// Euromicro Conference on Software Engineering and Advanced Applications. 2016:266-274.

[5] Liu Y, Shen G, Wang F, et al. Research on AADL Model for Qualitative Safety Analysis of Embedded Systems[J]. International Journal of Multimedia & Ubiquitous Engineering, 2016, 11(6):153-170.

[6] Liu Y, Shen G, Huang Z, et al. Quantitative Risk Analysis of Safety-critical Embedded Systems[J]. Software Quality Control, 2016, 40:1-25.

[7] Banach R, Bozzano M. The Mechanical Generation of Fault Trees for Reactive Systems Via Retrenchment II: Clocked and Feedback Circuits[J]. Formal Aspects of Computing, 2013, 25(4):609-657.

[8] Hessel A, Larsen K G, Nielsen B, et al. Time-Optimal Real-Time Test Case Generation Using Uppaal[J]. Lecture Notes in Computer Science, 2003, 2931:114-130.

ResearchonModel-DrivenAerospaceSoftwareDevelopmentMethod

Zhang Tao1, Qin Kai1,Wang Nan2,Wang Haipeng1, Liang Yunchang1,Wang Zhifei1

1. Software College, North-west Industrial University, Xi′an 710072, China 2. Beijing Shenzhou Aerospace Software Technology Ltd.Co., Beijing 100094, China

Somekeytechniquesarediscussedforusingthemodel-deriveddevelopmentmethodinaerospacedomain.TheAADLisusedtobuildarchitecturemodel,environmentmodel,behaviormodel,errormodelandexecutionmodelforaerospacesoftware.BasedonAADLmodel,thesourcingcodesaregeneratedautomatically,whichlightenstheprogrammingworkload.TheauthormanagestoanalyzeandcheckitssafetyandsustainabilitybytransformingADDLmodeltofaulttreeandfiniteautomatamachinemodel.Aaerospacedomainmodelsdatabasecanbedevelopedtosupportlarge-scalere-usebysoftwaremodels.Theframeworkofaerospacemodel-drivensoftwaredevelopmentplatformisalsoprovided.AndthespaceGNCsystemisusedtoverifytheeffectivenessofmodel-derivedapproach.

Model-drivensoftwaredevelopment;Softwarecodegeneration;Softwaresafetyanalysis;Softwareschedulerisk

TP311.5

A

1006-3242(2017)05-0074-06

* 航天科技支撐計劃(2014HTXGD);載人航天工程軟件工程化基礎預研課題(2016XXXX);上海航天科技創新基金(2017XXXX);航天科學技術基金項目(17XXXX);西北工業大學研究生創意創新種子基金(Z2016191);陜西省科技攻關項目(2016GY-100)

2017-03-27

張濤(1976-),男,陜西人,博士,副教授,主要研究方向為軟件工程;秦凱(1994-),男,山西人,碩士,主要研究方向為軟件工程;王楠(1980-),男,陜西人,碩士,高級工程師,主要研究方向為模型驅動;王海鵬(1975-),男,山西人,博士,副教授,主要研究方向為模型驅動;梁運暢(1993-),男,山西人,碩士,主要研究方向為軟件工程;王智飛(1991-),男,山西人,碩士,主要研究方向為模型驅動。

猜你喜歡
安全性故障方法
兩款輸液泵的輸血安全性評估
新染料可提高電動汽車安全性
故障一點通
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
奔馳R320車ABS、ESP故障燈異常點亮
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
故障一點通
江淮車故障3例
主站蜘蛛池模板: 免费啪啪网址| 久久超级碰| 九色综合视频网| 精品剧情v国产在线观看| 国产精品永久免费嫩草研究院| 成年A级毛片| 囯产av无码片毛片一级| 无码精品国产dvd在线观看9久| 成人免费一区二区三区| 久久99国产精品成人欧美| 成年A级毛片| 久久综合九九亚洲一区| 国产精品亚洲日韩AⅤ在线观看| 97se亚洲综合在线| 国产麻豆精品手机在线观看| 欧美激情第一区| 一本色道久久88亚洲综合| 日韩精品毛片人妻AV不卡| 麻豆国产在线观看一区二区 | 美女潮喷出白浆在线观看视频| 久久精品嫩草研究院| 2018日日摸夜夜添狠狠躁| 免费看一级毛片波多结衣| 国产麻豆另类AV| 欧美亚洲一区二区三区导航| 亚洲成肉网| 91色爱欧美精品www| 久久99热这里只有精品免费看| 欧美日韩午夜| 成人国产免费| 美女内射视频WWW网站午夜 | 亚洲美女视频一区| 香蕉久久国产精品免| 精品国产成人高清在线| 日韩精品毛片| 国产一在线| 亚洲男人的天堂网| 亚洲国产精品日韩专区AV| 伊人91在线| 亚洲人成网18禁| 欧美成人日韩| 综合网天天| 色噜噜综合网| 98超碰在线观看| 久热中文字幕在线| 亚洲aaa视频| 久久精品亚洲专区| 国产成人久久综合一区| 最新国产麻豆aⅴ精品无| 日韩A∨精品日韩精品无码| 亚洲综合色区在线播放2019| 国产在线视频导航| 国产亚洲一区二区三区在线| 综合色区亚洲熟妇在线| 国产精品香蕉在线观看不卡| 六月婷婷精品视频在线观看| 无码网站免费观看| 人人91人人澡人人妻人人爽| 亚洲经典在线中文字幕| 最新精品久久精品| 亚洲精品天堂自在久久77| AV色爱天堂网| 久久久久人妻一区精品色奶水 | 欧美在线黄| 亚洲日本精品一区二区| 奇米影视狠狠精品7777| 美女国产在线| 亚洲精品卡2卡3卡4卡5卡区| 亚洲男人天堂网址| 日韩精品成人在线| 久久久波多野结衣av一区二区| 国产精品第一区在线观看| AV不卡无码免费一区二区三区| 日本成人福利视频| 亚洲欧美日韩综合二区三区| 国产精品一区二区国产主播| 亚洲人视频在线观看| 成人精品免费视频| 国产在线一区视频| 91青草视频| 爱色欧美亚洲综合图区| 久久精品国产精品青草app|