最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種軟件故障報警監(jiān)測方法與流程

文檔序號:11230304閱讀:585來源:國知局
一種軟件故障報警監(jiān)測方法與流程

本發(fā)明涉及軟件故障監(jiān)測技術(shù),尤其是涉及一種軟件故障報警監(jiān)測方法。



背景技術(shù):

對于涉及到生命攸關(guān)功能的軟件,軟件的故障可能導(dǎo)致極其災(zāi)難性的后果,因此對軟件安全性極度關(guān)注,該類軟件被稱為安全苛求軟件。

安全苛求軟件可能包含了非常復(fù)雜的處理邏輯,人工的分析和測試并不能檢查出所有的風(fēng)險,為了保證軟件始終運行在期望的設(shè)計空間內(nèi),引入契約式設(shè)計技術(shù)。

契約式設(shè)計是一種可以提高系統(tǒng)安全性的一種技術(shù)。契約由前置條件,后置條件,不變項組成。前置條件在每個操作(函數(shù))最開始檢查,為了執(zhí)行操作必須為真;后置條件是函數(shù)保證做到的事情,是函數(shù)完成的狀態(tài);不變項在函數(shù)執(zhí)行前必須為真,在函數(shù)執(zhí)行結(jié)束后也必須為真。對于安全苛求軟件,軟件始終運行在期望且確定的狀態(tài)空間內(nèi),每個函數(shù)的契約在運行時都必須滿足,如果契約違背則系統(tǒng)處于預(yù)期設(shè)計空間之外,軟件需要導(dǎo)向安全處理。

在軟件運行時記錄故障報警產(chǎn)生的位置是一個比較復(fù)雜問題,因為函數(shù)模塊調(diào)用關(guān)系的是非常復(fù)雜的,一個子模塊可以被不同層次的父模塊調(diào)用,可以在同一模塊中被調(diào)用多次,甚至被循環(huán)調(diào)用上萬次,模塊的位置是在軟件運行時根據(jù)實時狀態(tài)動態(tài)決定的。

分析報警原因也比較復(fù)雜,報警的產(chǎn)生是瞬時系統(tǒng)內(nèi)部狀態(tài)和外部輸入共同導(dǎo)致的,產(chǎn)生異常數(shù)據(jù)的源頭可能不在報警模塊中,可能是多個模塊組合影響的結(jié)果,這類問題采用人工分析的代價非常大。



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

本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種軟件故障報警監(jiān)測方法,在軟件故障時導(dǎo)向安全處理,并且能夠快速定位故障位置,分析報警原因,提高了軟件的安全性和可維護性。

本發(fā)明的目的可以通過以下技術(shù)方案來實現(xiàn):

一種軟件故障報警監(jiān)測方法,包括以下步驟:

步驟a:為每一個軟件模塊分配靜態(tài)模塊編碼;

步驟b:在軟件模塊中為每一個故障報警信息分配一個靜態(tài)故障編碼;

步驟c:軟件運行時在軟件模塊執(zhí)行之前分配動態(tài)模塊編碼;

步驟d:在軟件模塊執(zhí)行時首先記錄當前模塊編碼;

步驟e:在軟件模塊運行時檢查和搜集故障報警信息;

步驟f:檢測到故障信息后將系統(tǒng)全部內(nèi)部狀態(tài)記錄到外部存儲器,系統(tǒng)導(dǎo)向安全處理;

步驟g:軟件模塊正常執(zhí)行結(jié)束時擦除記錄的當前模塊編碼;

步驟h:使用故障分析診斷工具進行分析。

所述的步驟a中的靜態(tài)模塊編碼是全局唯一且不重復(fù)的模塊標志。

所述的步驟b中的靜態(tài)故障編碼為在模塊內(nèi)部是唯一且不重復(fù)的錯誤標志。

所述的步驟c中的動態(tài)模塊編碼是由父模塊a向被其調(diào)用子模塊b臨時分配動態(tài)模塊編碼。

所述的子模塊在同一父模塊中獲得的動態(tài)模塊編碼是不重復(fù)的,子模塊在同一父模塊中被多次調(diào)用時,每次子模塊將被分配唯一的且不重復(fù)的動態(tài)模塊編碼;同一子模塊在不同父模塊中被調(diào)用時,只要求子模塊在同一父模塊中獲得的動態(tài)模塊編碼是不重復(fù)的。

所述的父模塊通過形參傳遞動態(tài)模塊編碼給子模塊。

所述的步驟d中的當前模塊編碼是由靜態(tài)模塊編碼與動態(tài)模塊編碼組成的有序?qū)?,當前模塊編碼是系統(tǒng)運行時當前模塊在父模塊中執(zhí)行的唯一相對路徑。

存儲所述的當前模塊編碼的集合稱為模塊信息序列表,每記錄一條當前模塊編碼時,在模塊信息序列表尾部插入一條數(shù)據(jù),當模塊信息序列表存滿時,記錄模塊信息序列表溢出事件。

所述的步驟e中,在軟件模塊運行時檢查和搜集故障報警信息具體為:在軟件模塊運行時檢查前置、后置和不變項條件是否全部成立,結(jié)果為否定時產(chǎn)生異常報警,故障搜集模塊將搜集所有異常報警信息。

所述的故障搜集模塊首先記錄自身模塊編碼到模塊信息序列表,然后記錄故障異常報警信息對應(yīng)的故障編碼到模塊信息序列表。

所述的步驟f中系統(tǒng)全部內(nèi)部狀態(tài)是系統(tǒng)運行所使用的全部全局變量,包含模塊信息序列表數(shù)據(jù)。

所述的步驟g具體為:沒有異常報警信息發(fā)生時,模塊正常執(zhí)行結(jié)束,結(jié)束前最后一個動作是從模塊信息序列表擦除記錄的當前模塊編碼。

所述的從模塊信息序列表擦除記錄的當前模塊編碼具體為:

通過刪除模塊信息序列表尾部最后一條數(shù)據(jù)實現(xiàn),當模塊信息序列表為空時,記錄模塊信息序列表為空事件。

所述的唯一相對路徑通過模塊信息序列表存儲的相對路徑有序序列來表示,即是從系統(tǒng)運行的最頂層模塊到當前執(zhí)行模塊的相對路徑,按照執(zhí)行順序組成有序序列。

故障發(fā)生時異常報警信息的唯一絕對路徑,通過模塊執(zhí)行時的唯一絕對路徑,加上故障編碼表示。

所述的步驟h中使用故障分析診斷工具進行分析具體為:讀取外部存儲器中保存的模塊信息序列表數(shù)據(jù),判斷故障發(fā)生時異常報警信息的唯一絕對對路徑,根據(jù)此時系統(tǒng)內(nèi)部狀態(tài)進行原因分析。

與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:

本發(fā)明所述方法利用模塊的相對路徑組合定位報警產(chǎn)生的位置,能夠適應(yīng)復(fù)雜的程序動態(tài)調(diào)用關(guān)系,可以不限容量的增加報警事件,報告故障坐標更加精確。

采用本發(fā)明所述方法,將故障產(chǎn)生瞬間的系統(tǒng)內(nèi)部狀態(tài)記錄到外部存儲器,便于使用專用的故障分析診斷工具復(fù)現(xiàn)故障場景,快速分析故障原因。

附圖說明

圖1為本發(fā)明功能模塊流程圖;

圖2為本發(fā)明故障報警搜集模塊流程圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應(yīng)屬于本發(fā)明保護的范圍。

本發(fā)明所要解決的技術(shù)問題,是實時監(jiān)測軟件故障報警,并且為分析問題提供故障瞬間的軟件內(nèi)部狀態(tài)。

如圖.1所示流程是一個具有監(jiān)測故障報警能力的功能模塊流程圖。

步驟a中,在軟件設(shè)計階段,為每一個軟件模塊分配靜態(tài)模塊編碼,靜態(tài)模塊編碼全局統(tǒng)一編碼,只在模塊內(nèi)部可見和使用。

步驟b中,在軟件設(shè)計階段,每一條報警信息在模塊中被分配一條靜態(tài)的故障編碼。

步驟c中,模塊的輸入?yún)?shù)接口中包含一個參數(shù)代表動態(tài)模塊編碼;模塊中如果調(diào)用了子模塊,每次調(diào)用的子模塊將被賦予不同的編號,通過該編號是可以反向推導(dǎo)子模塊執(zhí)行的時序,該編號作為參數(shù)傳遞給子模塊作為其動態(tài)模塊編碼。

步驟d中,在模塊中靜態(tài)模塊編碼和動態(tài)模塊編碼組合成為當前模塊編碼,當前模塊編碼代表模塊在父模塊中執(zhí)行的唯一相對路徑;功能模塊執(zhí)行的第一個動作是將當前模塊編碼記錄到模塊信息序列表。然后模塊執(zhí)行功能相關(guān)邏輯和契約檢查。

步驟e中,模塊執(zhí)行功能相關(guān)邏輯時模塊檢查契約(前置條件,后置條件,不變項)是否違背,如果契約違背將生成報警信息,在檢查契約之后,所有的故障報警事件都通過接口參數(shù)傳輸?shù)焦收纤鸭K中。

如圖2所示流程是故障搜集模塊的處理流程。

步驟f中,故障搜集模塊也通過靜態(tài)模塊編碼和動態(tài)模塊編碼來唯一標識路徑信息。故障搜集模塊檢查到故障報警時,轉(zhuǎn)入軟件安全側(cè)處理;如果沒有報警則返回上層模塊。軟件安全側(cè)處理將中斷軟件正常運行,首先記錄故障信息到模塊信息序列表,然后設(shè)置標志位表明存在故障信息,并且將系統(tǒng)的全部內(nèi)部狀態(tài)記錄到外部存儲器,最后調(diào)用專用模塊中斷軟件運行將系統(tǒng)導(dǎo)向安全側(cè)。

步驟g中,模塊正常執(zhí)行的最后一個動作是將當前模塊編碼從模塊信息序列表中刪除。如果在模塊的第一個和最后一個動作之間發(fā)生故障報警事件,模塊的正常邏輯將不會正確執(zhí)行。

其中步驟d中,向模塊信息序列表寫入一條模塊編碼時,如果模塊信息序列表已滿,將生成表溢出事件,如果不存在報警信息則在表尾插入一條數(shù)據(jù)。步驟g中,從模塊信息序列表刪除一條模塊編碼時,如果模塊信息序列表為空,將生成表空出事件,如果不存在報警信息則在表尾刪除一條數(shù)據(jù)。向模塊信息序列表寫入、刪除一條數(shù)據(jù)在模塊中是成對出現(xiàn)的。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到各種等效的修改或替換,這些修改或替換都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以權(quán)利要求的保護范圍為準。

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