一種嵌入式軟件可信屬性建模與驗(yàn)證方法
【專利摘要】本發(fā)明屬于可信計(jì)算領(lǐng)域,涉及一種嵌入式軟件可信屬性建模與驗(yàn)證方法,包括下列步驟:(1)建立半形式化模型;(2)將半形式化模型轉(zhuǎn)換為有限域上的可信嵌入式軟件模型ZAM,包括時間模型、靜態(tài)模型與動態(tài)模型三部分;(3)給出描述嵌入式軟件可信性質(zhì)的ZMTL時序邏輯公式,并采用FZMCA算法對ZAM模型進(jìn)行可信性質(zhì)的驗(yàn)證?;谏鲜龇椒ǖ目尚徘度胧杰浖Ec驗(yàn)證框架分為UML/MARTE圖形層、模型轉(zhuǎn)換層、ZAM模型層與模型驗(yàn)證層。本發(fā)明能夠針對嵌入式軟件的可信屬性進(jìn)行建模與驗(yàn)證,減少嵌入式軟件在開發(fā)過程中出現(xiàn)的可信性缺陷、降低軟件失效的概率。
【專利說明】一種嵌入式軟件可信屬性建模與驗(yàn)證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于可信計(jì)算領(lǐng)域,特別是一種嵌入式軟件可信屬性建模與驗(yàn)證方法。
【背景技術(shù)】
[0002]可信軟件是指軟件的運(yùn)行行為及其結(jié)果總是符合人們的預(yù)期,即使在受到攻擊和干擾的惡劣環(huán)境下仍能提供可靠的運(yùn)算結(jié)果和連續(xù)的服務(wù)。嵌入式軟件已經(jīng)在航空、航天、船舶、汽車、工農(nóng)業(yè)生產(chǎn)等許多領(lǐng)域中得到了廣泛的應(yīng)用,并不斷向復(fù)雜化、規(guī)?;c開放化的趨勢發(fā)展。未來的嵌入式軟件具有軟件規(guī)模龐大、通信環(huán)境復(fù)雜、與硬件緊密耦合等特點(diǎn)。在其發(fā)展趨勢和應(yīng)用場景下,嵌入式軟件對實(shí)時性、安全性、可靠性等可信屬性提出了更高的需求。因此,在嵌入式軟件的需求分析、設(shè)計(jì)、實(shí)現(xiàn)等階段均面臨著新的困難和挑戰(zhàn)。傳統(tǒng)的測試方法要在軟件實(shí)現(xiàn)階段才能發(fā)現(xiàn)部分軟件代碼中的錯誤,不僅需要付出很大的時間與資源代價,而且難以完全排除其潛在的邏輯缺陷。因此,研究在設(shè)計(jì)階段針對嵌入式軟件可信屬性建模與驗(yàn)證的方法具有重要的理論意義和實(shí)用價值,通過對嵌入式軟件模型的可信性質(zhì)的驗(yàn)證,可減少其在設(shè)計(jì)和編碼過程中的可信性缺陷,從而降低軟件失效的概率。
[0003]針對嵌入式軟件可信屬性的建模與驗(yàn)證主要圍繞兩個問題:可信屬性的建模方法以及可信性質(zhì)的驗(yàn)證方法。由于可信屬性是軟件的非功能屬性,無法在功能模型中體現(xiàn)出來,需要通過軟件靜態(tài)結(jié)構(gòu)及動態(tài)行為中的約束來進(jìn)行描述。為了驗(yàn)證軟件在每個可能的狀態(tài)中都滿足這些約束,就需要建立軟件的結(jié)構(gòu)和行為模型,并描述軟件操作在軟件行為中的作用。因此,針對嵌入式軟件可信屬性的建模方法應(yīng)該能夠描述嵌入式軟件的操作規(guī)約,即操作對軟件狀態(tài)的改變,以及這種改變對軟件可信性質(zhì)的影響。
[0004]由于半形式化模型中缺少操作規(guī)約,并且采用對象約束語言(Object ConstraintLanguage,OCL)來描述軟件中的約束,不具備精確的語義,因此無法直接進(jìn)行嚴(yán)格的分析驗(yàn)證。而形式化模型能夠避免半形式化模型的歧義性和不精確性,且模型精化技術(shù)可保證軟件的抽象模型與實(shí)施模型滿足相同的性質(zhì)。因此,更適用于設(shè)計(jì)和驗(yàn)證具有高可信需求的嵌入式軟件。目前,嵌入式軟件建模所采用的形式化語言主要包括有限自動機(jī)、Petri網(wǎng)、AADL、C0RBA等。由于這些方法缺乏針對嵌入式特征與可信屬性的形式化建模元素,因此現(xiàn)有的研究工作成果無法滿足我們對嵌入式軟件可信屬性的建模需求。另一方面,目前常用的軟件行為模型并不能很好地與軟件功能模型相融合,無法描述軟件操作對軟件狀態(tài)的改變,導(dǎo)致現(xiàn)有的模型驗(yàn)證方法無法對功能模型中的數(shù)據(jù)約束進(jìn)行驗(yàn)證,從而無法完整地評估軟件操作對可信性質(zhì)的影響。因此,在現(xiàn)有模型的基礎(chǔ)上加強(qiáng)對嵌入式軟件操作規(guī)約與數(shù)據(jù)約束的表達(dá)能力,將嵌入式軟件行為與功能模型進(jìn)行深度融合,是解決嵌入式軟件可信屬性的建模與驗(yàn)證問題的有效途徑。但是,現(xiàn)有技術(shù)中尚無相關(guān)描述。
【發(fā)明內(nèi)容】
[0005]本發(fā)明所解決的技術(shù)問題在于提供一種嵌入式軟件可信屬性建模與驗(yàn)證方法。[0006]實(shí)現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種嵌入式軟件可信屬性建模與驗(yàn)證方法,將嵌入式軟件建模規(guī)范MARTE與Z語言、時間自動機(jī)的建模過程相結(jié)合,并基于模型檢測算法進(jìn)行模型可信性質(zhì)的驗(yàn)證,具體包括以下步驟:
[0007]步驟1、建立半形式化模型,具體是建立UML/MARTE類圖和狀態(tài)圖;
[0008]步驟2、建立有限域上的可信嵌入式軟件模型ZAM,具體是將半形式化模型向形式化模型轉(zhuǎn)換,并補(bǔ)充其操作規(guī)約和可信約束,所述可信嵌入式軟件模型ZAM分為時間模型、靜態(tài)模型與動態(tài)模型三部分,用于對嵌入式軟件的結(jié)構(gòu)、行為及其可信約束進(jìn)行描述,其中:
[0009](a) ZAM時間模型ZMtime包括時鐘類型、時鐘實(shí)例、時間構(gòu)造型建模元素,所述時間構(gòu)造型建模元素包括時間事件、時間過程兩種;
[0010](b)ZAM靜態(tài)模型ZMstati。包括:數(shù)據(jù)類型、全局變量、類狀態(tài)、可信構(gòu)造型、類、類關(guān)聯(lián)、操作規(guī)約建模元素;
[0011](C) ZAM動態(tài)模型ZMdynami。包括:狀態(tài)、轉(zhuǎn)移動作、時鐘、狀態(tài)轉(zhuǎn)移建模元素,以及這些建模元素分別與ZMtinre和ZMstati。中各類元素之間的二元關(guān)系。
[0012]建立有限域上的可信嵌入式軟件模型ZAM主要包括如下子步驟:
[0013]步驟2-1、將MARTE所定義的時鐘類型與實(shí)例映射至ZAM時間模型ZMtime中的ClockType與Clock集合元素,所述ClockType集合元素的屬性包括時鐘性質(zhì)、單位、是否邏輯時鐘和最大值,Clock集合元素的屬性包括單位、時鐘類型、被參考時鐘、分辨率和偏移量;之后定義相應(yīng)的時間事件類型集合TimedEvent與時間過程類型集合TimedProcess,所述TimedEvent集合元素的屬性包括事件發(fā)生的時間點(diǎn),TimedProcess集合元素的屬性包括開始和結(jié)束時間點(diǎn)、以及它們之間的持續(xù)時間;
[0014]步驟2-2、將UML/MARTE類圖中的數(shù)據(jù)類型、全局變量、類、類關(guān)聯(lián)、類操作元素映射至 ZAM 靜態(tài)模型 ZMstatic 中的 DataType、GlobalVariable、State/Cl ass、Asso 與 Operation集合元素;之后根據(jù)軟件的可信需求定義可信構(gòu)造型,所述的可信需求包括安全性、可靠性、實(shí)時性與可用性,所述的可信構(gòu)造型包括用于描述可信需求的屬性及其約束,以ZMstati。中State集合元素的形式給出;最后補(bǔ)充軟件的操作規(guī)約,描述操作前后軟件狀態(tài)中變量的改變方式及約束,以ZMstatie中Operation集合元素的形式給出;
[0015]步驟2-3、將UML/MARTE狀態(tài)圖中的狀態(tài)節(jié)點(diǎn)、轉(zhuǎn)移動作、時鐘實(shí)例、狀態(tài)轉(zhuǎn)移元素映射至ZAM動態(tài)模型ZMdynami。中的S、Σ、C與T集合元素,將軟件操作的前置/后置條件映射至相關(guān)狀態(tài)的轉(zhuǎn)移條件,并在ZMdynami。中添加可信約束,所述的可信約束為ZMtinre和ZMstati。中與可信需求相關(guān)的謂詞約束,包括時間約束與數(shù)據(jù)約束;
[0016]步驟3、在ZAM模型的基礎(chǔ)上對可信性質(zhì)進(jìn)行驗(yàn)證,具體是對有限域上的ZAM動態(tài)模型ZMdynamie中的可信約束進(jìn)行驗(yàn)證,模型檢測算法FZMCA的驗(yàn)證方法是在有限域ZMdynami。的一次計(jì)算的所有狀態(tài)中,計(jì)算ZMTL時序邏輯公式-的可滿足狀態(tài)集合,若該集合包括這次計(jì)算中的所有狀態(tài),則驗(yàn)證通過,否則返回不滿足-的狀態(tài)集合;具體包括以下步驟:
[0017]步驟3-1、根據(jù)嵌入式軟件的可信需求,給出描述其可信性質(zhì)的ZMTL時序邏輯公式P;
[0018]步驟3-2、采用模型檢測算法FZMCA,判定ZAMdynamic是否滿足若滿足則結(jié)束驗(yàn)證,否則給出不滿足#的狀態(tài)集合。[0019]所述ZMdynami。的一次計(jì)算表示為一個有限狀態(tài)序列Π =(S(I, S1,..., sn) ,n e N,其中每一對相鄰狀態(tài)Si與si+1之間都存在狀態(tài)轉(zhuǎn)移,i e N,i < η ;令ji [k] = sk,k e N,k≤η ;
[0020]所述的ZMTL時序邏輯公式有以下七種形式:
[0021]
【權(quán)利要求】
1.一種嵌入式軟件可信屬性建模與驗(yàn)證方法,其特征在于,將嵌入式軟件建模規(guī)范MARTE與Z語言、時間自動機(jī)的建模過程相結(jié)合,并基于模型檢測算法進(jìn)行模型可信性質(zhì)的驗(yàn)證,具體包括以下步驟: 步驟1、建立半形式化模型,具體是建立UML/MARTE類圖和狀態(tài)圖; 步驟2、建立有限域上的可信嵌入式軟件模型ZAM,具體是將半形式化模型向形式化模型轉(zhuǎn)換,并補(bǔ)充其操作規(guī)約和可信約束,主要包括如下子步驟: 步驟2-1 UfMARTE所定義的時鐘類型與實(shí)例映射至ZAM時間模型ZMtime中的ClockType與Clock集合元素,所述ClockType集合元素的屬性包括時鐘性質(zhì)、單位、是否邏輯時鐘和最大值,Clock集合元素的屬性包括單位、時鐘類型、被參考時鐘、分辨率和偏移量;之后定義相應(yīng)的時間事件類型集合TimedEvent與時間過程類型集合TimedProcess,所述TimedEvent集合元素的屬性包括事件發(fā)生的時間點(diǎn),TimedProcess集合元素的屬性包括開始和結(jié)束時間點(diǎn)、以及它們之間的持續(xù)時間; 步驟2-2、將UML/MARTE類圖中的數(shù)據(jù)類型、全局變量、類、類關(guān)聯(lián)、類操作元素映射至ZAM 靜態(tài)模型 ZMstatic 中的 DataType、GlobalVariable、State/Class、Asso 與 Operation 集合元素;之后根據(jù)軟件的可信需求定義可信構(gòu)造型,所述的可信需求包括安全性、可靠性、實(shí)時性與可用性,所述的可信構(gòu)造型包括用于描述可信需求的屬性及其約束,以ZMstati。中State集合元素的形式給出;最后補(bǔ)充軟件的操作規(guī)約,描述操作前后軟件狀態(tài)中變量的改變方式及約束,以ZMstatie中Operation集合元素的形式給出; 步驟2-3、將UML/MARTE狀態(tài)圖中的狀態(tài)節(jié)點(diǎn)、轉(zhuǎn)移動作、時鐘實(shí)例、狀態(tài)轉(zhuǎn)移元素映射至ZAM動態(tài)模型ZMdynami。中的S、Σ、C與T集合元素,將軟件操作的前置/后置條件映射至相關(guān)狀態(tài)的轉(zhuǎn)移條件,并在ZMdyna mi。中添加可信約束,所述的可信約束為ZMtinre和ZMstati。中與可信需求相關(guān)的謂詞約束,包括時間約束與數(shù)據(jù)約束; 步驟3、在ZAM模型的基礎(chǔ)上對可信性質(zhì)進(jìn)行驗(yàn)證,具體是對有限域上的ZAM動態(tài)模型ZMdynafflic中的可信約束進(jìn)行驗(yàn)證,具體包括以下步驟: 步驟3-1、根據(jù)嵌入式軟件的可信需求,給出描述其可信性質(zhì)的ZMTL時序邏輯公式-5步驟3-2、采用模型檢測算法FZMCA,判定ZAMdynami。是否滿足,若滿足則結(jié)束驗(yàn)證,否則給出不滿足的狀態(tài)集合。
2.根據(jù)權(quán)利要求1所述的嵌入式軟件可信屬性建模與驗(yàn)證方法,其特征在于,步驟2中可信嵌入式軟件模型ZAM分為時間模型、靜態(tài)模型與動態(tài)模型三部分,用于對嵌入式軟件的結(jié)構(gòu)、行為及其可信約束進(jìn)行描述,其中: (a)ZAM時間模型ZMtime包括時鐘類型、時鐘實(shí)例、時間構(gòu)造型建模元素,所述時間構(gòu)造型建模元素包括時間事件、時間過程兩種; (b)ZAM靜態(tài)模型ZMstati。包括:數(shù)據(jù)類型、全局變量、類狀態(tài)、可信構(gòu)造型、類、類關(guān)聯(lián)、操作規(guī)約建模元素; (c)ZAM動態(tài)模型ZAMdynami。包括:狀態(tài)、轉(zhuǎn)移動作、時鐘、狀態(tài)轉(zhuǎn)移建模元素,以及這些建模元素分別與ZMtime和ZMstati。中各類元素之間的二元關(guān)系。
3.根據(jù)權(quán)利要求1所述的嵌入式軟件可信屬性建模與驗(yàn)證方法,其特征在于,步驟3中模型檢測算法FZMCA的驗(yàn)證方法是在有限域ZMdynamie的一次計(jì)算的所有狀態(tài)中,計(jì)算ZMTL時序邏輯公式Ψ的可滿足狀態(tài)集合,若該集合包括這次計(jì)算中的所有狀態(tài),則驗(yàn)證通過,否則返回不滿足-的狀態(tài)集合; 所述ZMdynaniie的一次計(jì)算表示為一個有限狀態(tài)序列n =(S(I, S1,...,sn),n e N,其中每一對相鄰狀態(tài)Si與si+1之間都存在狀態(tài)轉(zhuǎn)移,i e N, i〈n ;令ji [k]=sk, k e N,k≤η ;所述的ZMTL時序邏輯公式f有以下七種形式:
4.一種基于權(quán)利要求1所述嵌入式軟件可信屬性建模與驗(yàn)證方法的框架,其特征在于,該框架包括UML/MARTE圖形層、模型轉(zhuǎn)換層、ZAM模型層與可信驗(yàn)證層四個層次,其中: (a)UML/MARTE圖形層由UML/MARTE模型構(gòu)成,提供嵌入式軟件的圖形化建模功能,由UML/MARTE的各種元模型庫支持; (b)模型轉(zhuǎn)換層由模型轉(zhuǎn)換器與模型映射規(guī)則庫構(gòu)成,可進(jìn)行UML/MARTE圖形層與ZAM模型層的交互與轉(zhuǎn)換; (c) ZAM模型層由ZAM模型構(gòu)成,提供嵌入式軟件結(jié)構(gòu)、行為及其可信約束的形式化建模功能,由ZAM元模型支持; Cd)模型驗(yàn)證層由時序邏輯公式ZMTL與模型檢測算法FZMCA構(gòu)成,提供對ZAM動態(tài)模型的形式化驗(yàn)證功能。
【文檔編號】G06F11/36GK103488568SQ201310459533
【公開日】2014年1月1日 申請日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
【發(fā)明者】莊毅, 倪思如, 顧晶晶, 霍瑛, 許海洋 申請人:南京航空航天大學(xué)