基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法
【專利摘要】本發(fā)明公開一種基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法,其以狀態(tài)為基礎,采用動態(tài)描述邏輯的動作理論對問題進行描述,把程序功能模塊的執(zhí)行看作是使狀態(tài)改變的動作,把狀態(tài)的轉(zhuǎn)換看作是由動作引起的改變,加入了狀態(tài)轉(zhuǎn)換之間的語義信息,降低了建模的復雜度。再將動態(tài)描述邏輯的描述能力和可推理能力結(jié)合案例推理技術,對故障案例進行管理,為系統(tǒng)將要出現(xiàn)的新的故障提供解決方法上的經(jīng)驗支持。加入動作序列匹配的案例檢索提高對系統(tǒng)故障的案例檢索的查準率。當系統(tǒng)運行的過程中遇到故障之后,利用本發(fā)明的方法能夠通過軟件運行的狀態(tài)轉(zhuǎn)換序列找出相似故障案例及提供相應修復措施。
【專利說明】基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法
【技術領域】
[0001] 本發(fā)明涉及軟件系統(tǒng)【技術領域】,具體涉及一種基于動態(tài)描述邏輯和案例推理的軟 件系統(tǒng)故障檢測方法。
【背景技術】
[0002] 隨著軟件技術的提升和軟件應用領域的不斷拓寬,更多的復雜技術系統(tǒng)需要借助 軟件來對其進行控制。在當今軟件的應用中,更需要注重軟件系統(tǒng)的正確性、可靠性、性能、 隱私性、可用性、保密性和安全性等其它的可信性質(zhì)。軟件領域所提出的可信軟件系統(tǒng)是指 具有容錯功能的穩(wěn)定的軟件系統(tǒng)。即在系統(tǒng)出現(xiàn)錯誤的情況下,系統(tǒng)依然能夠提供正確的 服務。若在系統(tǒng)的開發(fā)階段就實現(xiàn)容錯功能,則可W提高了系統(tǒng)的可靠性。可信軟件系統(tǒng)在 實現(xiàn)的過程中,主要分為兩個階段:故障檢索階段和故障恢復階段。但隨著復雜技術系統(tǒng)性 能和可靠性要求的進一步增加,并加之系統(tǒng)固有的復雜性,使得故障的檢測難度不斷增大。 尤其是軟件運行時的動態(tài)特性,使得軟件故障更加難W檢測。對于軟件系統(tǒng)的可靠性研究, 不能局限于靜態(tài)的系統(tǒng),更需關注系統(tǒng)的動態(tài)變化。
[0003] 通過實踐表明,網(wǎng)絡結(jié)構化的軟件動態(tài)系統(tǒng)的故障檢測問題可W抽象成為一個離 散事件系統(tǒng)值iscrete-Event System,簡稱DE巧的狀態(tài)轉(zhuǎn)化和推理問題。而現(xiàn)有的一些 基于離散時間系統(tǒng)框架檢測方式的主要方法是:將被檢測的系統(tǒng)抽象建模成為一個有限狀 態(tài)機,基于各個狀態(tài)之間的轉(zhuǎn)換關系,通過對狀態(tài)的評估可W指出是否有一個故障發(fā)生。雖 然在一些研究中通過對時間等信息的引入使得檢測效率有所提高,但由于有的軟件實體的 行為并沒有完全地遵循軟件的設計理念,執(zhí)行了設計者所禁止的行為,違反了系統(tǒng)的語義, 即現(xiàn)有的故障檢測方法對于軟件系統(tǒng)中的語義信息仍然考慮得不足,因而均不能很好得解 決可信軟件系統(tǒng)現(xiàn)在所面臨的問題。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的是現(xiàn)有軟件系統(tǒng)的故障檢測方法對于動態(tài)軟件系統(tǒng)中的語義 信息考慮不足的問題,提供一種基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法。
[0005] 為解決上述問題,本發(fā)明是通過W下技術方案實現(xiàn)的:
[0006] 基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法,包括如下步驟:
[0007] 步驟1,采用動態(tài)維度的動態(tài)描述邏輯對程序運行過程中遇到的問題進行描述,即 把程序的執(zhí)行看作是狀態(tài)轉(zhuǎn)換的動作,把狀態(tài)轉(zhuǎn)換看作是由動作引起的,并將狀態(tài)轉(zhuǎn)換加 入語義信息;
[0008] 步驟2,將當前程序運行過程中遇到的問題作為新案例,將新案例的狀態(tài)和動作序 列作為本次案例檢索的輸入;
[0009] 步驟3,將新案例的狀態(tài)與案例庫中的案例進行相似計算,并從案例庫中挑選出與 新案例的相似度達到狀態(tài)相似匹配闊值的案例,將之存入初步結(jié)果集合中;
[0010] 步驟4,依次從初步結(jié)果集合中提取一個案例;首先將引起到達該提取案例的最 后一個動作與引起到達新案例的最后一個動作進行相似度計算,初始的相似動作計數(shù)變量 為零;若2個動作的相似度達到動作相似匹配的闊值,則相似動作計數(shù)變量加1,表示提取 案例與新案例在動作上的相似程度增加,并將比較對象指向更為往前的一個動作,直至提 取案例的動作與新案例的動作未達到動作相似匹配的闊值或動作序列完全匹配為止;然后 讀取相似動作計數(shù)變量的值,作為該提取案例與新案例的動作相似度;
[0011] 步驟5,對初步結(jié)果集合中的所有案例與新案例的動作相似度進行排序,并將擁有 最大動作相似度值的案例作為與新案例的最相似案例,此時將最相似案例的問題描述和問 題解決方案作為結(jié)果輸出。
[0012] 上述步驟3中,若案例庫中的所有案例與新案例的相似度均未達到狀態(tài)相似匹配 闊值,則啟動人工專家干預,并將此案例的問題的描述和問題解決方案存入案例庫中,更新 案例庫使得下次遇到相似問題會提供此方案。
[0013] 上述步驟4中,當將引起達到提取案例的最后一個動作與引起達到新案例的最后 一個動作進行相似計算后,若2個動作的相似度未達到動作相似匹配的闊值,則不對相似 動作計數(shù)變量進行計數(shù)累計,直接跳轉(zhuǎn)至步驟5。
[0014] 與現(xiàn)有技術相比,本發(fā)明所提出的一種基于動態(tài)描述邏輯和案例推理技術的軟件 系統(tǒng)故障檢測方法,其W狀態(tài)為基礎,采用動態(tài)描述邏輯的動作理論對問題進行描述,把程 序功能模塊的執(zhí)行看作是使狀態(tài)改變的動作,把狀態(tài)的轉(zhuǎn)換看作是由動作引起的改變,力口 入了狀態(tài)轉(zhuǎn)換之間的語義信息,降低了建模的復雜度。再將動態(tài)描述邏輯的描述能力和可 推理能力結(jié)合案例推理(Case-Based Reasoning,簡稱CBR)技術,對故障案例進行管理,為 系統(tǒng)將要出現(xiàn)的新的故障提供解決方法上的經(jīng)驗支持。加入動作序列匹配的案例檢索提高 對系統(tǒng)故障的案例檢索的查準率。當系統(tǒng)運行的過程中遇到故障之后,利用本發(fā)明的方法 能夠通過軟件運行的狀態(tài)轉(zhuǎn)換序列找出相似故障案例及提供相應修復措施。使用本發(fā)明, 在軟件系統(tǒng)的功能變化較大時,仍能保持算法的靈活性,不會因為一個狀態(tài)的轉(zhuǎn)換或功能 的變化而對整個模型的約束關系進行更改,或是去重新設置狀態(tài)轉(zhuǎn)換的自動機模型。可W 減少案例描述中的兀余度,提高檢索算法中的匹配效率。
【專利附圖】
【附圖說明】
[0015] 圖1是本發(fā)明的動態(tài)描述邏輯知識庫結(jié)構。
[0016] 圖2是本發(fā)明的整體方案示意圖。
[0017] 圖3是本發(fā)明的一個故障檢測的系統(tǒng)模型實例。
[001引圖4是本發(fā)明的加入動作序列比較的相似度算法流程圖。
【具體實施方式】
[0019] 一種基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法,包括如下步驟:
[0020] 步驟1,采用動態(tài)維度的動態(tài)描述邏輯對程序運行過程中遇到的問題進行描述,即 把程序的執(zhí)行看作是狀態(tài)轉(zhuǎn)換的動作,把狀態(tài)轉(zhuǎn)換看作是由動作引起的,并將狀態(tài)轉(zhuǎn)換加 入語義信息;
[0021] 步驟2,將當前程序運行過程中遇到的問題作為新案例,將新案例的狀態(tài)和動作序 列作為本次案例檢索的輸入;
[0022] 步驟3,將新案例的狀態(tài)與案例庫中的案例進行相似計算,并從案例庫中挑選出與 新案例的相似度達到狀態(tài)相似匹配闊值的案例,將之存入初步結(jié)果集合中;若案例庫中的 所有案例與新案例的相似度均未達到狀態(tài)相似匹配闊值,則啟動人工專家干預,并將此案 例的問題的描述和問題解決方案存入案例庫中,更新案例庫使得下次遇到相似問題會提供 此方案;
[0023] 步驟4,依次從初步結(jié)果集合中提取一個案例;首先將引起到達該提取案例的最 后一個動作與引起到達新案例的最后一個動作進行相似度計算,并將初始化相似動作計數(shù) 變量為零;當將引起達到提取案例的最后一個動作與引起達到新案例的最后一個動作進行 相似計算后,若2個動作的相似度未達到動作相似匹配的闊值,則不對相似動作計數(shù)變量 進行計數(shù)累計,直接跳轉(zhuǎn)至步驟5 ;若2個動作的相似度達到動作相似匹配的闊值,則相似 動作計數(shù)變量加1,表示提取案例與新案例在動作上的相似程度增加,并將比較對象指向更 為往前的一個動作,直至提取案例的動作與新案例的動作未達到動作相似匹配的闊值或動 作序列匹配完成為止;然后讀取相似動作計數(shù)變量的值,作為該提取案例與新案例的動作 相似度;
[0024] 步驟5,對初步結(jié)果集合中的所有案例與新案例的動作相似度進行排序,并將擁有 最大動作相似度值的案例作為與新案例的最相似案例,此時將最相似案例的問題描述和問 題解決方案作為結(jié)果輸出。
[00巧]下面對本發(fā)明進行進一步詳細說明:
[0026] 一、程序運行狀態(tài)轉(zhuǎn)換的動作表示及建模
[0027] 作為一類用于知識表示的形式化工具,描述邏輯值escription Logic,簡稱化) 是一種基于對象的知識表示的形式化,也叫概念表示語言或術語邏輯。他是一階邏輯的一 個可判定的子集,具有合適定義的語義,并且具有很強的表達能力。一個描述邏輯系統(tǒng)包含 四個基本組成部分;表示概念和關系的構造集、TBox包含斷言、ABox實例斷言、TBox和ABox 上的推理機制。一個描述邏輯系統(tǒng)的表示能力和推理能力取決于對W上幾個要素的選擇W 及不同的假設。在此基礎上引入動態(tài)維度的動態(tài)描述邏輯值ynamic DescriptionLogic,簡 稱DDL)將描述邏輯、動態(tài)邏輯與動作理論有機地結(jié)合起來,在描述邏輯ALC基礎上構建起 來的動態(tài)描述邏輯具有清晰的語義特征,并且同樣可W提供可判定的推理服務。
[0028] 本發(fā)明使用孤L通過原子動作定義式對在程序運行階段的各個原子動作進行進 一步的刻畫。每個原子動作定義形式如a S (P,E),其中;(l)a G Na,表示被定義的原子 動作;(2)P是由簡單公式組成的有限集合,表示執(zhí)行該動作之前必須滿足的條件;(3化是 由簡單公式組成的有限集合,表示執(zhí)行該動作之后將會產(chǎn)生的影響。W描述邏輯中RBox和 TBox刻畫的領域知識為背景,依次引入帶參數(shù)的原子動作定義式和帶參數(shù)的復雜動作定義 式,形成關于原子動作的知識模塊AActBox和關于復雜動作的知識模塊CActBox,然后將 RBox,TBox,AActBox,CActBox W及描述邏輯中的ABox -起構成基于孤L的知識庫;該知識 庫在描述邏輯的基礎上實現(xiàn)了對靜態(tài)領域知識、關于動作的知識和應用領域具體狀態(tài)的統(tǒng) 一刻畫。接下來,對與知識庫相關的各種推理問題進行了全面的考察,給出了在執(zhí)行動作之 后引起的ABox更新。對于故障檢測模型,需要在W上的基礎上增加一個動作執(zhí)行序列知識 模塊ActSerialBox,它由四部分組成{動作序列,當前狀態(tài),故障標志位,故障解決方案}, 其中當故障標志位為0時,表示至當前狀態(tài)未發(fā)生故障,故障解決方案為空;當故障標志位 為1時,表示當前狀態(tài)為故障狀態(tài),故障解決方案保存對當前故障的解決方案。參見圖1。
[0029] 本發(fā)明定義的知識庫邸包含了 4個方面的知識:由R和F表示的領域本體、由 AAct和CAct表示的關于動作的知識、由刻畫的關于應用領域具體狀態(tài)的知識、動作序列構 成的知識集合。各部分知識之間具有圖2所示的層次關系。其中,在刻畫領域本體時發(fā)揮 了描述邏輯的刻畫能力,既描述了靜態(tài)領域知識,又為動作和狀態(tài)的刻畫提供了詞匯;在刻 畫原子動作時通過描述邏輯公式分別對動作的前提條件和執(zhí)行動作之后產(chǎn)生的影響進行 了描述;而在刻畫復雜動作時則發(fā)揮了動態(tài)邏輯的刻畫能力,可W對順序、測試、選擇、迭代 等控制結(jié)構進行刻畫;在刻畫應用領域具體狀態(tài)時再一次發(fā)揮了描述邏輯的刻畫能力。
[0030] 在DDL中所使用的計算符號:
[0031]
【權利要求】
1. 基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法,其特征是,包括如下步 驟: 步驟1,采用動態(tài)維度的動態(tài)描述邏輯對程序運行過程中遇到的問題進行描述,即把程 序的執(zhí)行看作是狀態(tài)轉(zhuǎn)換的動作,把狀態(tài)轉(zhuǎn)換看作是由動作引起的,并將狀態(tài)轉(zhuǎn)換加入語 義信息; 步驟2,將當前程序運行過程中遇到的問題作為新案例,將新案例的狀態(tài)和動作序列作 為本次案例檢索的輸入; 步驟3,將新案例的狀態(tài)與案例庫中的案例進行相似計算,并從案例庫中挑選出與新案 例的相似度達到狀態(tài)相似匹配閾值的案例,將之存入初步結(jié)果集合中; 步驟4,依次從初步結(jié)果集合中提取一個案例;首先將引起到達該提取案例的最后一 個動作與引起到達新案例的最后一個動作進行相似度計算,并將初始化相似動作計數(shù)變量 為零;若2個動作的相似度達到動作相似匹配的閾值,則相似動作計數(shù)變量加1,表示提取 案例與新案例在動作上的相似程度增加,并將比較對象指向更為往前的一個動作,直至提 取案例的動作與新案例的動作未達到動作相似匹配的閾值或動作序列匹配完成為止;然后 讀取相似動作計數(shù)變量的值,作為該提取案例與新案例的動作相似度; 步驟5,對初步結(jié)果集合中的所有案例與新案例的動作相似度進行排序,并將擁有最大 動作相似度值的案例作為與新案例的最相似案例,此時將最相似案例的問題描述和問題解 決方案作為結(jié)果輸出。
2. 根據(jù)權利要求1所述的基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法,其 特征是,步驟3中,若案例庫中的所有案例與新案例的相似度均未達到狀態(tài)相似匹配閾值, 則啟動人工專家干預,并將此案例的問題的描述和問題解決方案存入案例庫中,更新案例 庫使得下次遇到相似問題會提供此方案。
3. 根據(jù)權利要求1所述的基于動態(tài)描述邏輯和案例推理的軟件系統(tǒng)故障檢測方法,其 特征是,步驟4中,當將引起達到提取案例的最后一個動作與引起達到新案例的最后一個 動作進行相似計算后,若2個動作的相似度未達到動作相似匹配的閾值,則不對相似動作 計數(shù)變量進行計數(shù)累計,直接跳轉(zhuǎn)至步驟5。
【文檔編號】G06F11/36GK104503920SQ201510034300
【公開日】2015年4月8日 申請日期:2015年1月23日 優(yōu)先權日:2015年1月23日
【發(fā)明者】常亮, 谷宇奇, 李鳳英, 徐周波, 古天龍 申請人:桂林電子科技大學