魏曉敏 , 董澤乾 , 肖明睿 , 田 聰
1(西北工業大學 計算機學院,陜西 西安 710072)2(西安電子科技大學 計算機科學與技術學院,陜西 西安 710071)
信息物理融合系統(cyber-physical system,簡稱CPS)[1]融合了物理過程和計算過程,能夠感知環境信息,可以響應真實世界的動態變化.CPS 已經廣泛應用到航空、汽車、醫療衛生和物流等多個領域,其安全性問題受到越來越多的關注[2,3].當代航空系統是復雜的安全關鍵CPS,在設計過程中,需要非常注重系統安全性.ARP 4754A[4]標準將安全性評估過程作為飛機和系統研制過程的一部分,以確保實現的飛機滿足安全性需求.ARP 4754A 標準指出:依據ARP 4761[5]標準在開發階段實施安全性評估,將ARP 4761 標準作為安全性評估的指南和方法.因為民用飛機的研制過程必須嚴格遵循ARP 4754A 標準規定的流程才能取得美國和歐洲的適航認證,所以研究航空系統的安全性評估方法非常必要,可以為完成規定的安全性評估過程提供經驗和技術.
航空領域常用的安全性分析方法有故障樹分析(fault tree analysis,簡稱FTA)、故障模式和影響分析(failure mode and effects analysis,簡稱FMEA)、依賴圖(dependence diagram,簡稱DD)和馬爾可夫分析(Markov analysis,簡稱MA)等.ARP 4761 標準將這些方法運用到民用航空系統及設備安全性評估過程中,并給出系統安全性評估的 3 個過程,依次為功能危險性評估(function hazard assessment,簡稱 FHA)過程、初步系統安全性評估(preliminary system safety assessment,簡稱PSSA)過程和系統安全性評估(system safety assessment,簡稱SSA)過程.PSSA 的主要目的是確認系統架構滿足FHA 過程得到的安全性目標,并將安全性目標分解為子系統/項目(item)的安全性需求.
AADL(architecture analysis and design language)[6,7]是一種支持航空系統設計、可信屬性分析、功能驗證和實現的架構模型設計語言,可用于CPS 建模、分析與驗證[8,9],也可用于系統架構虛擬集成[10],以識別系統各部分設計模型之間的一致性問題.AADL 已受到空客、波音、Honeywell、歐洲航天局和卡耐基梅隆大學等科研和工業機構的廣泛關注[11].基于AADL 模型的設計和開發方法可以降低大規模航空系統設計的復雜度,提高從系統設計到實現的可追蹤性.本文主要針對ARP 4761 標準中PSSA 過程的不足:它僅給出了基于FTA,DD 和MA的PSSA 過程,但是沒有給出從失效概率分配到評估的完整的安全性評估過程,也沒有明確的建議以何種方式將系統失效概率分配給子系統/項目.同時,它未提供基于Petri 網的評估方法,FTA 和DD 很難刻畫多種失效模式之間的依賴關系,而MA 和確定性隨機Petri 網(deterministic stochastic Petri-net,簡稱DSPN)可以自然地刻畫順序依賴事件.DSPN 比連續時間馬爾可夫鏈(continuous-time Markov chain,簡稱CTMC)具有更強的建模和分析能力,因此,本文針對安全關鍵系統AADL 模型提出失效概率分配方法,并且研究基于DSPN 的安全性評估方法.當前,盡管FTA 很難刻畫出一個完整的系統(例如可修復系統),但是工業界仍然主要采用基于FTA 的安全性評估過程,因為FTA 是一種結構化的、易于理解的分析工具,而MA 和DSPN 分析對工程人員的理論要求較高且沒有明確的文獻指導說明.但是,Petri 網既有嚴格的數學表達形式,也有直觀的圖形化表達形式,能夠描述依賴行為、并發行為等,可用于系統設計和可信屬性分析.本文將明確給出基于DSPN 的安全性評估流程,并實現該方法,以便于工程人員參考和使用DSPN 理論評估系統的安全性.
目前,關于失效概率分配的研究文獻比較少,尤其針對航空CPS 領域,但是與其相關的可靠性分配領域有許多成熟的方法[12]可供參考,如等同分配法、模糊分配法和AGREE(advisory group of reliability of electronic equipment)分配方法等.等同分配法操作簡單,但是航空子系統可靠性水平差異較大,不適合直接使用此方法對整個系統進行分配.模糊分配法主要依賴于已有經驗,對設計人員要求較高.文獻[13]針對串聯系統提出了基于模糊數學的可靠性分配方法.AGREE 分配方法是美國國防部電子設備可靠性顧問團提出,用于串聯系統可靠度分配.盡管AGREE 方法考慮了子系統復雜度和系統對整機的重要程度,但是它僅僅用子系統包含的單元數刻畫復雜度,不能直接應用于同時包含子構件和構件之間的交互連接的AADL 模型.此外,因為復雜的航電系統內部是串聯結構和并聯結構的混合體,只考慮串聯或者并聯無法滿足實際需求,并且本文需要的失效概率分配方法要能夠適用于層次化的AADL 模型結構.已有相關研究人員對AGREE 分配方法進行擴展.文獻[14]對AGREE 方法進行改進,結合復雜度和重要度,但是在復雜度方面只考慮構件數量,不適用于具有復雜交互連接關系的AADL 模型.文獻[15]也對AGREE 方法進行改進,以技術成熟度作為復雜度,以構件在電路循環中的重要性和相鄰構件的重要性進行確定構件自身的重要度.這種可靠性分配方法是針對電源轉換器的特征而提出,不適用于AADL 模型.此外,文獻[16]對主要的可靠性分配方法進行綜述,包括ARINC(aeronautical radio,Inc.)、AGREE、目標可行性法(feasibility-of-objectives)、Bracha、平均加權分配法(average weighting allocation method)和最大熵有序加權平均(maximal entropy ordered weighted averaging)等方法,其中,ARINC 和AGREE 方法不能適用于并行系統.文獻[17]提出基于廣義伯恩鮑姆重要測度(generalized birnbaum importance measure)的系統可靠性分配方法,綜合考慮了可靠性范圍、制造復雜度和技術可行性,可以應用于串聯和并聯系統.但是該方法不適用于層次化的AADL 模型,也不適用于包含大量軟件系統的安全關鍵系統.
在基于AADL 的安全性分析和評估方面的研究,文獻[18,19]提出了基于AADL 的危險分析方法,制定出從AADL 模型到DSPN[20]模型的轉換規則,并實現了自動的模型轉換工具,然后對DSPN 模型進行仿真計算,得到危險的發生概率.文獻[21]為可重構系統建立AADL 模型,提出了基于系統安全性的動態重構方法,并將AADL動態重構模型轉換為DSPN 模型,利用DSPN 模型對系統進行仿真,分析系統的安全性.針對電網CPS 的安全性,文獻[9]將系統的正常運行與外部環境威脅刻畫為相互博弈的過程,提出了基于AADL 建模技術和雙人博弈理論的安全性分析方法.文獻[22]將概率模型檢驗方法結合到安全性分析方法中,通過制定模型轉換規則,將AADL 模型轉換為CTMC,并且能自動生成屬性公式,然后基于概率模型的檢驗結果分析系統安全性.文獻[23]基于AADL 模型和概率模型檢驗,提出了自動的系統安全性分析方法,將AADL 模型轉換為概率模型,通過模型檢驗評估系統的安全性,最后生成代碼支持軟件仿真,對安全性評估進行確認.該方法覆蓋了從高級建模到代碼生成的整個設計過程,從平臺獨立模型到平臺描述模型,再到平臺相關模型,其中:平臺獨立模型由AADL 軟件構件刻畫,平臺描述模型由AADL 硬件構件和AADL 錯誤模型刻畫,平臺相關模型由AADL 綁定屬性刻畫.文獻[24]針對一類不確定性敏感(uncertainty-aware)的混成AADL 模型,提出了一種基于統計模型檢驗的定量性能評估方法,擴展了AADL 混成模型語義,制定了規則,將AADL 模型轉為NPTA(network of priced timed automata)模型.文獻[25]利用基于廣義隨機Petri 網(generalized stochastic Petri net,簡稱GSPN),提出了AADL 模型可靠性分析評估工具.文獻[26]擴展了AADL 屬性,提出了基于AADL 的FMECA(failure modes,effects and criticality analysis)方法,可以定性地分析系統安全性.文獻[27]對FMEA 進行了擴展,提出了基于AADL 的安全關鍵嵌入式系統定量分析方法.COMPASS(correctness,modeling and performance of AeroSpace systems)是安全關鍵系統分析驗證工具集[28,29],針對AADL 語言的子集,在安全性分析方面支持FTA 和FMEA 分析方法.以上這些方法都不是針對PSSA 過程而提出的.文獻[30]依據ARP 4761 標準提出了基于AADL 的安全性評估方法,包括基于AADL 的FTA,FMEA,CTMC 和離散時間馬爾可夫鏈(discrete-time Markov chain,簡稱DTMC)等,但是沒有考慮如何將系統失效概率分配給子構件.本文對此提出了解決方案,并進一步提出了基于Petri 網的AADL 模型安全性評估方法.
本文針對安全關鍵系統,提出了基于AADL 的失效概率分配方法.該方法綜合考慮AADL 架構的層次化設計、模型復雜度和構件失效造成影響的嚴重程度,解決了安全性評估過程中如何分配失效概率的問題.結合失效概率分配方法,又提出了基于DSPN 的AADL 模型安全性評估方法,可以有效地評估系統安全性,將FHA 過程得到的安全性目標分解為具體的子構件(包括子系統類型)安全性需求,也為ARP 4761 標準補充了基于Petri網的安全性評估過程方法,為系統安全性評估的實際運用提供指導和參考案例.
本文第1 節介紹AADL 和經典的AGREE 可靠性分配方法.第2 節給出基于AADL 失效概率分配方法及安全性評估方法的框架.第3 節對本文提出的面向AADL 模型的失效概率分配方法進行詳細論述,包括串聯結構和并聯結構的失效概率分配方法.第4 節首先給出本文所提方法的實現算法和工具實現結構圖,然后以簡單的飛行控制系統為典型的CPS 應用案例解釋說明失效概率分配和安全性評估方法,并與ARP 4761 標準給出的安全性評估方法進行比較分析,再對一個復雜的飛行控制系統進行安全性評估,進一步說明方法的可用性.最后,在第5 節總結全文和展望未來研究工作.
AADL[6,7]是架構分析與設計語言,可以將系統刻畫為一種層次化的架構模型.下層構件(子構件)嵌套于上層構件(復合構件)內.AADL 模型中包含子構件的構件稱為復合構件,復合構件可以包含的子構件有系統構件、硬件構件和軟件構件.硬件構件也稱為執行平臺構件,包括設備、處理器、總線和存儲器等.軟件構件包括系統、進程、線程、數據和子程序等.子構件也可以包含子構件,AADL 允許構件之間層層嵌套.構件交互連接方式包括端口連接(connection)、數據訪問、總線訪問和子程序調用等.
錯誤模型附錄(error model annex)[31]是AADL 語言的一個補充,用于支持基于AADL 模型的安全性、可靠性和可用性等可信分析.錯誤模型附錄能夠為架構模型刻畫非功能屬性信息:(1) 通過構件錯誤行為(component error behavior)語句,可以描述構件內的錯誤行為狀態機,包括錯誤、錯誤事件和錯誤變遷;(2) 通過錯誤傳播語句,基于構件之間的連接,可以描述構件之間的錯誤傳播關系;(3) 通過復合錯誤行為(composite error behavior)語句,可以為復合構件建立復合錯誤行為,描述子構件的錯誤狀態對復合構件錯誤狀態的影響;(4) 通過錯誤模型屬性描述語句,可以為錯誤行為描述屬性信息,例如描述錯誤事件發生服從的概率分布類型和參數,以支持隨機錯誤行為的刻畫.通過在AADL 架構模型的構件中建立錯誤模型,從而支持在早期設計階段分析系統的可信屬性.
AGREE 分配方法是系統單元壽命服從指數分布的經典可靠性分配方法,提出該方法的目的是解決電子設備的可靠性分配問題,可以表示為

其中,R表示系統可靠度,ωi表示子系統i的重要度,θi表示子系統i的平均無故障時間,ti表示系統要求子系統i的工作時間,ni表示子系統i所包含的單元數,N表示系統所包含的單元數.
根據公式(1)可以發現:AGREE 方法是按照各子系統的復雜性和重要性進行可靠度分配,不僅考慮了子系統的復雜性和重要性,而且考慮了它們與系統之間的失效關系.
本文提出的基于AADL 的安全性評估方法框架如圖1 所示,針對FHA 給系統指定的安全性目標,將目標分解為具體的安全性需求,并評估子構件是否能夠滿足安全性需求,確認系統滿足安全性目標:
第①步,為系統建立架構模型,包含子構件以及子構件之間的交互連接.再為子構件建立錯誤模型,為每個子構件描述正常狀態、失效狀態和狀態之間的變遷關系以及變遷發生服從的分布與參數.同時,要根據ARP 4754A 標準為失效狀態定義嚴酷度等級,并刻畫于模型中;還要為復合構件建立復合錯誤行為,描述上層構件失效與子構件失效之間的關系,由此建立系統的AADL 模型.
第②步,為了分配失效概率,以系統的AADL 模型作為輸入,利用面向AADL 模型的失效概率分配方法,根據模型的復雜度,為下一層構件生成失效概率分配表,作為子構件的安全性需求,詳細的失效率概率分配方法將在第3 節介紹.
第③步,借助文獻[18,19]實現的從AADL 模型到DSPN 模型的轉換工具,將AADL 模型轉換為DSPN 模型,包括子構件內的錯誤行為狀態機、子構件之間的錯誤傳播、復合錯誤行為和觸發條件中的邏輯表達式等,生成系統的DSPN 模型.利用TimeNet[32]工具對DSPN 模型仿真計算,得到系統和子構件失效狀態的發生概率.
第④步,生成安全性評估列表,包括失效狀態、分配的失效概率Pa、計算得到的失效概率Pc和這兩類概率值的比較結果,由此判斷系統的架構設計是否能夠滿足安全性需求.
· 如果Pa · 如果Pa≥Pc,即,AADL 模型能夠滿足安全性需求,那么此時既保證系統設計模型能夠滿足系統安全性需求,也完成將系統失效概率分配到各個子構件的目的.分配給子構件的失效概率將作為更低層級模型(子構件)安全性評估過程需要滿足的安全性目標. Fig.1 Framework of AADL-based safety assessment approach圖1 基于AADL 的安全評估方法框架 假設AADL 模型中各構件的可靠性服從指數分布,本文提出了面向AADL 模型的綜合的失效概率分配方法,其中,改進AGREE 分配方法提出了AADL 串聯構件分配失效概率,還基于等同分配思想提出了AADL 并聯構件失效概率分配方法. AADL 系統模型中,復合構件的復合錯誤行為能夠描述復合構件失效狀態與其直接子構件失效狀態之間的關系.本文提出的失效概率分配方法基于系統的復合錯誤行為.如果子構件的失效狀態沒有在復合錯誤行為中出現,那么不需要為其分配失效概率,因為它不會對復合構件失效狀態造成影響.在復合錯誤行為中,子構件的狀態組合(復合錯誤行為的發生條件)對復合構件狀態的影響既可以通過邏輯連接詞AND(與)和OR(或),也可以通過邏輯原語ORMORE(或者多于)和ORLESS(或者少于),其中,邏輯原語可以轉換為邏輯連接詞AND 和OR 的組合[18].因此,在失效概率分配過程中,只需要考慮復合錯誤行為包含AND 和OR 的情況.本文提出的AADL 模型失效概率分配方法主要包括以下3 步. 1)首先,為了分配失效概率,對復合錯誤行為的觸發條件進行拆分,每個AND 部分作為一個整體,將發生條件改寫為只包含OR 的邏輯表達式,即析取式.錯誤行為的觸發條件tc可以表示為析取式tc=es1ORes2OR…OResm,其中,es可以是子構件的失效狀態,也可以是子構件失效狀態的AND 組合.通過將tc轉換為析取式,實現子構件之間串聯和并聯關系的重新劃分; 2)其次,從復合構件的角度來看,OR 邏輯表達式的各個組成部分是串聯的關系,即復合構件由子構件串聯而成.復合構件失效的發生概率受串聯的子構件的發生概率影響.因此,對于OR 邏輯表達式中的各個子構件,利用第3.2 節提出的針對AADL 串聯構件的改進過的AGREE 分配方法分配失效概率,運用后文公式(9)將失效概率分配給子構件的失效狀態esi(0 3)最后,對于每個AND 組合,其相當于多個子構件并聯而成.當AND 組合內各個組成部分都失效時,AND 組合失效,所以各組成部分的失效概率的累積等于AND 組合的失效概率.利用第3.3 節提出的針對AADL 并聯構件的失效概率分配方法分配失效概率,運用后文公式(13)為AND 組成的各個組成部分分配失效概率. 在AADL 模型的復合錯誤行為中,OR 邏輯表達式的多個組成部分可能都包含同一個子構件的失效狀態,即同一個子構件的失效狀態出現了多次.對于這種情況,上述面向AADL 的失效概率分配方法會為同一個子構件分配多個失效概率.系統安全性是安全關鍵系統必須要保證的屬性,所以當子構件被分配了多個失效概率時,選取最小的失效概率值作為子構件的安全性需求,也就是以最高的安全性要求約束子構件. 由此,通過結合面向AADL 串聯結構的改進過的AGREE 失效概率分配方法和面向AADL 并聯結構的失效概率分配方法,可對AADL 模型進行失效概率分配. FHA 分配給系統的失效概率,作為PSSA 過程的輸入,由此可以進一步得到復合構件的可靠度.可靠度與失效概率的關系可以表示為[5] 其中,R表示構件可靠度,FP表示構件失效概率. 子構件i的失效率fi與其平均無故障時間θi之間的關系表示為 將公式(2)和公式(3)帶入公式(1),子構件i的失效率fi可以表示為 AADL 模型是一種層次化結構模型,構件之間存在交互連接,本文主要考慮端口連接(數據端口、事件端口和事件數據端口連接)、數據訪問、總線訪問和子程序調用.子構件之間以及子構件內部的交互連接數之和(ci)以及子構件包含的子構件數(si)都是由架構設計決定,這里用ci和si代表架構模型的復雜度,將架構的設計和復雜度結合到失效概率分配方法中.為了將ci和si結合到失效概率分配公式,公式(1)中的N和ni修改為 公式(5)中,ci表示子構件i與其他子構件的交互連接數和子構件內部的交互連接數之和,si表示子構件i自身構件及其所包含的子構件數之和.公式(6)中,m表示復合構件所包含m個子構件. 對于安全關鍵系統,系統的安全性極為重要,因此,本文根據失效狀態的嚴酷度等級定義子構件的重要程度.失效發生所造成的影響分為5 個等級:catastrophic(致命性的)、hazardous(災難性的)、major(嚴重的)、minor(輕度的)和no effect(沒有影響),catastrophic 表示最嚴重,往后依次降低.本文制定了嚴酷度等級與重要度ωi的對應關系,它們分別對應重要度值0.9,0.7,0.5,0.2 和0.001,嚴酷度等級越高,重要程度越高.重要度值可以針對不同的系統,根據專家的經驗進行重新調整和設定.當子構件失效狀態的嚴酷度等級是no effect 時,不需要考慮其失效概率,因為它不會對系統造成影響,在計算過程中直接忽略此子構件.此外,OR 邏輯表達式中AND 組合的ωi值,取AND 組合的各組成部分的重要度平均值. 將公式(5)和公式(6)帶入公式(4),新的失效率計算公式表示為 已知子構件失效率fi與可靠度Ri的關系為 將公式(8)帶入公式(2),子構件失效概率計算方法是 其中,FPi表示子構件i的失效概率,Ri表示子構件i的可靠度. 由此,通過計算架構模型的復雜度(子構件數和交互連接數)和子構件的重要度(失效狀態發生的嚴酷度等級),進而根據公式(9)可以將失效概率分配給子構件.這也符合ARP 4761 標準提出的:PSSA 的實施依賴于架構設計、復雜度和失效狀態的嚴酷度等級等.傳統的方法考慮了復雜度和重要度等因素,主要用于可靠性分配,目前沒有文獻針對AADL 提出失效概率分配方法.經典的AGREE 方法僅僅以子系統包含的單元數作為復雜度,不能充分反映架構設計.本節針對AADL 串聯構件提出的改進的AGREE 分配方法,綜合考慮子構件數和交互連接數,用它們衡量AADL 模型復雜度,更符合AADL 模型層次化、構件互連的特征.為了對整個AADL 模型分配失效概率,后文還提出了AADL 并聯構件失效概率分配方法. 本文提出改進的AGREE 分配方法的前提是:各構件的可靠性要服從指數分布.然而,AADL 模型中可能存在服從確定性時間分布的錯誤事件,使得從AADL 模型轉換得到的DSPN 模型可能包含確定性時間遷移(非指數遷移).這也是合理的,因為在計算穩態(steady-state)概率時,可用指數遷移替代確定性時間遷移,即通過對確定性時間遷移的延遲時間參數,即發生率(firing rate)取倒數作為對應的指數分布的率參數(rate parameter)[20]. OR 邏輯表達式中的AND 組合相當于一組并聯構件.改進的AGREE 分配方法能夠對串聯的子構件分配失效概率,不適用于并聯的子構件.等同分配法適用于并聯結構,但是其假設各個子模塊的失效概率相同,沒有考慮子模塊之間的可靠度差異,不適用于復雜安全關鍵CPS.因此,本節基于等同分配思想提出了AADL 并聯構件失效概率分配方法,并聯結構的整體失效概率計算公式為 其中,FPp表示第p個AND 組合的失效概率,h表示第p個AND 組合有h個組成部分,FPp,t表示分配給第p個AND 組合的第t個組成部分的失效概率. 實際的子構件之間的可靠度差異較大,所以本文將架構模型的設計和復雜度結合到并聯構件分配方法中,子構件的復雜度越高,其失效概率越大,同時要將構件的重要性考慮在內,重要性越高,其失效概率越小.利用公式(5)的ni(ci與si之和)表示模型設計和復雜度,AND 組合中子構件失效概率之間的關系表示為 其中,np,t表示第p個AND 組合的第t個組成部分的復雜度,而wp,t是其重要度值. 將公式(11)帶入公式(10),得到公式(12): 根據公式(5)和公式(12),得到第p個AND 組合的第k個組成部分的失效概率計算公式為 由此,按照公式(13),依據AND 組合(合取式)中子構件的復雜度差異,將失效概率分配給AADL 并聯子構件. 本文提出的失效概率分配方法和AADL 模型安全性評估方法已實現為Eclipse 插件,第4.1 節介紹實現算法以及工具實現結構圖.然后,以簡單的飛行控制系統[33]為典型CPS 案例,在第4.2 節~第4.4 節對提出的基于AADL 的失效概率分配及安全性評估方法進行解釋說明,第4.5 節將所提方法與ARP 4761 標準中的安全性評估方法進行對比分析.最后,第4.6 節對一個復雜飛行控制系統進行分析與驗證,進一步說明所提方法的可用性. 基于AADL 的失效概率分配及安全性評估方法的實現算法如圖2 所示. Fig.2 Algorithm of the AADL-based safety assessment approach圖2 基于AADL 的安全性評估方法實現算法 首先,在第1 行將系統復雜錯誤行為的觸發條件改寫為析取式,由此進一步實施失效概率分配和安全性評估.第4 行~第27 行,利用本文提出的基于AADL 的失效概率分配方法,將失效概率分配給子構件,作為安全性需求.其中:第4 行~第8 行計算每個子構件的ci,si和ωi,以支持后續的失效概率分配;第9 行~第17 行利用面向AADL 串聯構件失效概率分配方法,將失效概率分配給析取式中的每個部分;第18 行~第27 行利用AADL 并聯構件失效概率分配方法,將概率值分配給AND 組合中的子構件.第28 行、第29 行利用DSPN 轉換工具[18]生成DSPN 模型,并計算得到子構件的失效概率.第30 行對比分配的失效概率和計算得到的失效概率,生成安全性評估列表,結束一次安全性評估. 依據安全性評估列表,如果AADL 模型不能滿足安全性需求,那么修改AADL 模型,然后按照圖2 給出的算法重新對系統模型進行評估.以這種方式不斷重復模型修改過程和安全性評估過程,直到建立的AADL 模型能夠滿足安全性需求. 本文提出的基于AADL 的安全性評估方法工具實現結構圖,分為4 個層次,如圖3 所示:工具在Eclipse 集成開發環境(第1 層)上開發;基于AADL 開源工具OSATE(open source AADL tool environment)[34]進行擴充,OSATE 提供了基本的模型設計功能(第2 層),支持第3 層的AADL 建模和模型實例化;第4 層的AADL 模型安全性評估功能,以AADL 實例模型為輸入,能夠為子構件自動分配失效概率,能夠將AADL 實例化模型轉換為DSPN[18],CTMC[22],DTMC 和隨機多人博弈(stochastic multi-players game,簡稱SMG)[9]等模型.本文主要關注DSPN 轉換.為了計算AADL 模型中子構件的失效概率,可以利用現有的計算工具,如TimeNet、概率模型檢驗工具和SMG 驗證工具等.由此,在第4 層的失效概率分配、模型轉換和失效概率計算等功能的基礎上,可以進一步實施AADL 模型安全性評估. Fig.3 Structure of the tool for the proposed approach圖3 本文提出方法的工具結構圖 作為CPS 系統,飛行控制系統(flight control system,簡稱FCS)的AADL 架構模型如圖4 所示.系統包含了兩個通道(channel1 和channel2)、一個數據采集系統(DataCollect)和一個數據輸出系統(output),每個通道包含3個子構件,數據采集系統包含一個子構件,數據輸出系統包含兩個子構件.飛行控制CPS 通過數據采集系統從外界采集數據,并將數據傳輸給兩個通道;兩個通道分別處理數據,然后將處理結果傳給輸出系統;飛控CPS 通過輸出系統將控制數據發送給作動設備.FCS 內部構件之間的連接如圖4 所示. 本文采用的一次飛行時間是參照ARP 4761 標準的案例,平均飛行時長為5 小時,按一次飛行對飛行控制系統進行失效概率分配.假設從FHA 得到飛行控制系統的一次飛行的失效概率是1.0E-4. 為飛行控制系統的每個子構件建立錯誤模型,每個構件包含3 個狀態:正常狀態(operational,簡寫為O)、瞬時錯誤狀態(transient,簡寫為T)和失效狀態(failed,簡寫為F).正常狀態由一個錯誤事件(ee1)觸發到達瞬時錯誤狀態,瞬時錯誤狀態由一個恢復事件(re1)回到正常狀態;瞬時錯誤狀態可能會由一個錯誤事件(ee2)觸發到達失效狀態,失效狀態由一個修復事件(re2)回到正常狀態.各個子構件中的ee1,re1,ee2 和re2 服從的概率分布、發生概率和事件發生需要的時間,如表1 的第3 列~第5 列所示.其中,兩個通道發生瞬時錯誤或失效的概率不一樣.因為實際應用過程中,為了防止兩個通道因為相同的原因失效,通常以不同的方式實現相互冗余的系統.此外,按確定性時間延遲分布發生的事件是在一定時間之后必然發生的,所以發生概率是1.0. Fig.4 AADL architecture model of FCS圖4 飛行控制系統AADL 架構模型 已知指數分布的發生概率和發生需要的時間,根據指數分布公式可以計算出DSPN 模型中遷移(指數遷移和確定性時間延遲遷移)的參數值.要先計算出各個遷移的指數分布率參數λ,由指數分布概率公式(14)可以計算出,如下: 其中,t是時間,F(t)是發生概率. 根據公式(15)可以計算出率參數λ,見表1 第6 列.因為DSPN 計算工具TimeNet 把所有類型的遷移發生時間統一描述為延遲時間,所以要將指數分布遷移的率參數要取倒數,作為延遲時間.對于確定性時間延遲分布遷移的參數,遷移的延遲時間就是其延遲參數[20].依據ARP 4754A[4]標準,為每個子構件失效狀態發生的影響確定嚴酷度等級,兩個通道的嚴酷度等級都是hazardous,另外兩個子系統的嚴酷等級都是major,見表2 第5 列.飛行控制系統發生失效的復合錯誤行為是:當數據采集系統失效、數據輸出系統失效或者兩個通道同時失效時,飛行控制系統失效,即: [DataCollect.DF1 OR channel.C1F1 AND channel2.C2F1 OR Output.OF1]→FCS.SF. Table 2 List of failure probabilities allocation (one flight time)表2 失效概率分配列表 (一次飛行時間) 由此構建出AADL 模型如圖5 所示. Fig.5 AADL model of FCS圖5 飛行控制系統AADL 模型 各個圓圈(〇)表示錯誤狀態,中間有一個黑點的圓圈(·)是初始錯誤狀態,錯誤狀態之間帶實心箭頭(→)的連線表示錯誤變遷,連線上的事件表示觸發錯誤變遷的條件,邏輯AND 組合表示通道1 和通道2 的失效狀態的“與”關系,邏輯OR 組合表示數據采集系統的失效狀態、AND 組合的結果以及輸出系統的失效狀態三者的“或”關系并得到系統失效狀態(SF).這里,系統的復合錯誤行為使用邏輯AND 組合和OR 組合表示. 根據第3 節提出的基于AADL 的失效概率分配方法,將系統失效概率分配給子構件.依據飛行控制系統的復合錯誤行為,因為兩個通道構成了一個AND 組合,所以看作一個整體,使得復合錯誤行為由3 部分的OR 組合,即DataCollect.DF1 OR (channel1.C1F1 AND channel2.C2F1) OR Output.OF1.對第4.2 節構建的AADL 架構模型和錯誤模型進行分析,可以得到公式(9)和公式(13)所需的參數(ci,si和ωi)如表2 所示.進而根據第3.2 節的公式(9),利用本文在第3.2 節改進過的AGREE 分配方法,為數據采集子系統、由兩通道的AND 組合和數據輸出子系統分配失效概率,分配的失效概率值(FPi)如表2 前3 行的倒數第2 列所示.然后,對于兩個通道的AND 組合,根據第3.3 節的公式(13),利用AADL 并聯構件失效概率分配法為兩個通道分配失效概率,見表2 第4 行、第5行的倒數第2 列所示,兩個通道在一次飛行時間內的失效概率都是9.45E-3.表2 中,構件每秒的失效概率FPi(見最后一列)根據一次飛行的失效概率計算得到. 將飛行控制系統的AADL 模型轉換為DSPN 模型如圖6 所示. Fig.6 DSPN model transformed from the AADL model of FCS圖6 從飛行控制系統AADL 模型轉換得到的DSPN 模型 子系統的錯誤模型對應到長方形方框中的DSPN 模型,系統的復合錯誤行為由兩個圓角長方形圈出,一個對應兩個通道失效的AND 組合,一個對應數據采集系統失效、AND 組合的結果和輸出系統失效三者構成的OR 組合. 模型轉換功能依據文獻[18]給出的規則,錯誤狀態轉換為DSPN 的位置(place),初始錯誤狀態對應到帶一個標記(token)的位置;錯誤事件轉換為一個遷移(transition),可以是瞬時遷移(黑色細實心矩形)、指數遷移(寬空心矩形)和確定性時間遷移(黑色寬實心矩形),并且每個遷移可以帶有一個延遲參數(見表1 第6 列);錯誤狀態的邏輯AND 組合按照一個模板進行轉換,如圖6 中對應兩通道失效AND 組合的DSPN 模型,為其添加一個帶單個標記的位置(P4)、3 個瞬時遷移(T7~T9)和一個表示AND 組合結果的位置C1C2F,然后使用弧(空心箭頭和圓圈箭頭)作為它們的連接;同樣的,錯誤狀態邏輯OR 組合也可以按照一個模板進行轉換,最后得到與圖5 的錯誤狀態OR 組合對應的DSPN 模型,詳細的規則請參照文獻[18]. 采用TimeNet 的穩態仿真(stationary simulation)功能的標準(standard)模式[35],通過仿真DSPN 模型的穩態行為進行仿真計算.仿真計算工具配置為:置信度(confidence level)為99%,最大相對誤差(maximal relative error)為5%,概率測度的允許差異(permitted difference for probability measures)為5%,其他參數采用默認值.實驗運行的環境是在Intel(R)Core(TM)i7-3770 CPU@3.40GHz 和16G 內存的平臺上.通過對轉換得到的DSPN 模型進行仿真計算,得到系統和各個子系統的失效概率,見表3 第3 列. 系統的失效概率以及第4.3 節分配的失效概率是一次飛行時間的失效概率,即5 小時內的失效概率,轉換為每秒的失效概率,見表2 的最后一列.計算值與分配值進行比較,所有計算值都小于對應的分配值,因此,架構設計滿足安全性需求,安全性評估列表見表3. Table 3 List of safety assessment(s)表3 安全性評估列表(秒) 從上述分析可以看出:本文提出的基于AADL 的安全性評估方法可以對系統有效地實施評估,其中的失效概率分配方法也是可行的;同時,能夠通過安全性評估的AADL 模型是滿足系統安全性的系統設計模型,在設計階段保證了系統安全性.在實際運用過程中,可能要多次重復失效概率分配和安全性評估過程,才能最終完成安全性需求分解的過程和獲得一個滿足安全性需求的AADL 模型. 本節主要將本文所提方法與ARP 4761 標準中的安全性評估方法進行對比分析.ARP 4761 標準描述了利用FTA,DD 和MA 實施PSSA 的過程,但是沒有提供明確的方法指導工程人員如何將上層系統的失效概率分配給子系統或者項目,FTA,DD 和MA 只是被用于驗證分配的失效概率是否能夠滿足安全性需求.本文提出的基于AADL 的安全性評估方法在兩個方面優于ARP 4761 給出的方法:(1) 本文提出了基于AADL 的失效概率分配方法,綜合考慮了模型的復雜度和系統架構模型特性,而ARP 4761 標準沒有給出失效概率分配方法;(2) 提供了詳細的AADL 模型安全性評估實施流程,能夠指導實際的評估過程,實現了安全性評估工具,能夠降低工程人員的DSPN 理論學習要求,并且能夠輔助評估過程.此外,通過結合DSPN 計算方法,使得本文提出的安全性評估方法具備足夠的安全性評估能力,與ARP 4761 標準提出的方法具有相同的評估能力,詳細的原因如下. ARP 4761 標準明確說明了FTA,DD 和MA3 種方法可以相互替代,同時也說明了FTA 和DD 存在一些不足:FTA 和DD 很難刻畫多種失效模式之間的依賴關系;FTA 只能評估單個頂事件的原因和發生概率;FTA 很難刻畫出一個完整的系統,例如可修復系統,因為這種系統的失效率和修復率是狀態依賴的.而MA 沒有這些問題,可以很自然地刻畫順序依賴事件,具有更強的建模和分析能力.因此,這里主要將本文使用的DSPN 分析方法與MA 方法進行比較. 隨機Petri 網(stochastic Petri-net,簡稱SPN)是狀態之間變遷的發生滿足指數分布延遲時間的Petri 網,SPN與連續時間馬爾可夫鏈(CTMC)同構[36].廣義隨機Petri 網(GSPN)[37]由SPN 擴展而來,位置(place)狀態之間遷移的發生既可以滿足指數分布延遲時間的時間遷移(timed transition),也可以是立即發生的立即遷移(immediate transition).立即遷移的發生需要的時間為0,它的優先級高于時間遷移.同樣,可以將GSPN 轉換為一個等價的CTMC,而且轉換難度會比將SPN 轉換為CTMC 更簡單[36].DSPN 由GSPN 擴展而來,在GSPN 的基礎上增加了一種時間遷移,遷移發生前的延遲時間是一個常量,即確定性時間延遲.本文使用的DSPN,同一個位置狀態上只能有一個確定性時間延遲分布的遷移.由此,基于DSPN 與半馬爾可夫鏈(semi-Markov chain)同構[36]的理論,可以將DSPN 轉換為等價的半馬爾可夫鏈.半馬爾可夫鏈是狀態之間變遷的發生可以服從一般概率分布(general distribution)的時間延遲,即狀態逗留時間可以是一般概率分布.當半馬爾可夫鏈中狀態變遷之間的時間分布是指數分布分布時,這個半馬爾可夫鏈是一個CTMC.當半馬爾可夫鏈中狀態變遷之間的時間分布只是一個時間點時,這個半馬爾可夫鏈是一個DTMC. 由上述內容可知:DSPN 的描述能力比GSPN 強,GSPN 與CTMC 同構,所以DSPN 的描述能力比CTMC 強.此外,在分析DSPN 模型時,許多計算工具需要將DSPN 轉換為同構的半馬爾可夫鏈,而不是CTMC.所以基于現有的DSPN 分析工具,本文提出的利用DSPN 模型的安全性評估方法也能比利用CTMC 的方法好.從整體方法的角度來看,本文提出的安全性評估方法比ARP 4761 中的方法更為明確,包含了失效概率分配和驗證失效概率是否滿足安全性需求,實施過程更為具體、清晰. 為了更好地驗證本文所提方法可用于復雜系統,本節依據文獻[18]給出的復雜飛行控制系統(FCS),對該復雜系統進行安全性評估,系統內部可以不是子系統,可以是進程和設備等,符合ARP 4761 標準的要求,對子系統/項目分配失效概率并評估安全性.為系統建立AADL 模型,如圖7 所示,包括架構模型和錯誤模型. Fig.7 AADL model of the complex FCS圖7 復雜飛行控制系統AADL 模型 FCS 架構模型包括9 個設備和11 個進程,設備包括空氣數據系統(ADS)、姿態和航向參考系統(AHRS)、慣導系統(INS)、無線電測高儀(RA)、電子飛行信息系統(EFIS)和伺服作動器(SA),進程包括輸入同步、輸入表決、控制率計算、輸出同步、輸出表決、機內測試(BIT)和輸出(OP).錯誤模型由圖中的圓圈、方框和帶箭頭的連線構成,圓圈表示錯誤狀態(O 表示正常狀態,F 表示失效狀態),方框表示錯誤事件(IE 表示構件內導致失效的錯誤事件,R 是恢復事件,IP 是錯誤傳播導致的向內傳播點),黑線表示錯誤變遷,紅線表示錯誤傳播.為了使圖7更為清晰,直接用線程的失效狀態表示進程的失效狀態.依據文獻[18]使用的參數,錯誤事件的分布類型和參數(Exp 表示指數分布),如圖中所示.各個構件的嚴酷度等級見表4 第5 列.FCS 的復合錯誤行為是:[AHRS.F and RA.F and INS1.F and INS2.F or ADS1.F and ADS2.F and EFIS1.F and EFIS2.F or CLC1.F and CLC2.F or ISn1.F and ISn2.F and IV1.F and IV2.F or OSn1.F and OSn2.F and OV1.F and OV2.F or BIT1.F and BIT2.F and OP.F and SA.F]→FCS_F. Table 4 List of failure probabilities allocation (one flight time)表4 失效概率分配列表 (一次飛行時間) 與第4.2 節相同,假設從FHA 得到飛行控制系統的一次飛行的失效概率是1.0E-4.依據第3 節提出的失效概率分配方法,分配的一次飛行時間失效概率見表4,進一步計算得到每秒的失效概率.再將AADL 模型轉換為DSPN 模型,包括108 個位置、141 個遷移和413 條弧.通過使用TimeNet 仿真計算得到各失效狀態的發生概率(運行環境和工具配置與第4.4 節相同),見表5,耗時4'16". 由表5 的第9 行、第10 行、第13 行、第14 行和第22 行可見,CLC1,CLC2,IV1,IV2 和SA 不能滿足安全性需求. 為了使系統AADL 模型滿足安全性要求,需要修改模型,通過調節參數值的形式來改進模型設計.降低IV1和IV2 構件的錯誤事件IE 的率參數,增加恢復事件R 的率參數,提高它們的質量要求,即,要求在設計和開發過程中使IE 發生的可能性足夠低和R 發生的可能性足夠高.在詳細設計IV1 和IV2 時,可以采用的方式有添加冗余構件或者增加防護措施等.對于CLC1,CLC2 和SA,也采用同樣的方式.因此,通過將IV1 和IV2 的IE 事件參數值調整為5.0E-6,R 事件的參數調整為30.0;CLC1 和CLC2 的R 事件的參數調整為30.0;SA 的IE 參數值調整為1.0E-5,R 事件參數調整為30.0.AADL 模型的其余部分不變,所以分配的失效概率也保持不變.最后進行仿真計算,CLC1.F,CLC2.F,IV1.F,IV2.F 和 SA.F 的發生概率分別是 1.656396E-7,1.657927E-7,3.322293E-7,3.327276E-7 和3.353078E-7,系統及其子構件都滿足安全性需求.為節省空間,不再列出新的安全性評估列表. 本文提出一種面向安全關鍵CPS 的AADL 模型失效概率分配方法,同時,利用失效概率分配方法和DSPN計算方法進一步提出基于AADL 的安全性評估方法.分析AADL 模型的特性,針對串聯構件改進經典的AGREE分配方法,基于等同分配思想,提出AADL 并聯構件失效概率分配方法.結合這兩種方法提出針對AADL 模型的失效概率分配方法,在失效概率分配過程中綜合考慮AADL 模型的架構設計和復雜度,將子構件的交互連接數量和子構件數量綜合到失效概率分配公式中.以此為基礎,本文提出AADL 模型安全性評估方法,能夠先為子構件分配失效概率作為安全性需求,再將AADL 模型轉換為DSPN 模型,然后計算每個子構件的失效概率,進而將計算的失效概率與分配的安全性需求進行比較,判斷架構模型是否滿足安全性需求.若不滿足,修改AADL 模型,重復進行面向AADL 模型的失效概率分配和利用DSPN 模型的失效概率計算,直到AADL 模型滿足安全性需求,完成對系統的安全性評估,將FHA 過程得到的安全性目標分解為具體的子構件安全性需求.案例分析表明:本文提出的方法能夠應用于失效概率分配,提出的AADL 模型安全性評估方法結合了失效概率分配方法和DSPN 計算模型,可以有效地運用到飛行控制系統安全性評估過程中,可作為ARP 4761 標準中失效概率分配和基于Petri 網的PSSA 過程的參考方法. Table 5 List of safety assessment (s)表5 安全性評估列表 (秒) 下一步,我們計劃將本文提出的方法應用到更多類別的安全關鍵CPS 系統中,為研究人員和工程人員提供更多的分析和評估案例.我們也將把更多的安全性分析方法結合到安全性評估過程中,例如基于隨機多人博弈理論的安全性分析方法[9],在早期設計階段將外部威脅考慮在內.另外,當通過模型計算得到的失效概率不能滿足分配的失效概率時,如何重新設計和優化AADL 模型結構以滿足安全性需求,是我們需要進一步研究的工作.此外,隨著系統開發過程的推進,AADL 模型被不斷細化,模型包含的信息越來越多,如參數連接等,針對系統開發后期更為詳細的AADL 模型,需要改進AADL 模型失效概率分配方法.
3 面向AADL 模型的失效概率分配方法
3.1 AADL模型失效概率分配方法
3.2 AGREE分配方法的改進







3.3 AADL并聯構件失效概率分配方法




4 工具實現與案例分析
4.1 工具實現


4.2 建立飛行控制系統的AADL模型



4.3 分配系統失效概率
4.4 生成DSPN模型和安全性評估列表


4.5 安全性評估方法對比分析
4.6 復雜飛行控制系統分析


5 總結與展望
