一種傳感器網(wǎng)軟件可達性驗證方法
【專利摘要】本發(fā)明提出一種傳感器網(wǎng)軟件可達性驗證方法,該方法首先將無線傳感網(wǎng)軟件用模型表示,該模型用來描述節(jié)點以及節(jié)點之間的狀態(tài)遷移,然后用粒子群算法對所得的軟件模型進行優(yōu)化,在具體實施總可以時序邏輯公式來表示無線傳感網(wǎng)軟件所需要滿足的屬性或性質(zhì),將對無線傳感網(wǎng)軟件的驗證轉(zhuǎn)化為驗證軟件模型是否滿足公式來判斷系統(tǒng)性質(zhì)。本發(fā)明方法通過對可達性驗證路徑的優(yōu)化,能夠有效地對傳感器網(wǎng)軟件進行可達性驗證,并保持具有較強的靈活性。
【專利說明】一種傳感器網(wǎng)軟件可達性驗證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種傳感器網(wǎng)絡(luò)軟件可達性驗證方法,主要利用模型檢驗技術(shù)來解決傳感器網(wǎng)絡(luò)軟件驗證問題,屬于計算機科學與技術(shù)、軟件工程和形式化驗證、人工智能交叉技術(shù)應(yīng)用領(lǐng)域。
【背景技術(shù)】
[0002]無線傳感器網(wǎng)絡(luò)是由部署在監(jiān)測區(qū)域內(nèi)的傳感器節(jié)點通過無線通信方式形成的一個多跳自組織網(wǎng)絡(luò)系統(tǒng),目的是協(xié)作地感知、采集、處理和發(fā)布網(wǎng)絡(luò)覆蓋區(qū)域的對象信息。傳感器節(jié)點是由傳感器模塊、處理器模塊、無線通信模塊和能量供應(yīng)模塊等部分組成,傳感器模塊負責監(jiān)測區(qū)域的信息采集和數(shù)據(jù)轉(zhuǎn)換;處理器模塊負責控制傳感器節(jié)點的操作,存儲和處理采集到的數(shù)據(jù)以及其他節(jié)點發(fā)來的數(shù)據(jù);無線通信模塊負責與其他傳感器節(jié)點進行無線通信,交換控制消息和收發(fā)采集數(shù)據(jù);能量供應(yīng)模塊為傳感器節(jié)點提供運行所需要的能量,通常使用微型電池。在無線傳感器網(wǎng)絡(luò)中,節(jié)點不是單個感知單元,而是能夠交換信息、協(xié)調(diào)控制的有機結(jié)合體,整個網(wǎng)絡(luò)實現(xiàn)物與物的互聯(lián),把感知觸角深入世界各個角落,將成為下一代互聯(lián)網(wǎng)的重要組成部分。
[0003]隨著技術(shù)的不斷發(fā)展,一方面無線傳感器網(wǎng)絡(luò)軟件規(guī)模不斷膨脹,軟件系統(tǒng)變得越來越復(fù)雜,另一方面無線傳感器網(wǎng)絡(luò)應(yīng)用對軟件系統(tǒng)的可靠性提出了較高的要求。無線傳感器網(wǎng)絡(luò)軟件系統(tǒng)不斷膨脹的規(guī)模及其并發(fā)特性主要帶來了內(nèi)在非確定性,增大了驗證系統(tǒng)可靠性的難度和代價。由于無線傳感器網(wǎng)絡(luò)現(xiàn)有程序開發(fā)語言本身具有不安全的特征,使利用傳統(tǒng)方法來排除軟件系統(tǒng)中的錯誤已經(jīng)越來越難以滿足實際需要。因此,如何保證軟件正確性和可靠性成 為當前產(chǎn)業(yè)最緊迫的問題,在諸多問題解決方案中,模型檢驗等形式化驗證技術(shù)在硬件和協(xié)議驗證領(lǐng)域取得了成功,為應(yīng)用于軟件驗證打下了基礎(chǔ)。軟件的形式化驗證就是對無線傳感器網(wǎng)絡(luò)軟件進行正確性證明。在軟件形式化驗證方法中,模型檢驗可以在構(gòu)建系統(tǒng)前對系統(tǒng)的安全性和可靠性進行驗證,以盡早發(fā)現(xiàn)錯誤,其基本原理是為系統(tǒng)建立形式化模型,闡述所要驗證的性質(zhì),然后用算法去檢測該模型是否滿足所述性質(zhì)。
[0004]模型檢驗的基本思想是用狀態(tài)遷移系統(tǒng)(S)表示系統(tǒng)的行為,用模態(tài)/時序邏輯公式(F)描述系統(tǒng)的性質(zhì),這樣“系統(tǒng)是否滿足所期望的性質(zhì)”就轉(zhuǎn)化為數(shù)學問題“狀態(tài)遷移系統(tǒng)S是否公式F的一個模型”,用公式表示為S I =F?。對有窮狀態(tài)系統(tǒng),這個問題是可判定的,即可以用計算機程序在有限時間內(nèi)自動確定。模型檢驗提供一個完整的系統(tǒng)屬性驗證框架,其優(yōu)點是模型檢驗?zāi)苓_到完全自動化的程度,只需用有窮狀態(tài)模型和邏輯公式分別將系統(tǒng)實現(xiàn)和待驗證的系統(tǒng)規(guī)范描述出來,之后的判斷過程則完全可以由模型檢驗工具自動完成,不需要人的參與;模型檢驗過程總會以“是”或“否”的結(jié)果中止,當以“否”的結(jié)果中止時,說明設(shè)計或系統(tǒng)不滿足某個給定的性質(zhì)。此時一個違反性質(zhì)的行為反例將會被給出,此反例將對理解錯誤的真正原因和修正錯誤提供線索。
[0005]粒子群算法最早是由Eberhart和Kelmedy于1995年提出的,它的基本概念源于對人工生命和鳥群捕食行為的研究。一群鳥在隨機搜尋食物,在這個區(qū)域里只有一塊食物,所有的鳥都不知道食物在哪里,但是它們知道當前的位置離食物還有多遠。最簡單有效的就是搜尋目前離食物最近的鳥的周圍區(qū)域。
【發(fā)明內(nèi)容】
[0006]技術(shù)問題:本發(fā)明的目的是提供一種傳感器網(wǎng)軟件可達性驗證方法,用于解決傳感網(wǎng)軟件模型檢驗過程中出現(xiàn)的自動機模型冗余問題,本發(fā)明用粒子群優(yōu)化算法優(yōu)化自動機模型。
[0007]技術(shù)方案:本發(fā)明所述的傳感器網(wǎng)軟件可達性驗證方法,首先將無線傳感網(wǎng)軟件用模型表示,該模型用來描述 節(jié)點以及節(jié)點之間的狀態(tài)遷移,然后用粒子群算法對所得的軟件模型進行優(yōu)化,判讀無線傳感網(wǎng)軟件狀態(tài)之間的可達性。
[0008]本發(fā)明所述的傳感器網(wǎng)軟件可達性驗證方法具體步驟如下:
[0009]步驟1、構(gòu)建無線傳感網(wǎng)軟件模型,該模型用四元組(S,S0, R,L)形式來描述,其中S表不狀態(tài)集合;Stl表不初始狀態(tài)集合;R表不狀態(tài)遷移,對任意一個a e R, a^=S><S,a (X0, X1)表示狀態(tài)Xtl和狀態(tài)X1之間存在狀態(tài)遷移a,也可以表示為X1 = a (X0)jX0 e S,X1 e S山是用戶指定的賦值函數(shù),該函數(shù)用于對原子命題的賦值。
[0010]步驟2、給無線傳感網(wǎng)軟件模型中狀態(tài)集合S的每一個狀態(tài)賦予不同的序號,記錄無線傳感網(wǎng)軟件每一個可能執(zhí)行過程中的所有狀態(tài)序列,每一個狀態(tài)序列用執(zhí)行過程中先后到達的狀態(tài)的序號表不。
[0011]步驟3、用戶標記目的狀態(tài)Xn。
[0012]步驟4、依次選擇步驟2中記錄的無線傳感網(wǎng)軟件一個可能執(zhí)行過程中的狀態(tài)序列,查找該狀態(tài)序列是否包含目的狀態(tài)xn,若該狀態(tài)序列包含目的狀態(tài)xn,則刪除該狀態(tài)序列中狀態(tài)Xn后的所有狀態(tài),進入步驟5 ;若該狀態(tài)序列不包含目的狀態(tài)Xn,進入步驟5。
[0013]步驟5、從狀態(tài)X1開始,計算每個狀態(tài)到目的狀態(tài)的狀態(tài)遷移量,所述狀態(tài)遷移量是指狀態(tài)到達目的狀態(tài)的狀態(tài)路徑中包含的狀態(tài)數(shù)目,設(shè)f⑴為第i個狀態(tài)到目的狀態(tài)的狀態(tài)遷移量,pa,j)表示第i個狀態(tài)的鄰居狀態(tài)j到目的狀態(tài)的狀態(tài)遷移量,Na)表示i狀態(tài)的下一狀態(tài)。
[0014]步驟6、計算任意一個狀態(tài)Xi的f(i)和P(i,j),判斷f(i)與和P(i,j)的大小關(guān)系,若fa) ^ p(i, j),則Xi與xnF連通,即狀態(tài)不可達;若出現(xiàn)pa,j)〈fa),則對于狀態(tài)i,選定P(i,j)最小的Xj為狀態(tài)Xi的下一躍遷狀態(tài),即N α) =χ」。
[0015]步驟7、判斷Xj是否為目的狀態(tài)Xn,若Xj = Xn,記錄從X1到Xn的路徑,循環(huán)結(jié)束,進入步驟8 ;若Xj古Xn,令i = j返回步驟6。
[0016]步驟8、使用一種模型檢驗工具建立傳感網(wǎng)軟件狀態(tài)Xp X2.....Xn,用時序邏輯語
言表示用戶指定的待驗證的性質(zhì),根據(jù)用戶標記目的狀態(tài)Xn及步驟3到步驟7確定的從狀態(tài)X1到狀態(tài)Xn的路徑,進行可達性驗證,若存在到達目的狀態(tài)的合法路徑,則狀態(tài)是可達的,反之狀態(tài)不可達。所述模型檢驗工具是能夠進行模型檢驗的系統(tǒng)驗證軟件。
[0017]有益效果:本發(fā)明所述的一種傳感器網(wǎng)軟件可達性驗證方法,分析與應(yīng)用相關(guān)的軟件是否滿足要求,分析能力強、可讀性高,能盡早發(fā)現(xiàn)軟件存在的缺陷和不正確性,其采用的形式化方法可以驗證復(fù)雜系統(tǒng)。具體來說,本發(fā)明所述的方法具有如下的有益效果:[0018]1、本發(fā)明所述的傳感器網(wǎng)軟件可達性驗證方法包括抽象模型生成、粒子群優(yōu)化算法和模型檢驗。通過抽象化方法對傳感器網(wǎng)絡(luò)軟件抽象化建模,利用粒子群優(yōu)化算法分析優(yōu)化,產(chǎn)生最優(yōu)路徑,最后利用模型檢驗技術(shù)進行傳感網(wǎng)軟件可達性驗證。
[0019]2、本發(fā)明所述模型檢驗方法中的抽象模型生成模塊實現(xiàn)將被檢測的軟件轉(zhuǎn)換為一種形式化的狀態(tài)自動機模型。
[0020]3、本發(fā)明所述的粒子群優(yōu)化算法是將整個自動機看成一個粒子群,自動機的中的每個狀態(tài)看成粒子,進而找出最優(yōu)路徑,具有較強的靈活性。
[0021]4、本發(fā)明所述粒子群優(yōu)化算法將狀態(tài)之間產(chǎn)生的最優(yōu)路徑記錄下來,提高了傳感網(wǎng)軟件可達性驗證效率。
【專利附圖】
【附圖說明】
[0022]圖1是傳感器網(wǎng)軟件可達性驗證具體實施流程圖。
【具體實施方式】
[0023]本發(fā)明利用傳感網(wǎng)協(xié)議ESAWN,該協(xié)議主要是處理傳感網(wǎng)數(shù)據(jù)傳輸中多個節(jié)點向一個幾點發(fā)送數(shù)據(jù) 的情況。節(jié)點數(shù)據(jù)通過傳輸路徑分發(fā)和聚合到最后的根節(jié)點。為保證信息傳輸?shù)恼_性,協(xié)議設(shè)置監(jiān)聽者,假設(shè)節(jié)點nl將消息發(fā)送至n2,n2將消息發(fā)送至n3,依次進行,直到消息發(fā)送至根節(jié)點。我們將nl直接發(fā)送給n2,并設(shè)置監(jiān)聽者監(jiān)聽傳送信息,當n3節(jié)點收到上一節(jié)點發(fā)送來的數(shù)據(jù)時,會自動與監(jiān)聽信息比較,判斷信息是否正確。如圖1,所示,結(jié)合傳感網(wǎng)協(xié)議ESAWN,傳感器網(wǎng)軟件可達性驗證方法具體實施步驟如下:
[0024]1、建立傳感網(wǎng)協(xié)議ESAWN軟件模型。所述模型用四元組(Sj^L)形式來描述,其中S表示狀態(tài)集合Atl表示初始狀態(tài)集合;R表示狀態(tài)遷移,對任意一個a e R,a^SxS,a (X0, X1)表示狀態(tài)Xtl和狀態(tài)X1之間存在狀態(tài)遷移a,也可以表示為X1 = a (X0)jX0 e S,X1 e S ;L是用戶指定的賦值函數(shù),該函數(shù)用于對原子命題的賦值。計算傳感網(wǎng)協(xié)議ESAWN狀態(tài)規(guī)模N,每一個狀態(tài)的產(chǎn)生序號i,并記錄所有可能的狀態(tài)的執(zhí)行序列,設(shè)定Si為狀態(tài)序列中第i個狀態(tài)。標記傳感網(wǎng)協(xié)議ESAWN的目的狀態(tài)Xn,簡化執(zhí)行序列,即所有的執(zhí)行序列中若包含目的狀態(tài),則執(zhí)行終止。
[0025]2、計算傳感網(wǎng)協(xié)議ESAWN中每個狀態(tài)到目的狀態(tài)的狀態(tài)遷移量,所述狀態(tài)遷移量是指狀態(tài)到達目的狀態(tài)的狀態(tài)路徑中包含的狀態(tài)數(shù)目。設(shè)f(i)為第i個狀態(tài)到目的狀態(tài)的狀態(tài)遷移量,pa,j)表示第i個狀態(tài)的鄰居狀態(tài)j到目的狀態(tài)的狀態(tài)遷移量,N α)表示
i狀態(tài)的下一狀態(tài)。然后計算傳感網(wǎng)協(xié)議ESAWN中每個狀態(tài)的f (i)和P (i,j),判斷自身狀態(tài)遷移量與鄰居狀態(tài)遷移量大小關(guān)系。若f a) = P a,j),則Xi與χη不連通,在具體實施中表示自動機不可達;若出現(xiàn)P (i,j) <f (i),則對于狀態(tài)i,選定P (i,j)最小的Xj為狀態(tài)Xi的下一躍遷狀態(tài),即N (i) = Xj。判斷Xj是否為目的狀態(tài)Xn,若Xj = Xn,循環(huán)結(jié)束,若Xj Φ Xn,令i = j繼續(xù)判斷。
[0026]3、在具體實施中,使用UPPAAL、NuSMV等模型檢驗工具建立傳感網(wǎng)軟件狀態(tài)X1'
X2.....Xn,用時序邏輯語言表示用戶指定的待驗證的性質(zhì),根據(jù)用戶標記目的狀態(tài)Xn及步
驟3到步驟7確定的從狀態(tài)X1到狀態(tài)Xn的路徑,進行可達性驗證,若存在到達目的狀態(tài)的合法路徑,則狀態(tài)是可達的,反之狀態(tài)不可達。
【權(quán)利要求】
1.一種傳感網(wǎng)軟件可達性驗證方法,其特征在于該方法所包含的步驟為: 步驟1、構(gòu)建無線傳感網(wǎng)軟件模型,該模型用四元組(SddL)形式來描述,其中S表示狀態(tài)集合;S0表示初始狀態(tài)集合;R表示狀態(tài)遷移,對任意一個a e R’c^SxS, a (X0, X1)表示狀態(tài)Xtl和狀態(tài)X1之間存在狀態(tài)遷移α,或表示為Xl = a (XO),Xtl e S,X1 e S ;L是用戶指定的賦值函數(shù),該函數(shù)用于對原子命題的賦值; 步驟2、給無線傳感網(wǎng)軟件模型中狀態(tài)集合S的每一個狀態(tài)賦予不同的序號,記錄無線傳感網(wǎng)軟件每一個可能執(zhí)行過程中的所有狀態(tài)序列,每一個狀態(tài)序列用執(zhí)行過程中先后到達的狀態(tài)的序號表示; 步驟3、用戶標記目的狀態(tài)Xn; 步驟4、依次選擇步驟2中記錄的無線傳感網(wǎng)軟件一個可能執(zhí)行過程中的狀態(tài)序列,查找該狀態(tài)序列是否包含目的狀態(tài)Xn,若該狀態(tài)序列包含目的狀態(tài)Xn,則刪除該狀態(tài)序列中狀態(tài)Xn后的所有狀態(tài),進入步驟5 ;若該狀態(tài)序列不包含目的狀態(tài)Xn,進入步驟5 ; 步驟5、從狀態(tài)X1開始,計算每個狀態(tài)到目的狀態(tài)的狀態(tài)遷移量,所述狀態(tài)遷移量是指狀態(tài)到達目的狀態(tài)的狀態(tài)路徑中包含的狀態(tài)數(shù)目,設(shè)f⑴為第i個狀態(tài)到目的狀態(tài)的狀態(tài)遷移量,P(i,j)表示第i個狀態(tài)的鄰居狀態(tài)j到目的狀態(tài)的狀態(tài)遷移量,N(i)表示i狀態(tài)的下一狀態(tài); 步驟6、計算任意一個狀態(tài)Xi的f(i)和P(i,j),判斷f(i)與和P(i,j)的大小關(guān)系,若f(i) ^ P(i, j),則Xi與Xn不連通,即狀態(tài)不可達;若出現(xiàn)P(i,j)<f(i),則對于狀態(tài)i,選定P(i,j)最小的為狀態(tài)Xi的下一躍遷狀態(tài),即N(i) = Xj ; 步驟7、判斷Xj是否為目的狀態(tài)Xn,若Xj = Xn,記錄從X1到Xn的路徑,循環(huán)結(jié)束,進入步驟8 ;若Xj古Xn,令i = j返回步驟6 ; 步驟8、使用一種模型檢驗工具建立傳感網(wǎng)軟件狀態(tài)Xp X2.....Xn,用時序邏輯語言表示用戶指定的待驗證的性質(zhì),根據(jù)用戶標記目的狀態(tài)Xn及步驟3到步驟7確定的從狀態(tài)X1到狀態(tài)Xn的路徑,進行可達性驗證,若存在到達目的狀態(tài)的合法路徑,則狀態(tài)是可達的,反之狀態(tài)不可達,所述模型檢驗工具是能夠進行模型檢驗的系統(tǒng)驗證軟件。
【文檔編號】G06F11/36GK103970653SQ201410179197
【公開日】2014年8月6日 申請日期:2014年4月29日 優(yōu)先權(quán)日:2014年4月29日
【發(fā)明者】陳志 , 岳書珍, 岳文靜, 王東, 陳駿, 黨凱樂, 朱彥沛, 高陽陽, 高顯強 申請人:南京郵電大學