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