国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于特征配置的系統(tǒng)層綜合模型安全驗(yàn)證方法與流程

      文檔序號:11583085閱讀:402來源:國知局
      一種基于特征配置的系統(tǒng)層綜合模型安全驗(yàn)證方法與流程

      本發(fā)明涉及一種模型安全驗(yàn)證方法,特別是一種基于特征配置的系統(tǒng)層綜合模型安全驗(yàn)證方法。



      背景技術(shù):

      伴隨著航空航天技術(shù)的發(fā)展,現(xiàn)代太空任務(wù)和諸如航天器這樣的安全關(guān)鍵系統(tǒng)的設(shè)計(jì)正面臨著巨大的挑戰(zhàn)?!盎诮M件的工程(component-based)”在工程師進(jìn)行復(fù)雜的系統(tǒng)設(shè)計(jì)中是一個重要且行之有效的典范。在基于組件的工程的設(shè)計(jì)中,核心思想是組件的行為(組件實(shí)現(xiàn))和單個組件之間的交互需要給予清楚的區(qū)分。其中,組件可能是以層次化的結(jié)構(gòu)進(jìn)行復(fù)合組成的可視化模型;而組件實(shí)現(xiàn)的內(nèi)部結(jié)構(gòu)通過分解成更小的子組件、軟硬件綁定和利用端口連接后的交互被指定;組件的行為通常被描述成一種有限狀態(tài)機(jī)——文本形式的模式遷移圖。

      由于安全關(guān)鍵系統(tǒng)所涉及的應(yīng)用場景愈發(fā)復(fù)雜和多變、系統(tǒng)設(shè)計(jì)涉及到多樣化的需求(如:功能正確,可靠,可觀測,性能等),這些需求在開發(fā)早期由不同團(tuán)隊(duì)或者領(lǐng)域?qū)<姨岢?,而這些需求提出者之間缺少充分交流,導(dǎo)致需求整合后出現(xiàn)一些問題。面對這些挑戰(zhàn),由歐洲宇航局(esa)贊助的compass項(xiàng)目,提出了一個為航空航天領(lǐng)域安全關(guān)鍵機(jī)載系統(tǒng)量身定制的、綜合的、基于模型的系統(tǒng)開發(fā)方法,完成需求分析、系統(tǒng)建模、系統(tǒng)功能正確性和性能分析工作。該方法基于系統(tǒng)層綜合建模語言slim(system-levelintegratedmodelling),為系統(tǒng)工程師提供了簡便的方法,用來描述標(biāo)定的軟硬件行為以及系統(tǒng)發(fā)生(概率)故障、故障傳播所引起的系統(tǒng)退化和故障情況下系統(tǒng)的恢復(fù)。這種方法的根本特點(diǎn)是對模型進(jìn)行擴(kuò)展:從系統(tǒng)的標(biāo)定模型和一系列可能的故障出發(fā),擴(kuò)展操作將兩者結(jié)合產(chǎn)生了一個對發(fā)生故障后系統(tǒng)行為的描述。

      由于slim是一種半形式化的建模語言,只是對系統(tǒng)的行為進(jìn)行了描述,不能對slim模型進(jìn)行非功能屬性進(jìn)行分析。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明所要解決的技術(shù)問題是提供一種基于特征配置的系統(tǒng)層綜合模型安全驗(yàn)證方法,它實(shí)現(xiàn)了slim模型到fpromela模型的轉(zhuǎn)換,利用集成的snip工具完成slim模型的檢測,解決了單一slim模型不能進(jìn)行非功能屬性進(jìn)行分析的缺陷問題。

      為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:

      一種基于特征配置的系統(tǒng)層綜合模型安全驗(yàn)證方法,其特征在于包含以下步驟:

      步驟一:標(biāo)定模型的轉(zhuǎn)換,從根組件root開始,每個控制組件c∈component實(shí)例被轉(zhuǎn)換成唯一的進(jìn)程,從而實(shí)現(xiàn)組件的行為;通過”active”申明,一個進(jìn)程通過snip被自動實(shí)例化;每個組件都使用一個全局申明的無緩沖通道,用來完成組件和上層組件的同步通信;組件的不同模式m∈mode(c)用程序標(biāo)簽mode_m表示,并用一個do-loop以實(shí)現(xiàn)所有的行為;

      步驟二:基于特征配置的故障模型的轉(zhuǎn)換;在完成標(biāo)定模型的轉(zhuǎn)換后,對于指定組件所配置的故障,需要關(guān)聯(lián)錯誤模型內(nèi)的信息,將故障信息加入標(biāo)定模型中以完成轉(zhuǎn)換,包括:故障原因、故障下的不同系統(tǒng)模式以及組件模式/錯誤狀態(tài)的變遷;

      步驟三:基于snip的slim擴(kuò)展模型的安全性分析,以上兩部分得到了與slim擴(kuò)展模型等價的fpromela+tvl模型,使用線性時序邏輯對安全需求進(jìn)行規(guī)約,從而得到需要驗(yàn)證的安全性需求ltl公式,并利用軟件產(chǎn)品線模型檢測工具snip驗(yàn)證fpromela+tvl模型是否滿足安全性需求的ltl規(guī)約。

      進(jìn)一步地,所述標(biāo)定模型的轉(zhuǎn)換具體過程為,

      1)組件到進(jìn)程的轉(zhuǎn)換

      對于任意一個控制組件c∈component,在f模型中,都將其表示為進(jìn)程實(shí)體proctypename(c),其中f表示fpromela模型;為了區(qū)分模型中由不同組件c∈component實(shí)例所產(chǎn)生進(jìn)程實(shí)體和變量,在進(jìn)程實(shí)體和變量名字的前面加上訪問路徑c;

      2)組件內(nèi)的全局變量globalvariables(c)

      在s模型中,組件類型type(c)內(nèi)申明的輸入/輸出數(shù)據(jù)端口和組件實(shí)現(xiàn)impl(c)內(nèi)申明的數(shù)據(jù)子組件等數(shù)據(jù)元素的值,在對應(yīng)的f模型中,都被存儲在全局變量中,在f模型中,在全局變量所表示的端口名字前加上訪問路徑c;針對輸入端口、輸出端口和數(shù)據(jù)子組件,分別加上對應(yīng)的前綴idp、odp、dsc;定義第二個變量作為數(shù)據(jù)的緩沖,暫存數(shù)據(jù)元素的一個更新值,在全局變量加上前綴store和new加以區(qū)分;輸出數(shù)據(jù)端口的數(shù)據(jù)緩沖被用在數(shù)據(jù)端口的迭代更新中,比較端口更新前的值store和更新后的值new;在控制組件中,如果存在數(shù)據(jù)子組件dsc,當(dāng)組件使用dsc值之前,遷移影響中存在對dsc賦值,則數(shù)據(jù)子組件dsc的值需要緩沖;

      給出s模型的數(shù)據(jù)元素和f模型的變量類型的轉(zhuǎn)換,使f模型的表達(dá)能力與s模型相近,其中s表示slim模型;

      用全局變量modevar(c)表示當(dāng)前組件的c的模式,申明全局無緩沖的通道channel(c)用來處理控制組件c∈component和其上層組件的同步通信;通道中的信息包含兩類:mtype類型的數(shù)據(jù)傳遞的是信息本身,int類型的數(shù)據(jù)傳遞的是其它參數(shù);在f模型的開始位置,以下信息類型被定義:

      mtype={update,invalidate,trymultiway,activate,deactivate,reset};

      一個組件c∈component,對應(yīng)的f模型全局變量包含fpromelatype(type(c,d))和datastore/(buffer)var(c,d),其中,fpromelatype(type(c,d))表示s模型中組件c的數(shù)據(jù)元素對應(yīng)的f模型元素類型,datastore/(buffer)var(c,d)表示數(shù)據(jù)元素d的值;

      3)初始化initialize(c)

      f模型中的變量需要初始化為s模型中數(shù)據(jù)元素指定的默認(rèn)值,如果沒有默認(rèn)值,snip將設(shè)置其默認(rèn)值為0;在f模型中,激活一個組件,上層組件發(fā)送一個activate給當(dāng)前組件,組件接收activate信號后并完成組件的初始化,繼而將激活信號發(fā)給子組件,完成初始化操作后,向上層組件發(fā)送確認(rèn)信號,并跳轉(zhuǎn)到初始模式;

      4)自動遷移automatictransition(c,m)

      s模型中的遷移m–[ewhengthenf]–>m’表示在m模式下,當(dāng)保證條件g為真,且發(fā)生事件e,那么系統(tǒng)將進(jìn)入m’模式、產(chǎn)生影響f;

      在遷移中,引入宏nt(guard)和ft,對nt(expression(c,g))進(jìn)行判斷;nt的操作:對系統(tǒng)中是否存在其它進(jìn)行中的遷移、以及保證條件是否成立進(jìn)行判斷;當(dāng)nt(expression(c,g))為真時,進(jìn)行重置數(shù)據(jù)子組件resetreactivateddatasubcomponents(c,m,m’)、重置數(shù)據(jù)端口resetdisconnecteddataports(c,m,m’)和產(chǎn)生影響f——effects(c,f)的操作,在調(diào)整完成控制子組件狀態(tài)adjustactivationofcontrolsubcomponents(c,m,m’)后,發(fā)送invalidate信號給上層組件,提示上層組件當(dāng)前組件的輸出數(shù)據(jù)端口值發(fā)生改變,最后進(jìn)行模式跳轉(zhuǎn);

      5)組件之間的多路事件通信multiwayeventcommunication(c,m)

      模型中的主遷移和響應(yīng)遷移是同步發(fā)生的,只有在其它組件中至少有一個相應(yīng)的觸發(fā)引起的響應(yīng)遷移能夠同步地發(fā)生,組件中的主遷移才會發(fā)生;

      主遷移primarytransition(c,m)

      遷移是否發(fā)生,首先進(jìn)行nt判斷;主遷移發(fā)送一個多路通信信號trymultiway給同步進(jìn)行的其它組件的響應(yīng)遷移,告知其它組件主遷移發(fā)生;引入一個全局變量gflagtrymultiway,如果存在相應(yīng)的響應(yīng)遷移滿足保證條件,將gflagtrymultiway置為true;當(dāng)gflagtrymultiway為true,完成與自動遷移一樣的操作,進(jìn)行重置數(shù)據(jù)子組件、重置數(shù)據(jù)端口和產(chǎn)生影響f的操作,在調(diào)整完成控制組件狀態(tài)后,發(fā)送invalidate信號給上層組件,提示上層組件當(dāng)前組件的輸出數(shù)據(jù)端口值發(fā)生改變,最后進(jìn)行模式跳轉(zhuǎn);當(dāng)gflagtrymultiway為假,進(jìn)行ft操作,釋放遷移占有的信號量gflaggonexttransition;

      響應(yīng)遷移reactivetransition(c,m)

      進(jìn)程發(fā)出一個多路通信信號trymultiway后其它的進(jìn)程通過事件端口接收這個信號并產(chǎn)生響應(yīng)遷移;

      多路通信信號trymultiway從上層組件發(fā)送而來,由當(dāng)前組件的通道channel(c)接收,通道的第二個參數(shù)告知了接收信號的事件端口號;對于由輸入事件端口觸發(fā)的、從模式m開始的任意遷移,進(jìn)程接收一個多路通信信號trymultiway,確保主遷移發(fā)生,并將trymultiway往子組件發(fā)送;判斷遷移發(fā)生信號是否為真、遷移保證條件是否成立,加入一個if-block是為了解決多個響應(yīng)遷移的非確定執(zhí)行;在遷移可以發(fā)生的基礎(chǔ)上,將gflagtrymultiway置為true,以告知主遷移至少有一個響應(yīng)遷移發(fā)生,完成與自動遷移一樣的操作,進(jìn)行重置數(shù)據(jù)子組件、重置數(shù)據(jù)端口和產(chǎn)生影響f的操作,在調(diào)整完成控制組件狀態(tài)后,將多路通信信號trymultiway發(fā)送給上層組件,提示上層組件當(dāng)前組件的遷移完成,進(jìn)行模式跳轉(zhuǎn);當(dāng)組件不存在從模式m開始的響應(yīng)遷移,需要else-block;

      6)數(shù)據(jù)端口的更新dataportupdates(c,m)

      組件csc∈csub(c,m)在發(fā)生遷移后,進(jìn)程發(fā)送一個invalidate信號給它的上層組件c∈component,告知上層組件對外輸出端口的值已經(jīng)發(fā)生變化;組件c∈component接收這個信號,并將invalidate信號再次向上發(fā)送到它的上層組件;invalidate信號被轉(zhuǎn)發(fā)到最頂層組件root,invalidate被root轉(zhuǎn)發(fā)到名為environment的進(jìn)程中;進(jìn)程environment接收invalidate信號,將其轉(zhuǎn)換為update信號并發(fā)送到root中,隨后由root向下傳遞到整個系統(tǒng)中,并完成輸入數(shù)據(jù)端口的更新操作;

      7)組件狀態(tài)的處理activationhandle(c,m)

      對失效的組件對應(yīng)的進(jìn)程進(jìn)行處理,包括:重置當(dāng)前模式下激活的控制子組件,并跳轉(zhuǎn)到初始化狀態(tài),對數(shù)據(jù)元素進(jìn)行初始化操作;

      8)environment進(jìn)程

      在f模型中,environment進(jìn)程作為root的虛擬上層組件,針對channel(root)的信號接收情況,對root進(jìn)行相應(yīng)的處理;environment完成以下操作:

      首次啟動對root組件的激活,通過首次進(jìn)入“更新環(huán)”建立系統(tǒng)的初始狀態(tài);

      無論何時從root接收invalidate信號,該進(jìn)程將其轉(zhuǎn)換為update信號,并發(fā)送到root進(jìn)程,完成root的更新操作;

      當(dāng)事件端口作為root組件的遷移觸發(fā),該進(jìn)程將完成多路事件通信的信號處理。

      進(jìn)一步地,所述標(biāo)定模型的轉(zhuǎn)換具體過程,3)步驟中使用了snip中的atomic-block進(jìn)行初始化。

      進(jìn)一步地,所述標(biāo)定模型的轉(zhuǎn)換具體過程,4)步驟中s模型的遷移隱含包含:

      a.對于那些在m模式中未激活,卻在m’模式中激活的數(shù)據(jù)子組件,在發(fā)生遷移后,數(shù)據(jù)子組件需要重置其默認(rèn)值;

      b.在m’模式中存在、但在m模式中不存在的數(shù)據(jù)端口連接和流,在發(fā)生遷移后,m’模式下的數(shù)據(jù)端口和流需要重置其默認(rèn)值;

      c.遷移的影響f中,對數(shù)據(jù)元素的賦值操作都需要緩沖;

      d.控制組件的狀態(tài)需要滿足m’的要求。

      進(jìn)一步地,所述標(biāo)定模型的轉(zhuǎn)換具體過程,4)步驟中s模型中存在三種不同的遷移,根據(jù)觸發(fā)的不同,將遷移進(jìn)行區(qū)分如下:

      自動遷移automatictransition(c,m):無觸發(fā)e的遷移,其遷移發(fā)生與否僅僅依賴于保證條件g;

      主遷移primarytransition(c,m):組件內(nèi)自擁有的輸出事件作為觸發(fā)的遷移;

      響應(yīng)遷移reactivetransition(c,m):組件內(nèi)自擁有的輸入事件作為觸發(fā)的遷移。

      進(jìn)一步地,所述步驟二中基于特征配置的故障模型的轉(zhuǎn)換過程為,對配置故障后的s模型進(jìn)行修改形成f模型,配置故障的組件對應(yīng)f模型中的進(jìn)程,與故障相關(guān)的錯誤模型中的所有錯誤事件作為特征被加入到f模型首部;進(jìn)程初始化將觸發(fā)正常狀態(tài)跳轉(zhuǎn)到其它狀態(tài)的錯誤事件作為特征表達(dá)式加入其中;原標(biāo)定模型的遷移被修改為錯誤模型遷移和標(biāo)定模型遷移關(guān)聯(lián)后的遷移。

      進(jìn)一步地,所述基于特征配置的故障模型的轉(zhuǎn)換具體包含以下步驟,

      1)故障原因

      在s模型中,將所有錯誤事件加入tvl文件中,為系統(tǒng)建立故障模型,并將所有錯誤事件加入f模型的typedeffeatures之中;所有的特征首字母需要大寫,將發(fā)生故障的組件c作為特征e的前綴;

      2)故障配置后的初始化

      在f模型中,對于發(fā)生故障的進(jìn)程proctype(c),初始化完成后直接跳轉(zhuǎn)到模型的初始模式下;

      3)故障配置后的遷移

      對系統(tǒng)中組件c進(jìn)行故障配置后,其遷移發(fā)生了變化;

      首先,組件的模式發(fā)生了改變;故障配置后,組件的模式結(jié)合了錯誤模型中的錯誤狀態(tài)產(chǎn)生了新的模式,由標(biāo)定模型的x個模式和錯誤模型的y個錯誤狀態(tài)擴(kuò)展到x*y個模式,用mode_m_s(c)表示組件c新的模式;

      第二,可能由錯誤事件作為觸發(fā)引起遷移發(fā)生,且?guī)砹斯收系挠绊慺’;

      第三,由于配置的故障所帶來的影響f’是非確定的,需要加入決定故障影響發(fā)生的控制變量;

      將錯誤事件作為特征表達(dá)式,利用一個控制變量control_c_e控制故障影響的發(fā)生與否,并將故障的影響f’加入到新的模式遷移中。

      進(jìn)一步地,所述步驟三中基于snip的slim擴(kuò)展模型的安全性分析具體過程為,

      1)根據(jù)安全關(guān)鍵系統(tǒng)的需求,利用slim建立系統(tǒng)的擴(kuò)展模型,將系統(tǒng)的slim擴(kuò)展模型進(jìn)行轉(zhuǎn)換得到等價的fpromela+tvl模型;

      2)利用線性時序邏輯對系統(tǒng)的安全性需求進(jìn)行規(guī)約,得到ltl公式;

      3)將系統(tǒng)擴(kuò)展模型和ltl公式導(dǎo)入snip中,啟動snip模型檢測工具對fpromela+tvl模型的安全屬性進(jìn)行驗(yàn)證,得出驗(yàn)證結(jié)果,根據(jù)驗(yàn)證結(jié)果反饋的問題對模型進(jìn)行修改。

      進(jìn)一步地,所述利用slim建立系統(tǒng)的擴(kuò)展模型包括標(biāo)定模型、錯誤模型和故障模型。

      本發(fā)明與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn)和效果:本發(fā)明以基于接口遷移系統(tǒng)為基礎(chǔ),建立安全關(guān)鍵系統(tǒng)的slim模型,結(jié)合軟件產(chǎn)品線檢測工具snip的建模語言fpromela,建立slim與fpromela之間的轉(zhuǎn)換關(guān)系,實(shí)現(xiàn)將slim模型到fpromela模型的轉(zhuǎn)換,利用集成的snip工具完成slim模型的檢測;實(shí)現(xiàn)了slim模型到fpromela模型的轉(zhuǎn)換,利用集成的snip工具完成slim模型的檢測,解決了單一slim模型不能進(jìn)行非功能屬性進(jìn)行分析的缺陷問題。

      附圖說明

      圖1是本發(fā)明的組件root的標(biāo)定模型。

      圖2是本發(fā)明的錯誤模型例子。

      圖3是本發(fā)明的sender和receiver。

      圖4是本發(fā)明的tvl指定的fd。

      圖5是本發(fā)明的s模型的組件到f模型的進(jìn)程的轉(zhuǎn)換規(guī)則。

      圖6是本發(fā)明的f模型的全局變量globalvariables(c)。

      圖7是本發(fā)明的進(jìn)程的初始化initialize(c)。

      圖8是本發(fā)明的f模型中的自動遷移automatictransition(c,m)。

      圖9是本發(fā)明的f模型中的主遷移primarytransition(c,m)。

      圖10是本發(fā)明的f模型的響應(yīng)遷移reactivetransition(c,m)。

      圖11是本發(fā)明的update信號的傳遞forwardupdatetoactivesubcomponents(c,m)。

      圖12是本發(fā)明的數(shù)據(jù)端口的更新dataportupdate(c,m)。

      圖13是本發(fā)明的組件狀態(tài)的處理activationhandle(c,m)。

      圖14是本發(fā)明的environment進(jìn)程。

      圖15是本發(fā)明的故障配置后s模型到f模型的轉(zhuǎn)換規(guī)則。

      圖16是本發(fā)明的f模型的特征申明。

      圖17是本發(fā)明的組件c故障配置后f模型的初始化。

      圖18是本發(fā)明的組件c故障配置后f模型的遷移。

      圖19是本發(fā)明的使用snip對系統(tǒng)擴(kuò)展模型進(jìn)行安全性驗(yàn)證。

      圖20是本發(fā)明的實(shí)施例的空客a320液壓系統(tǒng)。

      圖21是本發(fā)明的實(shí)施例的a320液壓系統(tǒng)死鎖檢測結(jié)果。

      圖22是本發(fā)明的實(shí)施例的a320液壓系統(tǒng)安全性驗(yàn)證結(jié)果。

      圖23是本發(fā)明的實(shí)施例的a320液壓系統(tǒng)安全性驗(yàn)證結(jié)果反例。

      具體實(shí)施方式

      本發(fā)明的一種基于特征配置的系統(tǒng)層綜合模型安全驗(yàn)證方法,主要功能是將用戶建立的slim模型轉(zhuǎn)換snip模型檢測器可以識別的fpromela+tvl模型,然后借助snip模型檢測器進(jìn)行安全性驗(yàn)證,通過驗(yàn)證結(jié)果找出系統(tǒng)設(shè)計(jì)問題?;趕lim語言的特點(diǎn),本方法主要包含三個步驟:

      步驟一:標(biāo)定模型的轉(zhuǎn)換

      為了方便對轉(zhuǎn)換規(guī)則進(jìn)行說明,我們給出以下定義:s表示slim模型,f表示fpromela模型。

      1)組件到進(jìn)程的轉(zhuǎn)換

      對于任意一個控制組件c∈component(即root和root組件下的子組件),在f模型中,都將其表示為進(jìn)程實(shí)體proctypename(c),如圖5所示。

      為了區(qū)分模型中由不同組件c∈component實(shí)例所產(chǎn)生進(jìn)程實(shí)體和變量,需要在進(jìn)程實(shí)體和變量名字的前面加上訪問路徑c。

      2)組件內(nèi)的全局變量globalvariables(c)

      在s模型中,組件類型type(c)內(nèi)申明的輸入/輸出數(shù)據(jù)端口和組件實(shí)現(xiàn)impl(c)內(nèi)申明的數(shù)據(jù)子組件等數(shù)據(jù)元素的值,在對應(yīng)的f模型中,都被存儲在全局變量中,如表1所示。在s模型中,不同的控制組件可能擁有相同的端口名字,為了區(qū)分,在f模型中,需要在全局變量所表示的端口名字前加上訪問路徑c;而且,針對輸入端口、輸出端口和數(shù)據(jù)子組件,我們分別加上對應(yīng)的前綴idp、odp、dsc。另外,因?yàn)橐粋€數(shù)據(jù)元素可能被多個組件訪問,為了保證數(shù)據(jù)元素的更新不會對其它組件訪問數(shù)據(jù)元素造成干擾,就需要第二個變量作為數(shù)據(jù)的緩沖,暫存數(shù)據(jù)元素的一個更新值,在全局變量加上前綴store和new加以區(qū)分。輸出數(shù)據(jù)端口的數(shù)據(jù)緩沖被用在數(shù)據(jù)端口的迭代更新中,往往需要比較端口更新前的值(store)和更新后的值(new);在控制組件中,如果存在數(shù)據(jù)子組件dsc,當(dāng)組件使用dsc值之前,遷移影響中存在對dsc賦值,則數(shù)據(jù)子組件dsc的值也需要緩沖。

      表1s模型數(shù)據(jù)元素到f模型全局變量的轉(zhuǎn)換規(guī)則

      由于s模型的數(shù)據(jù)元素類型和f模型的變量類型存在著差異,因此,需要給出s模型的數(shù)據(jù)元素和f模型的變量類型的轉(zhuǎn)換,使得f模型的表達(dá)能力盡可能與s模型相近。表2描述了s模型到f模型的數(shù)據(jù)類型映射關(guān)系。

      表2s模型數(shù)據(jù)元素類型到f模型變量類型的映射關(guān)系

      除了數(shù)據(jù)元素用全局變量表示,我們還用全局變量——modevar(c)表示當(dāng)前組件的c的模式。雖然這對于進(jìn)程的正確運(yùn)行并不是必須的(因?yàn)樵谶M(jìn)程中,模式是用模式標(biāo)簽表示的),但是這樣做方便驗(yàn)證與模式相關(guān)的安全屬性。

      最后,還需要申明全局無緩沖的通道channel(c)用來處理控制組件c∈component和其上層組件的同步通信,通道的設(shè)置是為了保證各個進(jìn)程進(jìn)行相應(yīng)操作時的原子性。通道中的信息包含兩類:首先,mtype類型的數(shù)據(jù)傳遞的是信息本身,int類型的數(shù)據(jù)傳遞的是其它參數(shù)。在f模型的開始位置,以下信息類型被定義:

      mtype={update,invalidate,trymultiway,activate,deactivate,reset};

      總的來說,對于一個組件c∈component,對應(yīng)的f模型全局變量申明如圖6所示,其中,fpromelatype(type(c,d))表示s模型中組件c的數(shù)據(jù)元素對應(yīng)的f模型元素類型,datastore/(buffer)var(c,d)表示數(shù)據(jù)元素d的值/(緩沖值)。

      3)初始化initialize(c)

      f模型中的變量需要初始化為s模型中數(shù)據(jù)元素指定的默認(rèn)值,如果沒有默認(rèn)值,snip將設(shè)置其默認(rèn)值為0。在f模型中,初始化并不是發(fā)生在進(jìn)程實(shí)例化中,而是等待進(jìn)程對應(yīng)的組件被激活(接收到activate信號)后才進(jìn)行的。一個組件是否激活,是依賴于上層組件的模式的。為了激活一個組件,上層組件需要發(fā)送一個activate給當(dāng)前組件,組件接收activate信號后并完成組件的初始化(這里,不僅是數(shù)據(jù)元素的初始化,組件還進(jìn)入初始模式),繼而將激活信號發(fā)給子組件,完成初始化操作后,向上層組件發(fā)送確認(rèn)信號,并跳轉(zhuǎn)到初始模式。為了減少狀態(tài)空間,且保證初始化的原子性,我們使用了snip中的atomic-block。f模型的初始化過程如圖7所示,其中,unbufferdassignment(c,d,dfl(c,d))表示數(shù)據(jù)元素和數(shù)據(jù)流的初始化賦值。

      4)自動遷移automatictransition(c,m)

      s模型中的遷移m–[ewhengthenf]–>m’表示在m模式下,當(dāng)保證條件g為真,且發(fā)生事件e,那么系統(tǒng)將進(jìn)入m’模式、產(chǎn)生影響f。然而,s模型的遷移隱含了一些信息:

      ●對于那些在m模式中未激活,卻在m’模式中激活的數(shù)據(jù)子組件,在發(fā)生遷移后,數(shù)據(jù)子組件需要重置其默認(rèn)值;

      ●在m’模式中存在、但在m模式中不存在的數(shù)據(jù)端口連接和流,在發(fā)生遷移后,m’模式下的數(shù)據(jù)端口和流需要重置其默認(rèn)值;

      ●遷移的影響f中,對數(shù)據(jù)元素的賦值操作都需要緩沖;

      ●控制組件的狀態(tài)需要滿足m’的要求。

      ●另外,s模型中存在三種不同的遷移。根據(jù)觸發(fā)的不同,將遷移進(jìn)行區(qū)分如下:

      ●自動遷移automatictransition(c,m):無觸發(fā)e的遷移,其遷移發(fā)生與否僅僅依賴于保證條件g;

      ●主遷移primarytransition(c,m):組件內(nèi)自擁有的輸出事件作為觸發(fā)的遷移;

      ●響應(yīng)遷移reactivetransition(c,m):組件內(nèi)自擁有的輸入事件作為觸發(fā)的遷移。

      在f模型中,所有的遷移活動都要包含s模型遷移中所隱含的信息,后兩種遷移與自動遷移具有相同的遷移原則,但組件遷移之間存在多路通信問題,因此,后續(xù)將詳細(xì)介紹后兩種遷移。這里,我們先介紹s模型的自動遷移是如何在f模型中表示的。

      f模型中對自動遷移表示如圖8所示。在遷移中,為了保證遷移活動的原子性——即兩個組件不能同時發(fā)生遷移,引入了宏nt(guard)和ft(nt持有遷移能夠進(jìn)行的信號量gflaggonexttransition=true,而ft釋放遷移的信號量gflaggonexttransition=false)。遷移是否發(fā)生,需要對nt(expression(c,g))進(jìn)行判斷。nt的操作:對系統(tǒng)中是否存在其它進(jìn)行中的遷移(gflaggonexttransition=false表示系統(tǒng)中無遷移)、以及保證條件是否成立進(jìn)行判斷;當(dāng)nt(expression(c,g))為真時,進(jìn)行重置數(shù)據(jù)子組件resetreactivateddatasubcomponents(c,m,m’)、重置數(shù)據(jù)端口resetdisconnecteddataports(c,m,m’)和產(chǎn)生影響f——effects(c,f)的操作,在調(diào)整完成控制子組件狀態(tài)adjustactivationofcontrolsubcomponents(c,m,m’)后,發(fā)送invalidate信號給上層組件,提示上層組件當(dāng)前組件的輸出數(shù)據(jù)端口值發(fā)生改變,最后進(jìn)行模式跳轉(zhuǎn)。

      5)組件之間的多路事件通信multiwayeventcommunication(c,m)

      本小節(jié)主要說明s模型中由事件端口觸發(fā)的遷移如何在f模型中表示。需要解決s模型中隱含的進(jìn)程之間的通信問題在f模型中的表示。模型中的主遷移和響應(yīng)遷移是同步發(fā)生的,因此,只有在其它組件中至少有一個相應(yīng)的觸發(fā)引起的響應(yīng)遷移能夠同步地發(fā)生,組件中的主遷移才會發(fā)生。下面,我們分別說明s模型中的主遷移和響應(yīng)遷移在f模型中如何表示。

      ●主遷移primarytransition(c,m)

      f模型中的主遷移表示如圖8所示。同f模型的自動遷移類似,遷移是否發(fā)生,首先進(jìn)行nt判斷;第二步,主遷移會發(fā)送一個多路通信信號trymultiway給同步進(jìn)行的其它組件的響應(yīng)遷移(輸出事件端口作為遷移觸發(fā),將trymultiway發(fā)送給上層組件),告知其它組件主遷移發(fā)生。這里,引入一個全局變量gflagtrymultiway,如果存在相應(yīng)的響應(yīng)遷移滿足保證條件,將gflagtrymultiway置為true;第三步,當(dāng)gflagtrymultiway為true,此時,完成與自動遷移一樣的操作,進(jìn)行重置數(shù)據(jù)子組件、重置數(shù)據(jù)端口和產(chǎn)生影響f的操作,在調(diào)整完成控制組件狀態(tài)后,發(fā)送invalidate信號給上層組件,提示上層組件當(dāng)前組件的輸出數(shù)據(jù)端口值發(fā)生改變,最后進(jìn)行模式跳轉(zhuǎn)。當(dāng)gflagtrymultiway為假,進(jìn)行ft操作,釋放遷移占有的信號量gflaggonexttransition。

      ●響應(yīng)遷移reactivetransition(c,m)

      進(jìn)程發(fā)出一個多路通信信號trymultiway后,此時,其它的進(jìn)程通過事件端口接收這個信號并產(chǎn)生響應(yīng)遷移。

      多路通信信號trymultiway從上層組件發(fā)送而來,由當(dāng)前組件的通道channel(c)接收,通道的第二個參數(shù)告知了接收信號的事件端口號。f模型的響應(yīng)遷移如圖10所示,它的情況與自動遷移的情況類似:對于由輸入事件端口觸發(fā)的、從模式m開始的任意遷移,進(jìn)程首先需要接收一個多路通信信號trymultiway,確保主遷移發(fā)生,并將trymultiway往子組件發(fā)送;第二步,需要判斷遷移發(fā)生信號是否為真、遷移保證條件是否成立。在這里,加入一個if-block是為了解決多個響應(yīng)遷移的非確定執(zhí)行;第三步,在遷移可以發(fā)生的基礎(chǔ)上,首先要將gflagtrymultiway置為true,以告知主遷移至少有一個響應(yīng)遷移發(fā)生,接下來,完成與自動遷移一樣的操作,進(jìn)行重置數(shù)據(jù)子組件、重置數(shù)據(jù)端口和產(chǎn)生影響f的操作,在調(diào)整完成控制組件狀態(tài)后,將多路通信信號trymultiway發(fā)送給上層組件,提示上層組件當(dāng)前組件的遷移完成,進(jìn)行模式跳轉(zhuǎn)(這里信號invalidate并不是必須的,因?yàn)橹鬟w移包含這個信號)。當(dāng)組件不存在從模式m開始的響應(yīng)遷移,就需要else-block。

      6)數(shù)據(jù)端口的更新dataportupdates(c,m)

      在5)中,介紹了自動遷移能夠直接地給定一個影響f來改變數(shù)據(jù)端口的值,也可以間接的通過數(shù)據(jù)端口連接和流來改變數(shù)據(jù)端口的值。而且,這些數(shù)據(jù)端口值的改變都可以沿著數(shù)據(jù)端口連接和流在整個系統(tǒng)進(jìn)行傳遞。為了在f模型中實(shí)現(xiàn)s模型的這種數(shù)據(jù)端口值的更新機(jī)制,需要基于通道channel來建立一種“數(shù)據(jù)更新環(huán)”來完成這種更新操作。組件csc∈csub(c,m)在發(fā)生遷移后,進(jìn)程將發(fā)送一個invalidate信號給它的上層組件c∈component,告知上層組件對外輸出端口的值已經(jīng)發(fā)生變化;組件c∈component接收這個信號,并將這個invalidate信號再次向上發(fā)送到它的上層組件。最后,invalidate信號被轉(zhuǎn)發(fā)到最頂層組件(即root)。這時,invalidate被root轉(zhuǎn)發(fā)到名為environment的進(jìn)程中(該進(jìn)程的作用將在下面介紹)。進(jìn)程environment接收了invalidate信號,將其轉(zhuǎn)換為update信號并發(fā)送到root中,隨后由root向下傳遞到整個系統(tǒng)中,并完成輸入數(shù)據(jù)端口的更新操作,如圖11所示。

      對于任意一個進(jìn)程而言,在接收到update信號后,不僅要向子組件傳遞該信號、更新輸入數(shù)據(jù)端口,還需要完成輸出數(shù)據(jù)端口的數(shù)據(jù)更新操作,如圖12所示,首先,組件需要接收更新信號,并更新輸入和輸出數(shù)據(jù)端口的值,在完成更新操作后將確認(rèn)數(shù)據(jù)端口更新完成信號發(fā)送給上層組件。

      7)組件狀態(tài)的處理activationhandle(c,m)

      在上面提到組件在完成遷移后需要對組件的狀態(tài)進(jìn)行調(diào)整,進(jìn)行該操作是因?yàn)檫w移引起的模式的改變可能會引起組件從激活狀態(tài)變成失效狀態(tài)。這時候,需要對失效的組件對應(yīng)的進(jìn)程進(jìn)行處理,包括:重置當(dāng)前模式下激活的控制子組件,并跳轉(zhuǎn)到初始化狀態(tài),對數(shù)據(jù)元素進(jìn)行初始化操作,如圖13所示。

      8)environment進(jìn)程

      在f模型中,除了給每個組件定義一個進(jìn)程以外,還需要一個特殊的進(jìn)程——environment進(jìn)程——作為root的虛擬上層組件,針對channel(root)的信號接收情況,對root進(jìn)行相應(yīng)的處理。f模型中的environment進(jìn)程如圖14所示。該進(jìn)程完成以下操作:

      首次啟動對root組件的激活,通過首次進(jìn)入“更新環(huán)”建立系統(tǒng)的初始狀態(tài);

      無論何時從root接收invalidate信號,該進(jìn)程將其轉(zhuǎn)換為update信號,并發(fā)送到root進(jìn)程,完成root的更新操作;

      當(dāng)事件端口作為root組件的遷移觸發(fā),該進(jìn)程將完成多路事件通信的信號處理。

      步驟二:基于特征配置的故障模型

      對于配置故障的組件,該組件的模式發(fā)生了變化(x*y=標(biāo)定模型的x個模式*錯誤模型的y個錯誤狀態(tài)),組件的遷移也發(fā)生了變化(觸發(fā)還可能是錯誤事件,并加入了故障影響f’)。因此,需要對配置故障后的s模型進(jìn)行修改形成f模型,如圖15所示,配置故障的組件對應(yīng)f模型中的進(jìn)程,與故障相關(guān)的錯誤模型中的所有錯誤事件作為特征被加入到f模型首部(以下對f模型中的特征稱為故障特征);進(jìn)程初始化需要將觸發(fā)正常狀態(tài)跳轉(zhuǎn)到其它狀態(tài)的錯誤事件作為特征表達(dá)式加入其中;原標(biāo)定模型的遷移被修改為錯誤模型遷移和標(biāo)定模型遷移關(guān)聯(lián)后的遷移。

      1)故障原因

      在s模型中,配置的故障原因是與錯誤模型有關(guān)的,配置的故障是描述了系統(tǒng)某一時刻的錯誤行為(包括系統(tǒng)中組件的錯誤狀態(tài),錯誤影響),而我們所需要的是造成組件進(jìn)入錯誤狀態(tài)的原因——錯誤事件(e),因此,將所有錯誤事件加入tvl文件中,為系統(tǒng)建立故障模型,并將所有錯誤事件(加入f模型的typedeffeatures之中,如圖16所示。這里,所有的特征首字母需要大寫,為了區(qū)分不同組件的特征,將發(fā)生故障的組件c作為特征e的前綴。

      2)故障配置后的初始化

      在f模型中,對于發(fā)生故障的進(jìn)程proctype(c)來說,初始化完成后直接跳轉(zhuǎn)到模型的初始模式下,如圖17所示。

      3)故障配置后的遷移

      對系統(tǒng)中組件c進(jìn)行故障配置后,其遷移發(fā)生了變化。

      首先,組件的模式發(fā)生了改變。故障配置后,組件的模式結(jié)合了錯誤模型中的錯誤狀態(tài)產(chǎn)生了新的模式,由標(biāo)定模型的x個模式和錯誤模型的y個錯誤狀態(tài)擴(kuò)展到x*y個模式,為了區(qū)分,用mode_m_s(c)表示組件c新的模式。

      第二,可能由錯誤事件作為觸發(fā)引起遷移發(fā)生,且?guī)砹斯收系挠绊慺’。

      第三,由于配置的故障所帶來的影響f’是非確定的(如同燈控線路中存在接觸不良故障,但造成燈光失控這種影響是非確定發(fā)生的),因此,需要加入決定故障影響發(fā)生的控制變量。

      因此,在f模型中,必須要考慮這三種情況。

      如圖18所示(因?yàn)樽詣舆w移和主遷移、響應(yīng)遷移的原則一樣,這里只給出發(fā)生故障的自動遷移),不僅在原有的f模型中加入新的模式標(biāo)簽mode_m_s(c),還需要將遷移的觸發(fā)(錯誤事件)和影響考慮進(jìn)去。由于snip不支持概率模型檢測,我們僅僅將錯誤事件作為特征表達(dá)式,利用一個控制變量control_c_e控制故障影響的發(fā)生與否,并將故障的影響f’加入到新的模式遷移中。

      步驟三:基于snip的slim擴(kuò)展模型的安全性分析

      圖19給出利用軟件產(chǎn)品線模型檢測工具snip對slim擴(kuò)展模型的進(jìn)行安全分析的流程,具體的流程如下:

      1)根據(jù)安全關(guān)鍵系統(tǒng)的需求,利用slim建立系統(tǒng)的擴(kuò)展模型(包括標(biāo)定模型、錯誤模型和故障模型);之后,將系統(tǒng)的slim擴(kuò)展模型進(jìn)行轉(zhuǎn)換得到等價的fpromela+tvl模型;

      2)利用線性時序邏輯對系統(tǒng)的安全性需求進(jìn)行規(guī)約,得到ltl公式;

      將1)中的系統(tǒng)擴(kuò)展模型和2)中的ltl公式導(dǎo)入snip中,啟動snip模型檢測工具對fpromela+tvl模型的安全屬性進(jìn)行驗(yàn)證,得出驗(yàn)證結(jié)果,根據(jù)驗(yàn)證結(jié)果反饋的問題對模型進(jìn)行修改。

      下面通過具體的實(shí)施例來對本發(fā)明進(jìn)行說明。

      我們運(yùn)用本方法對空客a320的液壓系統(tǒng)進(jìn)行案例分析。首先,基于軟件產(chǎn)品線特征配置思想,利用slim建立液壓系統(tǒng)的擴(kuò)展模型;其次,將系統(tǒng)的slim擴(kuò)展模型轉(zhuǎn)換到fpromela+tvl模型;最后,結(jié)合安全性需求ltl規(guī)約,對模型進(jìn)行安全性驗(yàn)證,依據(jù)驗(yàn)證結(jié)果對模型進(jìn)行修改。

      子系統(tǒng)和組件

      作為a320系列飛機(jī)的液壓系統(tǒng),其為操作飛機(jī)完成特定動作提供液壓動力。該系統(tǒng)的概念結(jié)構(gòu)如圖20所示。該液壓系統(tǒng)擁有三種類型的泵:液壓電機(jī)泵(electricmotorpump,emp)、引擎驅(qū)動泵(enginedrivenpump,edp)和由沖壓空氣渦輪供能的泵(ramairturbine,rat)。其中,液壓電機(jī)泵由電子系統(tǒng)供能驅(qū)動,引擎驅(qū)動泵由飛機(jī)的兩個引擎供能驅(qū)動。該液壓系統(tǒng)由三個液壓通道組成的子系統(tǒng),分別稱為藍(lán)色(blue)、黃色(yellow)和綠色(green)通道。藍(lán)色通道由液壓電機(jī)泵empb、rat泵和配電線路distb組成,無論何時,只要有至少一個引擎激活并工作,empb則自動被激活工作。當(dāng)飛機(jī)在飛行中,兩個引擎無法工作且當(dāng)前飛行速度超過100節(jié)(konts),則rat泵被自動激活工作。

      綠色通道由引擎驅(qū)動泵edpg和配電線路distg組成,edpg由1號引擎(engine1)驅(qū)動。黃色通道由引擎驅(qū)動泵edpy、液壓電機(jī)泵empy和配電線路disty組成,其中,empy由elec1供能、edpy由2號引擎(engine2)驅(qū)動。當(dāng)飛機(jī)在地面時,飛行員將啟動empy,此時,兩個引擎也受飛行員控制。黃色通道由引擎驅(qū)動泵edpb、沖壓空氣渦輪供能的泵rat和配電線路distb組成。飛機(jī)動力轉(zhuǎn)換裝置(powertransferunit,ptu)在綠色通道和黃色通道壓力差值高于給定閾值之時,綠色系統(tǒng)液壓動力通過打開傳輸裝置為黃色通道的配電線路輸送電力,反之亦然。

      a320液壓系統(tǒng)的slim擴(kuò)展模型

      a320液壓系統(tǒng)的slim擴(kuò)展模型由三部分組成:標(biāo)定模型、錯誤模型和故障模型。

      標(biāo)定模型中的hydraulic為根組件,其包含了一系列的子組件,如引擎engine、電力系統(tǒng)elec1、引擎驅(qū)動泵edp、液壓電機(jī)泵emp、沖壓空氣渦輪供能的泵rat和配電線路dist等。hydraulic描述了各個組件的連接/交互情況和系統(tǒng)的正常行為(模式變化情況)。如下所示。

      錯誤模型中的enginefailures、electricfailures、engine_driven_pumpfailures等錯誤模型組件分別描述了引擎、電子系統(tǒng)和引擎驅(qū)動泵中可能發(fā)生的錯誤事件,以及錯誤發(fā)生時的系統(tǒng)狀態(tài)變化。如下所示。

      故障模型中的“engine1”指明了所配置故障的組件,“enginefailures.impl”指明了該組件發(fā)生錯誤的錯誤模型,faulteffects處指明了組件在錯誤發(fā)生時的錯誤狀態(tài)為“failure”且這時候該組件將產(chǎn)生一個錯誤影響“output:=100”。如下所示。

      本實(shí)例通過對組件engine1的轉(zhuǎn)化過程的描述說明轉(zhuǎn)化方法的有效性。具體轉(zhuǎn)化步驟如下:

      步驟1:標(biāo)定模型的轉(zhuǎn)化。

      步驟1.1:組件到進(jìn)程的轉(zhuǎn)換,為engine1創(chuàng)建進(jìn)程實(shí)例,如下表示:

      步驟1.2:組件內(nèi)的全局變量。

      步驟1.3:初始化

      步驟1.4:遷移、數(shù)據(jù)端口的更新。

      步驟1.5:組件狀態(tài)的處理

      步驟1.6:environment進(jìn)程

      步驟2故障模型轉(zhuǎn)化

      步驟2.1:創(chuàng)建一個特征模型文件tvl:

      步驟2.2:故障配置后的初始化:

      步驟2.3:故障配置后的遷移:

      安全需求的定義和安全性驗(yàn)證

      對于飛機(jī)的液壓系統(tǒng)來說,有三個至關(guān)重要的定性安全需求,如下所述:

      災(zāi)難性的系統(tǒng)失效:至少有三個獨(dú)立的組件失效threefail情況發(fā)生,才會導(dǎo)致所有的液壓子系統(tǒng)threesubfail(blue、yellow和green)失效;

      重大的系統(tǒng)失效:至少有兩個獨(dú)立的組件失效twofail情況發(fā)生,才會導(dǎo)致兩個液壓子系統(tǒng)twosubfail(blue、yellow和green中任意兩個)失效;

      較小的系統(tǒng)失效:至少有一個獨(dú)立的組件失效onefail情況發(fā)生,才會導(dǎo)致一個液壓子系統(tǒng)onesubfail(blue、yellow和green中任意一個)失效。

      其中,宏定義onefail表示engine1/engine2/empy等組件中至少一個如故障模型中定義的那樣出現(xiàn)故障(在engine1中engine.output=100),宏定義onesubfail表示distb/distg/disty三個中至少一個的output=100。twofail、threefail、twosubfail、threesubfail依次類推。

      為了完成對a320的液壓系統(tǒng)安全性的驗(yàn)證工作,我們需要做兩方面的工作:一方面,需要為液壓系統(tǒng)建立slim擴(kuò)展模型,并將其轉(zhuǎn)換成fpromela+tvl模型;另一方面,對液壓系統(tǒng)的安全性需求使用線性時序邏輯(ltl)進(jìn)行規(guī)約,然后利用軟件產(chǎn)品線模型檢測工具snip對導(dǎo)入的fpromela+tvl模型進(jìn)行驗(yàn)證。

      用slim完成a320液壓系統(tǒng)的安全性建模(即建立系統(tǒng)的擴(kuò)展模型),然后利用本方法將slim模型完成模型轉(zhuǎn)換,得到與slim擴(kuò)展模型等價的fpromela+tvl模型。得到系統(tǒng)的fpromela+tvl模型后,首先對其進(jìn)行死鎖檢測,如圖21所示,檢測發(fā)現(xiàn)系統(tǒng)中不存在死鎖。

      在系統(tǒng)不存在死鎖的基礎(chǔ)上,需要對液壓系統(tǒng)的安全性需求進(jìn)行規(guī)約。根據(jù)安全需求定義中規(guī)定的那樣,我們用ltl公式將其表示如下:1)<>(onefail->onesubfail),表示至少一個獨(dú)立組件失效,導(dǎo)致一個子系統(tǒng)失效;

      2)<>(twofail->twosubfail),表示至少兩個獨(dú)立組件失效,導(dǎo)致兩個子系統(tǒng)失效;3)<>(threefail->threesubfail),表示至少三個獨(dú)立組件失效,導(dǎo)致三個子系統(tǒng)失效,即整個液壓系統(tǒng)失效。驗(yàn)證的結(jié)果如圖22所示。

      從圖22中可以看出,所設(shè)計(jì)的系統(tǒng)模型滿足所定義的安全需求。此時,我們定義一個不滿足安全需求的ltl公式:<>(threefail->sysright),表示至少有三個獨(dú)立組件失效,系統(tǒng)仍舊正常工作,即至少還有一條線路可以工作。就前面定義的安全需求所知,該ltl公式是違反安全需求,此時系統(tǒng)不僅不能正常工作,而且至少有三個獨(dú)立組件失效才會造成系統(tǒng)失效。如圖23所示,本方法給出了反例。其中一個反例:當(dāng)發(fā)生事件engine2_fail&empy_fail&engine1_fail時,表示有三個獨(dú)立組件出現(xiàn)故障,安全屬性違反。

      完整的反例信息如下:

      本說明書中所描述的以上內(nèi)容僅僅是對本發(fā)明所作的舉例說明。本發(fā)明所屬技術(shù)領(lǐng)域的技術(shù)人員可以對所描述的具體實(shí)施例做各種修改或補(bǔ)充或采用類似的方式替代,只要不偏離本發(fā)明說明書的內(nèi)容或者超越本權(quán)利要求書所定義的范圍,均應(yīng)屬于本發(fā)明的保護(hù)范圍。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1