基于自適應(yīng)點火的軟件驗證方法
【專利摘要】本發(fā)明提供了一種基于自適應(yīng)點火的軟件驗證方法,其將軟件模型轉(zhuǎn)換成情境Petri網(wǎng)模型,并通過自適應(yīng)點火方式,消除情境Petri網(wǎng)變遷的歧義性,其中:所述情境petri網(wǎng),是指在petri網(wǎng)中,通過在庫所中加入情境語義維來為petri網(wǎng)的動態(tài)驗證提供決策信息;所述情境語義包括由軟件動態(tài)生成時存儲在庫所中的情境信息;所述自適應(yīng)點火方式用于描述軟件對不同情境條件的自主反應(yīng)性;所述自適應(yīng)點火方式是指根據(jù)當前庫所中的情境語義來推測出托肯應(yīng)該進入后面哪一個輸出庫所。本發(fā)明通過將軟件模型轉(zhuǎn)換成情境Petri網(wǎng)模型,利用Petri網(wǎng)本身的特性,并通過自適應(yīng)點火來驗證普適軟件的正確性。
【專利說明】基于自適應(yīng)點火的軟件驗證方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機應(yīng)用領(lǐng)域,主要涉及情境感知、軟件模型轉(zhuǎn)換和Petri網(wǎng)驗證等領(lǐng)域,尤其是在普適環(huán)境下對自動生成的軟件進行動態(tài)驗證的方法,具體地,涉及基于自適應(yīng)點火的軟件驗證方法。
【背景技術(shù)】
[0002]普適計算的目的是建立一個充滿計算和通信能力的環(huán)境,同時使該環(huán)境的人們逐漸感受不到計算機本身的存在。在這個融合空間中人們可以隨時隨地、透明地獲得數(shù)字化服務(wù)。在普適計算環(huán)境下,整個世界是一個網(wǎng)絡(luò)的世界,數(shù)不清的為了不同目的服務(wù)的計算和通信設(shè)備都連接在網(wǎng)絡(luò)中,在不同的服務(wù)環(huán)境中自由移動。
[0003]在普適計算的軟件中一個很重要的,區(qū)別于普通軟件的地方,就是對情境的應(yīng)用。軟件不再是統(tǒng)一化,而是會通過不同的感應(yīng)器來獲得諸如地點、時間、溫度等不同的情境信息來區(qū)分用戶本身的不同特性,對這些情境的原信息進行分析,根據(jù)設(shè)定的規(guī)則處理這些信息,然后通過這些處理后的情境進行決策,得到一個系統(tǒng)認為最適合當前用戶的服務(wù)。也正因為情境的使用使得情境自適應(yīng)軟件有別于普通軟件,在做動態(tài)驗證的時候,需要我們最多考量的也就是在不同的情境的情況下,程序的執(zhí)行情況是否符合編程人員的預(yù)期。國外已經(jīng)有研究針對普適軟件的驗證,例如模型檢查和運行驗證(Antonio Cornato,Giuseppe De Pietro, Formal specification and verification of ubiquitous andpervasive systems, ACMTrans.Auton.Adapt.Syst.6,1, Article9 (February2011) X 模型檢查的算法最早于2000年被提出,并在2003年被完善,該思想是通過檢查程序所有的蹤跡是否符合一系列的特性來驗證程序是否合法的,而運行驗證則另辟蹊徑,和模型檢查的基本思想完全相反,主要關(guān)注于程序在運行過程中是否符合規(guī)則。
[0004]但是考慮到普適計算環(huán)境具有動態(tài)性這個特點,可用計算資源和用戶需求不斷變化,再加上服務(wù)本身已經(jīng)極其復(fù)雜、繁瑣,所以對軟件本身正確性的檢驗變得十分困難,這時也就需要技術(shù)人員需要在驗證方面付出精力,所以在系統(tǒng)設(shè)計的初始階段建立一個良好的系統(tǒng)模型,以此進行仿真和模擬,對系統(tǒng)的可靠性、有效性和穩(wěn)定性進行分析,及時對系統(tǒng)設(shè)計進行相應(yīng)的優(yōu)化并且及時發(fā)現(xiàn)系統(tǒng)級的錯誤,可以避免不必要的損失。
[0005]Petri網(wǎng)是1960年代由卡爾?亞當?佩特里發(fā)明的,適合于描述異步的、并發(fā)的計算機系統(tǒng)模型(Carl Adam Petri and Wolfgang Reisig(2008)Petri net.Scholarpedia,3(4):6477)。Petri網(wǎng)作為一種圖形化、數(shù)學(xué)化建模工具,能夠提供一個集成的建模、分析和控制環(huán)境。因此Petri網(wǎng)常常被用于對事物的驗證。Petri網(wǎng)的圖形表示就是一種有向圖,它包括兩類節(jié)點: 庫所(用圓表示)和變遷(用短線表示)。弧用來表示流關(guān)系。Petri網(wǎng)的狀態(tài)由標識M來表示,在某一時刻的標識決定該Petri網(wǎng)的狀態(tài)。如果一個變遷的每個輸入庫所都擁有令牌,該變遷即為被允許。一個變遷被允許時,變遷將發(fā)生點火,輸入庫所的令牌被消耗,同時為輸出庫所產(chǎn)生令牌。在利用Petri網(wǎng)對普適軟件進行動態(tài)驗證時,最值得關(guān)注的就是如何將軟件模型轉(zhuǎn)換成Petri網(wǎng)模型和如何在利用Petri網(wǎng)進行動態(tài)驗證時,消除Petri網(wǎng)變遷的歧義性(有兩個或多個變遷都被允許的可能,但是一次只能發(fā)生一個變遷。這種情況下變遷發(fā)生的順序沒有定義。)。經(jīng)過現(xiàn)有文獻的檢索發(fā)現(xiàn),現(xiàn)有文獻針對軟件模型到Petri網(wǎng)模型轉(zhuǎn)換的研究較少,主要的技術(shù)是利用將軟件轉(zhuǎn)換成UML模型,然后在將UML模型轉(zhuǎn)換到Petri。在這種技術(shù)下,軟件的并發(fā)信息和情境信息可能在轉(zhuǎn)換時丟失,影響了軟件驗證的準確性。而對于如何消除Petri網(wǎng)變遷歧義性的研究,更是少之又少。
【發(fā)明內(nèi)容】
[0006]針對普適計算中動態(tài)生成的代碼面對不同的情境下來驗證程序的正確性時,如何將軟件模型轉(zhuǎn)換成Petri網(wǎng)模型,并且在轉(zhuǎn)換完之后,如何消除Petri網(wǎng)變遷歧義性,本發(fā)明的目的是提供一種基于自適應(yīng)點火的軟件驗證方法。
[0007]本發(fā)明提供的基于自適應(yīng)點火的軟件驗證方法,具體為:將軟件模型轉(zhuǎn)換成情境Petri網(wǎng)模型,并通過自適應(yīng)點火方式,消除情境Petri網(wǎng)變遷的歧義性,其中:
[0008]所述情境petri網(wǎng),是指在原來經(jīng)典的petri網(wǎng)中,通過在庫所中加入情境語義維來為petri網(wǎng)的動態(tài)驗證提供決策信息;
[0009]所述情境語義包括基本情境語義、高級情境語義,其中,基本情境語義是指由軟件動態(tài)生成時存儲在庫所中的情境信息,高級情境語義是指由基本情境語義推倒出來的;
[0010]所述自適應(yīng)點火方式用于描述軟件對不同情境條件的自主反應(yīng)性;如果一個變遷的每個輸入庫所都擁有托肯,該變遷即為被允許;一個變遷被允許時,變遷將發(fā)生點火,輸入庫所的托肯被消耗,同時為輸出庫所產(chǎn)生令牌;所述自適應(yīng)點火方式是指根據(jù)當前庫所中的情境語義來推測出托肯應(yīng)該進入后面哪一個輸出庫所。
[0011]更為具體地,本發(fā)明通過以下方式進行實現(xiàn)的,通過將軟件轉(zhuǎn)化成一種叫做情境petri網(wǎng)的模型,再通過這個相應(yīng)的情境petri網(wǎng)來動態(tài)驗證軟件的正確性。
[0012]由于普適情境隨著用戶活動在時間和空間上不斷變化,自治的普適服務(wù)在軟件執(zhí)行過程中的動態(tài)退出,因此,傳統(tǒng)的Petri網(wǎng)和其衍生的高階petri網(wǎng)模型難以描述動態(tài)的普適軟件系統(tǒng)。為了能夠反映出生成的軟件是符合當前情境下的需求,需要通過情境petri網(wǎng)來保存軟件在各個環(huán)節(jié)的狀態(tài),為此后的驗證提供必要的情境信息。這里所說的情境petri網(wǎng),就是在原來經(jīng)典的petri網(wǎng)中,通過在庫所中加入情境信息維來為petri網(wǎng)的動態(tài)驗證提供決策信息。
[0013]首先,按以下思路改進和擴展現(xiàn)有的Petri網(wǎng)理論,在Petri網(wǎng)模型中增加“情境語義”維,使擴展后的Petri網(wǎng)能夠理解和預(yù)測變化的情境信息。這里的“情境語義”包括功能性語義(用戶興趣:用戶需要的功能)和非功能性語義(用戶偏好:帶寬,響應(yīng)時間等QoS因子)?!扒榫痴Z義”可分為“基本情境語義”和“高級情境語義”?!盎厩榫痴Z義”是指由軟件動態(tài)生成時存儲在庫所中的情境信息,而“高級情境語義”是指由“基本情境語義”推倒出來的“情境語義”。為了解決petri網(wǎng)中的變遷歧義性,本發(fā)明提出了“自適應(yīng)點火”的概念與觸發(fā)機制,描述軟件對不同情境條件的自主反應(yīng)性。如果一個變遷的每個輸入庫所都擁有托肯(Token),該變遷即為被允許。一個變遷被允許時,變遷將發(fā)生點火,輸入庫所的托肯被消耗,同時為輸出庫所產(chǎn)生令牌?!白赃m應(yīng)點火”是指根據(jù)當前庫所中的“情境語義”來推測出托肯應(yīng)該進入后面哪一個輸出庫所。[0014]對于“情境語義”中的功能性語義(用戶興趣),采用如下匹配度公式進行處理:
[0015]
【權(quán)利要求】
1.一種基于自適應(yīng)點火的軟件驗證方法,其特征在于,將軟件模型轉(zhuǎn)換成情境Petri網(wǎng)模型,并通過自適應(yīng)點火方式,消除情境Petri網(wǎng)變遷的歧義性,其中: 所述情境#廿1網(wǎng),是指在#^^網(wǎng)中,通過在庫所中加入情境語義維來Spetri網(wǎng)的動態(tài)驗證提供決策信息; 所述情境語義包括由軟件動態(tài)生成時存儲在庫所中的情境信息; 所述自適應(yīng)點火方式用于描述軟件對不同情境條件的自主反應(yīng)性;如果一個變遷的每個輸入庫所都擁有托肯,該變遷即為被允許;一個變遷被允許時,變遷將發(fā)生點火,輸入庫所的托肯被消耗,同時為輸出庫所產(chǎn)生令牌;所述自適應(yīng)點火方式是指根據(jù)當前庫所中的情境語義來推測出托肯應(yīng)該進入后面哪一個輸出庫所。
2.根據(jù)權(quán)利要求1所述的基于自適應(yīng)點火的軟件驗證方法,其特征在于,所述情境語義包括功能性語義和非功能性語義,利用功能性語義的匹配程度和非功能性語義的效用值各自的排名結(jié)果來確定點火方向,其中,所述點火方向是指輸入庫所到輸出庫所的方向。
3.根據(jù)權(quán)利要求2所述的基于自適應(yīng)點火的軟件驗證方法,其特征在于,所述的確定點火方向,具體為: 根據(jù)情境語義的功能性語義的匹配程度進行排名,得到排名位置&;,根據(jù)情境語的非功能性語義的效用值進行排名,得到排名位置,根據(jù)如下公式得到每個候選托肯的得分,并選擇得分最高的作為點火方向
4.根據(jù)權(quán)利要求3所述的基于自適應(yīng)點火的軟件驗證方法,其特征在于,λ和仏成單調(diào)遞增的關(guān)系,用下面公式表亍:
5.根據(jù)權(quán)利要求3所述的基于自適應(yīng)點火的軟件驗證方法,其特征在于,對于情境語中的功能性語義,采用如下匹配度公式進行處理:
6.根據(jù)權(quán)利要求3所述的基于自適應(yīng)點火的軟件驗證方法,其特征在于,對于情境語義中的非功能性語義,由于非功能性語義有兩種類型的值,第一種類型是值越大,代表的質(zhì)量越??;第二種類型是值越大,代表的質(zhì)量也越大;因此,首先對非功能性語義進行標準化處理: 對于第一種類型的非功能語義,采用如下公式進行處理:
7.根據(jù)權(quán)利要求1所述的基于自適應(yīng)點火的軟件驗證方法,其特征在于,通過將情景信息數(shù)值化,再將其存入Petri網(wǎng)的庫所中;對于無法直接數(shù)值化的信息,預(yù)先將這類信息對應(yīng)的數(shù)值記錄在表格中,通過查表的形式獲得相應(yīng)的數(shù)值。
【文檔編號】G06F11/36GK103593286SQ201310501127
【公開日】2014年2月19日 申請日期:2013年10月22日 優(yōu)先權(quán)日:2013年10月22日
【發(fā)明者】唐飛龍, 周金, 唐燦, 季麗娟, 過敏意 申請人:上海交通大學(xué)