本發明專利技術涉及一種基于行為描述的AADL可靠性模型生成方法,根據行為模型說明了構件的演化過程,若錯誤模型是基于行為模型產生的,那么每個錯誤就會明確地與構件的具體行為聯系起來。另一方面,錯誤模型間的交互若能依賴于架構模型自動生成,則可以保證可靠性模型的準確性和全面性。因此,本發明專利技術在深入研究AADL架構模型、錯誤模型和行為模型的基礎上,提出在構件層實現錯誤模型的自動化生成。本發明專利技術能夠保證錯誤模型間交互的準確性和全面性,時的系統可靠性模型的完整性,保證可靠性評估的準確性。
【技術實現步驟摘要】
本專利技術涉及嵌入式系統,具體涉及一種基于行為描述的AADL可靠性模型生成方法。
技術介紹
為了滿足開發新型的嵌入式系統的需求,美國自動化工程師協會發布了航空標準AS5506-架構分析與設計語言(Architecture Analysis and Design Language, AADL) 。AADL對基于模型的分析和復雜實時嵌入式系統的描述有很好的支持,通過構件以及構件間的交互、軟件構件、硬件構件和系統構件的綁定,對實時高可靠嵌入式系統進行描述與分析;并基于系統的交互模型對系統非功能屬性進行分析與評估,如果AADL模型不能滿足非功能屬性的需求,那么可以在架構這一級別對系統進行重新設計和構造,使得最終滿足可靠性的要求。AADL架構模型描述了系統層次化的組成結構,從功能實現和分解的角度,將系統逐層分解,將系統的功能逐步分解到系統、子系統和構件級別。在AADL架構模型中可以定義系統中軟構件、硬構件以及構件間的交互。構件定義包括構件類型和構件實現,前者呈現了構件對外的接口特征,后者包括了構件內部的實現細節。AADL錯誤模型以附錄庫的形式存在,支持AADL對系統可靠性的建模。AADL錯誤模型定義包括錯誤模型類型和錯誤模型實現。錯誤狀態和錯誤事件或錯誤傳播定義在錯誤模型類型中,描述了構件可能處于的狀態以及可能發生的錯誤。錯誤模型實現中定義了錯誤狀態間的遷移,描述了構件或系統的錯誤行為。基于AADL描述的系統可靠性模型由架構模型和錯誤模型組成,描述了系統的架構層次和可靠性相關的信息。AADL行為模型也被稱為行為說明(behavior-specification),和錯誤模型類似,AADL行為模型也是通過擴展AADL標準實現的。不同的是,AADL行為模型必須與架構模型定義在一起。在行為模型中,設計者不僅可以對構件的狀態進行詳細地定義,而且還可以對狀態遷移的發生條件(guard)以及伴隨著狀態轉換構件所執行的處理(action)進行詳細刻畫,較全面準確地描述了構件所實現的功能。構件的錯誤模型宏觀地描述了構件可能處于的狀態以及由錯誤事件驅動的狀態間的轉換,整體說明了錯誤導致構件的狀態演化過程。但是,對于設計者來說,并不清楚構件的哪些行為可能導致了構件進入錯誤狀態,導致這種錯誤的原因什么更是不知道,不能將構件的行為與其可能導致的錯誤聯系起來,建模者無法從錯誤模型中找出影響系統可靠性的重要因素。錯誤模型間的交互依賴于系統架構模型中構件間的交互,錯誤如何在錯誤模型間傳播,依賴于系統中構件間的消息傳遞。但是目前錯誤模型間的交互僅靠建模者對系統架構模型的理解,不能保證錯誤模型間交互的準確性和全面性,影響系統可靠性模型的完整性,最終導致可靠性評估不準確。
技術實現思路
要解決的技術問題為了避免現有技術的不足之處,本專利技術提出一種基于行為描述的AADL可靠性模型生成方法。技術方案一種基于行為描述的AADL可靠性模型生成方法,其特征在于步驟如下步驟I :遍歷系統基于AADL描述的架構模型,對定義了行為說明的構件進行標記;并在與架構模型相同的工程目錄下,構造一個空的錯誤附錄庫;步驟2 :構造一個通用錯誤模型并加入到步驟I構造的錯誤附錄庫中,得到一個僅含通用錯誤模型的附錄庫; 步驟3 :針對步驟I中被標記的構件分別生成空的錯誤模型類型error modeltype和空的錯誤模型實現error model implementation,并存放到步驟I生成的錯誤附錄庫中;所述錯誤模型類型和錯誤模型實現的命名匹配方式符合AADL錯誤附錄中的要求;步驟4 :將系統內AADL描述的架構模型中、行為模型中定義的狀態作為錯誤狀態全部添加到錯誤|旲型類型中;若狀態在彳丁為|旲型中被標記為初始狀態,則在錯誤|旲型中也將其標記為初始錯誤狀態initial error state,其他的直接定義為一般錯誤狀態errorstate ;步驟5 :將系統的AADL描述的架構模型中、構件行為模型中transitions部分中定義的每一個transition,在構件對應的錯誤模型類型和錯誤模型實現中進行如下操作在錯誤模型類型中添加錯誤事件free ;當行為模型中狀態遷移中初始狀態和目的狀態是不同的狀態時,找出錯誤模型類型中經過步驟4已生成的錯誤狀態,并以事件free作為驅動事件,建立錯誤狀態遷移,并添加到錯誤模型實現中;步驟6 :查看構件行為模型中transitions部分中定義的每一個transition轉換條件guard和依附其的操作部分action,若在所有的transition中二者都為空,直接進入步驟7 ;否則,在錯誤模型類型中添加錯誤狀態failed ;然后在構件對應的錯誤模型類型和錯誤模型實現中進行如下操作步驟(I)當transition的轉換的條件guard不為空時,根據錯誤分類表提取里面發生的錯誤,并生成錯誤事件,添加到錯誤模型類型中;步驟(2)當依附于transition的操作action部分不為空時,對其中構件執行的動作語句參照錯誤分類表,提取構件在操作的過程中可能出現的錯誤或故障,生成錯誤事件error event,添加到錯誤模型類型中;步驟(3)根據行為模型中該遷移的源狀態,找出對應錯誤模型類型中的錯誤狀態并作為源狀態,目的狀態為failed狀態,以步驟(I)和步驟(2)中生成的錯誤事件為驅動事件,生成錯誤狀態遷移,并添加到構件的錯誤模型實現中;所述步驟3-6對在步驟I中被標記的構件都要執行一遍步驟7 :利用osate提供的系統實例化功能,對最外層的系統進行實例化;步驟8 :找到實例化后的系統中連接的最初的源構件和最終的目的構件,在最初的源最初源構件的錯誤模型中添加向外錯誤傳播,在最終的目的構件的錯誤模型中添加接收錯誤傳播;所述向外錯誤傳播和接收錯誤傳播的命名方式遵循AADL約束要求;若在上述給錯誤模型添加錯誤傳播的過程中,構件不存在錯誤模型,則查看其所在的上層構件是否存在錯誤模型,存在的話,則直接在上層構件的錯誤模型中添加錯誤傳播;如果一直找不到錯誤模型,則將通用錯誤模型作為該構件的錯誤模型,并且向錯誤模型類型中添加命名相匹配的錯誤傳播;步驟9 以初始錯誤狀態和“failed “分別為源狀態和目的狀態,以錯誤傳播為驅動事件,在錯誤模型實現中,添加錯誤狀態遷移;步驟10 :將原來架構模型里構件實現中定義的行為附錄子庫去掉,并添加錯誤附錄子庫annex error_model ;在附錄子庫中添加Model屬性,將生成的錯誤模型實例化給架構模型中的構件; 所述錯誤分類表為權利要求1.一種基于行為描述的AADL可靠性模型生成方法,其特征在于步驟如下 步驟I :遍歷系統基于AADL描述的架構模型,對定義了行為說明的構件進行標記;并在與架構模型相同的工程目錄下,構造一個空的錯誤附錄庫; 步驟2 :構造一個通用錯誤模型并加入到步驟I構造的錯誤附錄庫中,得到一個僅含通用錯誤模型的附錄庫; 步驟3 :針對步驟I中被標記的構件分別生成空的錯誤模型類型error model type和空的錯誤模型實現error model implementation,并存放到步驟I生成的錯誤附錄庫中;所述錯誤模型類型和錯誤模型實現的命名匹配方式符合AADL錯誤附錄本文檔來自技高網...
【技術保護點】
一種基于行為描述的AADL可靠性模型生成方法,其特征在于步驟如下:步驟1:遍歷系統基于AADL描述的架構模型,對定義了行為說明的構件進行標記;并在與架構模型相同的工程目錄下,構造一個空的錯誤附錄庫;步驟2:構造一個通用錯誤模型并加入到步驟1構造的錯誤附錄庫中,得到一個僅含通用錯誤模型的附錄庫;步驟3:針對步驟1中被標記的構件分別生成空的錯誤模型類型error?model?type和空的錯誤模型實現error?model?implementation,并存放到步驟1生成的錯誤附錄庫中;所述錯誤模型類型和錯誤模型實現的命名匹配方式符合AADL錯誤附錄中的要求;步驟4:將系統內AADL描述的架構模型中、行為模型中定義的狀態作為錯誤狀態全部添加到錯誤模型類型中;若狀態在行為模型中被標記為初始狀態,則在錯誤模型中也將其標記為初始錯誤狀態initial?error?state,其他的直接定義為一般錯誤狀態error?state;步驟5:將系統的AADL描述的架構模型中、構件行為模型中transitions部分中定義的每一個transition,在構件對應的錯誤模型類型和錯誤模型實現中進行如下操作:在錯誤模型類型中添加錯誤事件free;當行為模型中狀態遷移中初始狀態和目的狀態是不同的狀態時,找出錯誤模型類型中經過步驟4已生成的錯誤狀態,并以事件free作為驅動事件,建立錯誤狀態遷移,并添加到錯誤模型實現中;步驟6:查看構件行為模型中transitions部分中定義的每一個transition轉換條件guard和依附其的操作部分action,若在所有的transition中二者都為空,直接進入步驟7;否則,在錯誤模型類型中添加錯誤狀態failed;然后在構件對應的錯誤模型類型和錯誤模型實現中進行如下操作:步驟(1)當transition的轉換的條件guard不為空時,根據錯誤分類表提取里面發 生的錯誤,并生成錯誤事件,添加到錯誤模型類型中;步驟(2)當依附于transition的操作action部分不為空時,對其中構件執行的動作語句參照錯誤分類表,提取構件在操作的過程中可能出現的錯誤或故障,生成錯誤事件error?event,添加到錯誤模型類型中;步驟(3)根據行為模型中該遷移的源狀態,找出對應錯誤模型類型中的錯誤狀態并作為源狀態,目的狀態為failed狀態,以步驟(1)和步驟(2)中生成的錯誤事件為驅動事件,生成錯誤狀態遷移,并添加到構件的錯誤模型實現中;所述步驟3?6對在步驟1中被標記的構件都要執行一遍:步驟7:利用osate提供的系統實例化功能,對最外層的系統進行實例化;步驟8:找到實例化后的系統中連接的最初的源構件和最終的目的構件,在最初的源最初源構件的錯誤模型中添加向外錯誤傳播,在最終的目的構件的錯誤模型中添加接收錯誤傳播;所述向外錯誤傳播和接收錯誤傳播的命名方式遵循AADL約束要求;若在上述給錯誤模型添加錯誤傳播的過程中,構件不存在錯誤模型,則查看其所在的上層構件是否存在錯誤模型,存在的話,則直接在上層構件的錯誤模型中添加錯誤傳播;如果一直找不到錯誤模型,則將通用錯誤模型作為該構件的錯誤模型,并且向錯誤模型類型中添加命名相匹配的錯誤傳播;步驟9:以初始錯誤狀態和“failed“分別為源狀態和目的狀態,以錯誤傳播為驅動事件,在錯誤模型實現中,添加錯誤狀態遷移;步驟10:將原來架構模型里構件實現中定義的行為附錄子庫去掉,并添加錯誤附錄子庫annex?error_model;在附錄子庫中添加Model屬性,將生成的錯誤模型實例化給架構模型中的構件;所述錯誤分類表為:...
【技術特征摘要】
【專利技術屬性】
技術研發人員:董云為,暢紹楓,張凡,程瑤,
申請(專利權)人:西北工業大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。