專利名稱:一種基于行為描述的aadl可靠性模型生成方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng),具體涉及一種基于行為描述的AADL可靠性模型生成方法。
背景技術(shù):
為了滿足開發(fā)新型的嵌入式系統(tǒng)的需求,美國自動(dòng)化工程師協(xié)會(huì)發(fā)布了航空標(biāo)準(zhǔn)
AS5506-架構(gòu)分析與設(shè)計(jì)語言(Architecture Analysis and Design Language, AADL) 。
AADL對(duì)基于模型的分析和復(fù)雜實(shí)時(shí)嵌入式系統(tǒng)的描述有很好的支持,通過構(gòu)件以及構(gòu)件間的交互、軟件構(gòu)件、硬件構(gòu)件和系統(tǒng)構(gòu)件的綁定,對(duì)實(shí)時(shí)高可靠嵌入式系統(tǒng)進(jìn)行描述與分析;并基于系統(tǒng)的交互模型對(duì)系統(tǒng)非功能屬性進(jìn)行分析與評(píng)估,如果AADL模型不能滿足非功能屬性的需求,那么可以在架構(gòu)這一級(jí)別對(duì)系統(tǒng)進(jìn)行重新設(shè)計(jì)和構(gòu)造,使得最終滿足可靠性的要求。AADL架構(gòu)模型描述了系統(tǒng)層次化的組成結(jié)構(gòu),從功能實(shí)現(xiàn)和分解的角度,將系統(tǒng)逐層分解,將系統(tǒng)的功能逐步分解到系統(tǒng)、子系統(tǒng)和構(gòu)件級(jí)別。在AADL架構(gòu)模型中可以定義系統(tǒng)中軟構(gòu)件、硬構(gòu)件以及構(gòu)件間的交互。構(gòu)件定義包括構(gòu)件類型和構(gòu)件實(shí)現(xiàn),前者呈現(xiàn)了構(gòu)件對(duì)外的接口特征,后者包括了構(gòu)件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。AADL錯(cuò)誤模型以附錄庫的形式存在,支持AADL對(duì)系統(tǒng)可靠性的建模。AADL錯(cuò)誤模型定義包括錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)。錯(cuò)誤狀態(tài)和錯(cuò)誤事件或錯(cuò)誤傳播定義在錯(cuò)誤模型類型中,描述了構(gòu)件可能處于的狀態(tài)以及可能發(fā)生的錯(cuò)誤。錯(cuò)誤模型實(shí)現(xiàn)中定義了錯(cuò)誤狀態(tài)間的遷移,描述了構(gòu)件或系統(tǒng)的錯(cuò)誤行為?;贏ADL描述的系統(tǒng)可靠性模型由架構(gòu)模型和錯(cuò)誤模型組成,描述了系統(tǒng)的架構(gòu)層次和可靠性相關(guān)的信息。AADL行為模型也被稱為行為說明(behavior-specification),和錯(cuò)誤模型類似,AADL行為模型也是通過擴(kuò)展AADL標(biāo)準(zhǔn)實(shí)現(xiàn)的。不同的是,AADL行為模型必須與架構(gòu)模型定義在一起。在行為模型中,設(shè)計(jì)者不僅可以對(duì)構(gòu)件的狀態(tài)進(jìn)行詳細(xì)地定義,而且還可以對(duì)狀態(tài)遷移的發(fā)生條件(guard)以及伴隨著狀態(tài)轉(zhuǎn)換構(gòu)件所執(zhí)行的處理(action)進(jìn)行詳細(xì)刻畫,較全面準(zhǔn)確地描述了構(gòu)件所實(shí)現(xiàn)的功能。構(gòu)件的錯(cuò)誤模型宏觀地描述了構(gòu)件可能處于的狀態(tài)以及由錯(cuò)誤事件驅(qū)動(dòng)的狀態(tài)間的轉(zhuǎn)換,整體說明了錯(cuò)誤導(dǎo)致構(gòu)件的狀態(tài)演化過程。但是,對(duì)于設(shè)計(jì)者來說,并不清楚構(gòu)件的哪些行為可能導(dǎo)致了構(gòu)件進(jìn)入錯(cuò)誤狀態(tài),導(dǎo)致這種錯(cuò)誤的原因什么更是不知道,不能將構(gòu)件的行為與其可能導(dǎo)致的錯(cuò)誤聯(lián)系起來,建模者無法從錯(cuò)誤模型中找出影響系統(tǒng)可靠性的重要因素。錯(cuò)誤模型間的交互依賴于系統(tǒng)架構(gòu)模型中構(gòu)件間的交互,錯(cuò)誤如何在錯(cuò)誤模型間傳播,依賴于系統(tǒng)中構(gòu)件間的消息傳遞。但是目前錯(cuò)誤模型間的交互僅靠建模者對(duì)系統(tǒng)架構(gòu)模型的理解,不能保證錯(cuò)誤模型間交互的準(zhǔn)確性和全面性,影響系統(tǒng)可靠性模型的完整性,最終導(dǎo)致可靠性評(píng)估不準(zhǔn)確。
發(fā)明內(nèi)容
要解決的技術(shù)問題為了避免現(xiàn)有技術(shù)的不足之處,本發(fā)明提出一種基于行為描述的AADL可靠性模型生成方法。技術(shù)方案一種基于行為描述的AADL可靠性模型生成方法,其特征在于步驟如下步驟I :遍歷系統(tǒng)基于AADL描述的架構(gòu)模型,對(duì)定義了行為說明的構(gòu)件進(jìn)行標(biāo)記;并在與架構(gòu)模型相同的工程目錄下,構(gòu)造一個(gè)空的錯(cuò)誤附錄庫;步驟2 :構(gòu)造一個(gè)通用錯(cuò)誤模型并加入到步驟I構(gòu)造的錯(cuò)誤附錄庫中,得到一個(gè)僅含通用錯(cuò)誤模型的附錄庫; 步驟3 :針對(duì)步驟I中被標(biāo)記的構(gòu)件分別生成空的錯(cuò)誤模型類型error modeltype和空的錯(cuò)誤模型實(shí)現(xiàn)error model implementation,并存放到步驟I生成的錯(cuò)誤附錄庫中;所述錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)的命名匹配方式符合AADL錯(cuò)誤附錄中的要求;步驟4 :將系統(tǒng)內(nèi)AADL描述的架構(gòu)模型中、行為模型中定義的狀態(tài)作為錯(cuò)誤狀態(tài)全部添加到錯(cuò)誤|旲型類型中;若狀態(tài)在彳丁為|旲型中被標(biāo)記為初始狀態(tài),則在錯(cuò)誤|旲型中也將其標(biāo)記為初始錯(cuò)誤狀態(tài)initial error state,其他的直接定義為一般錯(cuò)誤狀態(tài)errorstate ;步驟5 :將系統(tǒng)的AADL描述的架構(gòu)模型中、構(gòu)件行為模型中transitions部分中定義的每一個(gè)transition,在構(gòu)件對(duì)應(yīng)的錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)中進(jìn)行如下操作在錯(cuò)誤模型類型中添加錯(cuò)誤事件free ;當(dāng)行為模型中狀態(tài)遷移中初始狀態(tài)和目的狀態(tài)是不同的狀態(tài)時(shí),找出錯(cuò)誤模型類型中經(jīng)過步驟4已生成的錯(cuò)誤狀態(tài),并以事件free作為驅(qū)動(dòng)事件,建立錯(cuò)誤狀態(tài)遷移,并添加到錯(cuò)誤模型實(shí)現(xiàn)中;步驟6 :查看構(gòu)件行為模型中transitions部分中定義的每一個(gè)transition轉(zhuǎn)換條件guard和依附其的操作部分action,若在所有的transition中二者都為空,直接進(jìn)入步驟7 ;否則,在錯(cuò)誤模型類型中添加錯(cuò)誤狀態(tài)failed ;然后在構(gòu)件對(duì)應(yīng)的錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)中進(jìn)行如下操作步驟(I)當(dāng)transition的轉(zhuǎn)換的條件guard不為空時(shí),根據(jù)錯(cuò)誤分類表提取里面發(fā)生的錯(cuò)誤,并生成錯(cuò)誤事件,添加到錯(cuò)誤模型類型中;步驟(2)當(dāng)依附于transition的操作action部分不為空時(shí),對(duì)其中構(gòu)件執(zhí)行的動(dòng)作語句參照錯(cuò)誤分類表,提取構(gòu)件在操作的過程中可能出現(xiàn)的錯(cuò)誤或故障,生成錯(cuò)誤事件error event,添加到錯(cuò)誤模型類型中;步驟(3)根據(jù)行為模型中該遷移的源狀態(tài),找出對(duì)應(yīng)錯(cuò)誤模型類型中的錯(cuò)誤狀態(tài)并作為源狀態(tài),目的狀態(tài)為failed狀態(tài),以步驟(I)和步驟(2)中生成的錯(cuò)誤事件為驅(qū)動(dòng)事件,生成錯(cuò)誤狀態(tài)遷移,并添加到構(gòu)件的錯(cuò)誤模型實(shí)現(xiàn)中;所述步驟3-6對(duì)在步驟I中被標(biāo)記的構(gòu)件都要執(zhí)行一遍步驟7 :利用osate提供的系統(tǒng)實(shí)例化功能,對(duì)最外層的系統(tǒng)進(jìn)行實(shí)例化;步驟8 :找到實(shí)例化后的系統(tǒng)中連接的最初的源構(gòu)件和最終的目的構(gòu)件,在最初的源最初源構(gòu)件的錯(cuò)誤模型中添加向外錯(cuò)誤傳播,在最終的目的構(gòu)件的錯(cuò)誤模型中添加接收錯(cuò)誤傳播;所述向外錯(cuò)誤傳播和接收錯(cuò)誤傳播的命名方式遵循AADL約束要求;若在上述給錯(cuò)誤模型添加錯(cuò)誤傳播的過程中,構(gòu)件不存在錯(cuò)誤模型,則查看其所在的上層構(gòu)件是否存在錯(cuò)誤模型,存在的話,則直接在上層構(gòu)件的錯(cuò)誤模型中添加錯(cuò)誤傳播;如果一直找不到錯(cuò)誤模型,則將通用錯(cuò)誤模型作為該構(gòu)件的錯(cuò)誤模型,并且向錯(cuò)誤模型類型中添加命名相匹配的錯(cuò)誤傳播;步驟9 以初始錯(cuò)誤狀態(tài)和“failed “分別為源狀態(tài)和目的狀態(tài),以錯(cuò)誤傳播為驅(qū)動(dòng)事件,在錯(cuò)誤模型實(shí)現(xiàn)中,添加錯(cuò)誤狀態(tài)遷移;步驟10 :將原來架構(gòu)模型里構(gòu)件實(shí)現(xiàn)中定義的行為附錄子庫去掉,并添加錯(cuò)誤附錄子庫annex error_model ;在附錄子庫中添加Model屬性,將生成的錯(cuò)誤模型實(shí)例化給架構(gòu)模型中的構(gòu)件;
所述錯(cuò)誤分類表為
權(quán)利要求
1.一種基于行為描述的AADL可靠性模型生成方法,其特征在于步驟如下 步驟I :遍歷系統(tǒng)基于AADL描述的架構(gòu)模型,對(duì)定義了行為說明的構(gòu)件進(jìn)行標(biāo)記;并在與架構(gòu)模型相同的工程目錄下,構(gòu)造一個(gè)空的錯(cuò)誤附錄庫; 步驟2 :構(gòu)造一個(gè)通用錯(cuò)誤模型并加入到步驟I構(gòu)造的錯(cuò)誤附錄庫中,得到一個(gè)僅含通用錯(cuò)誤模型的附錄庫; 步驟3 :針對(duì)步驟I中被標(biāo)記的構(gòu)件分別生成空的錯(cuò)誤模型類型error model type和空的錯(cuò)誤模型實(shí)現(xiàn)error model implementation,并存放到步驟I生成的錯(cuò)誤附錄庫中;所述錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)的命名匹配方式符合AADL錯(cuò)誤附錄中的要求; 步驟4:將系統(tǒng)內(nèi)AADL描述的架構(gòu)模型中、行為模型中定義的狀態(tài)作為錯(cuò)誤狀態(tài)全部添加到錯(cuò)誤|旲型類型中;若狀態(tài)在彳丁為|旲型中被標(biāo)記為初始狀態(tài),則在錯(cuò)誤|旲型中也將其標(biāo)記為初始錯(cuò)誤狀態(tài)initial error state,其他的直接定義為一般錯(cuò)誤狀態(tài)errorstate ; 步驟5 :將系統(tǒng)的AADL描述的架構(gòu)模型中、構(gòu)件行為模型中transitions部分中定義的每一個(gè)transition,在構(gòu)件對(duì)應(yīng)的錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)中進(jìn)行如下操作 在錯(cuò)誤模型類型中添加錯(cuò)誤事件free ; 當(dāng)行為模型中狀態(tài)遷移中初始狀態(tài)和目的狀態(tài)是不同的狀態(tài)時(shí),找出錯(cuò)誤模型類型中經(jīng)過步驟4已生成的錯(cuò)誤狀態(tài),并以事件free作為驅(qū)動(dòng)事件,建立錯(cuò)誤狀態(tài)遷移,并添加到錯(cuò)誤I吳型實(shí)現(xiàn)中; 步驟6 :查看構(gòu)件行為模型中transitions部分中定義的每一個(gè)transition轉(zhuǎn)換條件guard和依附其的操作部分action,若在所有的transition中二者都為空,直接進(jìn)入步驟 . 7 ;否則,在錯(cuò)誤模型類型中添加錯(cuò)誤狀態(tài)failed ;然后在構(gòu)件對(duì)應(yīng)的錯(cuò)誤模型類型和錯(cuò)誤模型實(shí)現(xiàn)中進(jìn)行如下操作 步驟(I)當(dāng)transition的轉(zhuǎn)換的條件guard不為空時(shí),根據(jù)錯(cuò)誤分類表提取里面發(fā)生的錯(cuò)誤,并生成錯(cuò)誤事件,添加到錯(cuò)誤模型類型中; 步驟(2 )當(dāng)依附于trans i t ion的操作act ion部分不為空時(shí),對(duì)其中構(gòu)件執(zhí)行的動(dòng)作語句參照錯(cuò)誤分類表,提取構(gòu)件在操作的過程中可能出現(xiàn)的錯(cuò)誤或故障,生成錯(cuò)誤事件errorevent,添加到錯(cuò)誤模型類型中; 步驟(3)根據(jù)行為模型中該遷移的源狀態(tài),找出對(duì)應(yīng)錯(cuò)誤模型類型中的錯(cuò)誤狀態(tài)并作為源狀態(tài),目的狀態(tài)為failed狀態(tài),以步驟(I)和步驟(2)中生成的錯(cuò)誤事件為驅(qū)動(dòng)事件,生成錯(cuò)誤狀態(tài)遷移,并添加到構(gòu)件的錯(cuò)誤模型實(shí)現(xiàn)中; 所述步驟3-6對(duì)在步驟I中被標(biāo)記的構(gòu)件都要執(zhí)行一遍 步驟7 :利用osate提供的系統(tǒng)實(shí)例化功能,對(duì)最外層的系統(tǒng)進(jìn)行實(shí)例化; 步驟8 :找到實(shí)例化后的系統(tǒng)中連接的最初的源構(gòu)件和最終的目的構(gòu)件,在最初的源最初源構(gòu)件的錯(cuò)誤模型中添加向外錯(cuò)誤傳播,在最終的目的構(gòu)件的錯(cuò)誤模型中添加接收錯(cuò)誤傳播;所述向外錯(cuò)誤傳播和接收錯(cuò)誤傳播的命名方式遵循AADL約束要求; 若在上述給錯(cuò)誤模型添加錯(cuò)誤傳播的過程中,構(gòu)件不存在錯(cuò)誤模型,則查看其所在的上層構(gòu)件是否存在錯(cuò)誤模型,存在的話,則直接在上層構(gòu)件的錯(cuò)誤模型中添加錯(cuò)誤傳播;如果一直找不到錯(cuò)誤模型,則將通用錯(cuò)誤模型作為該構(gòu)件的錯(cuò)誤模型,并且向錯(cuò)誤模型類型中添加命名相匹配的錯(cuò)誤傳播;步驟9 以初始錯(cuò)誤狀態(tài)和“failed “分別為源狀態(tài)和目的狀態(tài),以錯(cuò)誤傳播為驅(qū)動(dòng)事件,在錯(cuò)誤模型實(shí)現(xiàn)中,添加錯(cuò)誤狀態(tài)遷移; 步驟10 :將原來架構(gòu)模型里構(gòu)件實(shí)現(xiàn)中定義的行為附錄子庫去掉,并添加錯(cuò)誤附錄子庫annex error_model ;在附錄子庫中添加Model屬性,將生成的錯(cuò)誤模型實(shí)例化給架構(gòu)模型中的構(gòu)件; 所述錯(cuò)誤分類表為 編U 錯(cuò)議類型錯(cuò)議表現(xiàn)I 運(yùn)ff錯(cuò)誤_ 術(shù)運(yùn)兌(*-*/%)_
全文摘要
本發(fā)明涉及一種基于行為描述的AADL可靠性模型生成方法,根據(jù)行為模型說明了構(gòu)件的演化過程,若錯(cuò)誤模型是基于行為模型產(chǎn)生的,那么每個(gè)錯(cuò)誤就會(huì)明確地與構(gòu)件的具體行為聯(lián)系起來。另一方面,錯(cuò)誤模型間的交互若能依賴于架構(gòu)模型自動(dòng)生成,則可以保證可靠性模型的準(zhǔn)確性和全面性。因此,本發(fā)明在深入研究AADL架構(gòu)模型、錯(cuò)誤模型和行為模型的基礎(chǔ)上,提出在構(gòu)件層實(shí)現(xiàn)錯(cuò)誤模型的自動(dòng)化生成。本發(fā)明能夠保證錯(cuò)誤模型間交互的準(zhǔn)確性和全面性,時(shí)的系統(tǒng)可靠性模型的完整性,保證可靠性評(píng)估的準(zhǔn)確性。
文檔編號(hào)G06F11/36GK102880548SQ201210345740
公開日2013年1月16日 申請(qǐng)日期2012年9月18日 優(yōu)先權(quán)日2012年9月18日
發(fā)明者董云為, 暢紹楓, 張凡, 程瑤 申請(qǐng)人:西北工業(yè)大學(xué)