CN103593286A - 基于自适应点火的软件验证方法 - Google Patents
基于自适应点火的软件验证方法 Download PDFInfo
- Publication number
- CN103593286A CN103593286A CN201310501127.7A CN201310501127A CN103593286A CN 103593286 A CN103593286 A CN 103593286A CN 201310501127 A CN201310501127 A CN 201310501127A CN 103593286 A CN103593286 A CN 103593286A
- Authority
- CN
- China
- Prior art keywords
- semanteme
- situation
- functional
- software
- adaptation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于自适应点火的软件验证方法,其将软件模型转换成情境Petri网模型,并通过自适应点火方式,消除情境Petri网变迁的歧义性,其中:所述情境petri网,是指在petri网中,通过在库所中加入情境语义维来为petri网的动态验证提供决策信息;所述情境语义包括由软件动态生成时存储在库所中的情境信息;所述自适应点火方式用于描述软件对不同情境条件的自主反应性;所述自适应点火方式是指根据当前库所中的情境语义来推测出托肯应该进入后面哪一个输出库所。本发明通过将软件模型转换成情境Petri网模型,利用Petri网本身的特性,并通过自适应点火来验证普适软件的正确性。
Description
技术领域
本发明属于计算机应用领域,主要涉及情境感知、软件模型转换和Petri网验证等领域,尤其是在普适环境下对自动生成的软件进行动态验证的方法,具体地,涉及基于自适应点火的软件验证方法。
背景技术
普适计算的目的是建立一个充满计算和通信能力的环境,同时使该环境的人们逐渐感受不到计算机本身的存在。在这个融合空间中人们可以随时随地、透明地获得数字化服务。在普适计算环境下,整个世界是一个网络的世界,数不清的为了不同目的服务的计算和通信设备都连接在网络中,在不同的服务环境中自由移动。
在普适计算的软件中一个很重要的,区别于普通软件的地方,就是对情境的应用。软件不再是统一化,而是会通过不同的感应器来获得诸如地点、时间、温度等不同的情境信息来区分用户本身的不同特性,对这些情境的原信息进行分析,根据设定的规则处理这些信息,然后通过这些处理后的情境进行决策,得到一个系统认为最适合当前用户的服务。也正因为情境的使用使得情境自适应软件有别于普通软件,在做动态验证的时候,需要我们最多考量的也就是在不同的情境的情况下,程序的执行情况是否符合编程人员的预期。国外已经有研究针对普适软件的验证,例如模型检查和运行验证(Antonio Cornato,Giuseppe De Pietro,Formalspecification and verification of ubiquitous and pervasive systems,ACMTrans.Auton.Adapt.Syst.6,1,Article9(February2011))。模型检查的算法最早于2000年被提出,并在2003年被完善,该思想是通过检查程序所有的踪迹是否符合一系列的特性来验证程序是否合法的,而运行验证则另辟蹊径,和模型检查的基本思想完全相反,主要关注于程序在运行过程中是否符合规则。
但是考虑到普适计算环境具有动态性这个特点,可用计算资源和用户需求不断变化,再加上服务本身已经极其复杂、繁琐,所以对软件本身正确性的检验变得十分困难,这时也就需要技术人员需要在验证方面付出精力,所以在系统设计的初始阶段建立一个良好的系统模型,以此进行仿真和模拟,对系统的可靠性、有效性和稳定性进行分析,及时对系统设计进行相应的优化并且及时发现系统级的错误,可以避免不必要的损失。
Petri网是1960年代由卡尔·亚当·佩特里发明的,适合于描述异步的、并发的计算机系统模型(Carl Adam Petri and Wolfgang Reisig(2008)Petri net.Scholarpedia,3(4):6477)。Petri网作为一种图形化、数学化建模工具,能够提供一个集成的建模、分析和控制环境。因此Petri网常常被用于对事物的验证。Petri网的图形表示就是一种有向图,它包括两类节点:库所(用圆表示)和变迁(用短线表示)。弧用来表示流关系。Petri网的状态由标识M来表示,在某一时刻的标识决定该Petri网的状态。如果一个变迁的每个输入库所都拥有令牌,该变迁即为被允许。一个变迁被允许时,变迁将发生点火,输入库所的令牌被消耗,同时为输出库所产生令牌。在利用Petri网对普适软件进行动态验证时,最值得关注的就是如何将软件模型转换成Petri网模型和如何在利用Petri网进行动态验证时,消除Petri网变迁的歧义性(有两个或多个变迁都被允许的可能,但是一次只能发生一个变迁。这种情况下变迁发生的顺序没有定义。)。经过现有文献的检索发现,现有文献针对软件模型到Petri网模型转换的研究较少,主要的技术是利用将软件转换成UML模型,然后在将UML模型转换到Petri。在这种技术下,软件的并发信息和情境信息可能在转换时丢失,影响了软件验证的准确性。而对于如何消除Petri网变迁歧义性的研究,更是少之又少。
发明内容
针对普适计算中动态生成的代码面对不同的情境下来验证程序的正确性时,如何将软件模型转换成Petri网模型,并且在转换完之后,如何消除Petri网变迁歧义性,本发明的目的是提供一种基于自适应点火的软件验证方法。
本发明提供的基于自适应点火的软件验证方法,具体为:将软件模型转换成情境Petri网模型,并通过自适应点火方式,消除情境Petri网变迁的歧义性,其中:
所述情境petri网,是指在原来经典的petri网中,通过在库所中加入情境语义维来为petri网的动态验证提供决策信息;
所述情境语义包括基本情境语义、高级情境语义,其中,基本情境语义是指由软件动态生成时存储在库所中的情境信息,高级情境语义是指由基本情境语义推倒出来的;
所述自适应点火方式用于描述软件对不同情境条件的自主反应性;如果一个变迁的每个输入库所都拥有托肯,该变迁即为被允许;一个变迁被允许时,变迁将发生点火,输入库所的托肯被消耗,同时为输出库所产生令牌;所述自适应点火方式是指根据当前库所中的情境语义来推测出托肯应该进入后面哪一个输出库所。
更为具体地,本发明通过以下方式进行实现的,通过将软件转化成一种叫做情境petri网的模型,再通过这个相应的情境petri网来动态验证软件的正确性。
由于普适情境随着用户活动在时间和空间上不断变化,自治的普适服务在软件执行过程中的动态退出,因此,传统的Petri网和其衍生的高阶petri网模型难以描述动态的普适软件系统。为了能够反映出生成的软件是符合当前情境下的需求,需要通过情境petri网来保存软件在各个环节的状态,为此后的验证提供必要的情境信息。这里所说的情境petri网,就是在原来经典的petri网中,通过在库所中加入情境信息维来为petri网的动态验证提供决策信息。
首先,按以下思路改进和扩展现有的Petri网理论,在Petri网模型中增加“情境语义”维,使扩展后的Petri网能够理解和预测变化的情境信息。这里的“情境语义”包括功能性语义(用户兴趣:用户需要的功能)和非功能性语义(用户偏好:带宽,响应时间等QoS因子)。“情境语义”可分为“基本情境语义”和“高级情境语义”。“基本情境语义”是指由软件动态生成时存储在库所中的情境信息,而“高级情境语义”是指由“基本情境语义”推倒出来的“情境语义”。为了解决petri网中的变迁歧义性,本发明提出了“自适应点火”的概念与触发机制,描述软件对不同情境条件的自主反应性。如果一个变迁的每个输入库所都拥有托肯(Token),该变迁即为被允许。一个变迁被允许时,变迁将发生点火,输入库所的托肯被消耗,同时为输出库所产生令牌。“自适应点火”是指根据当前库所中的“情境语义”来推测出托肯应该进入后面哪一个输出库所。
对于“情境语义”中的功能性语义(用户兴趣),采用如下匹配度公式进行处理:
Ak表示第k个基本情境的当前值;
A′k表示第k个基本情境对应的高级情景的当前值;
Ci表示第i个基本情境语义在功能性上与第i个高级情境语义的匹配程度。
本发明通过将偏离度公式取代标准差中的计算差值的部分,使得新的公式具备了计算偏离度的特性,同时加入权重,依照情境自适应软件中各原子情境的权重分配,使得公式有了加权的特性,也就保证了该公式计算加权偏离度的正确性;使用1减去根号下的部分也就得到了匹配程度,放大100倍是为了和匹配度标签相对应。
对于“情境语义”中的非功能性语义(用户偏好),由于它有两种类型的值,一种是值越大,其代表的质量越小(响应时间等);一种是值越大,其代表的质量也越大(带宽等)。因此,首先要对这些语义进行标准化处理。
对于第一种类型的非功能语义,采用如下公式进行处理:
对于第二种类型的非功能语义,采用如下公式进行处理:
其中,q′i表示针对第一种类型的,标准化后的第i个非功能性语义的取值,Qmax(i)表示第i个非功能性语义的最大取值,qi表示针对第二种类型的,标准化后的第i个非功能性语义的取值,Qmin(i)表示第i个非功能性语义的最小取值;
定义各个非功能语义的权重W为W=(w1,w2,...,wk)用来表示用户对不同非功能语义的偏好,通过下面公式得到非功能性语义的效用值:
其中,Ui表示第i个库所的效用值,q′i,j表示第i个库所第j个非功能语义的值,wj表示第j个非功能语义的权重,m表示非功能语义的个数。
到此,已经得到了“情境语义”的功能性语义的匹配程度和非功能性语义的效用值。为了能实现petri网根据“情境语义”的“自适应点火”,需要根据匹配程度和效用值决定往哪一个方向点火。由于匹配程度和效用值两者的绝对值代表的含义是不同的,并且两者的取值范围也是不相同的,因此不能将这两个值直接运用来确定点火方向。为了解决这个问题,本发明通过利用匹配程度和效用值各自的排名结果来确定点火方向。具体实现方式如下:根据“情境语义”的功能性语义的匹配程度进行排名,得到排名位置,根据“情境语义”的非功能性语义的效用值进行排名,得到排名位置,根据如下公式得到每个候选托肯的得分,并选择得分最高的作为点火方向
其中,Ri表示第i个候选的情景语义的得分,1/log2(P+1)用来表示用户潜在需求在P位置的值;λ∈[0,1],定义为“情境语义”的功能性语义比“情境语义”的非功能性语义的重要性。虽然可以固定λ的值,使得功能性语义和非功能性语义的比重一定,但是最好的办法还是让λ和成单调递增的关系,用下面公式表示:
这个公式说明,当功能性语义匹配程度排名很低时,λ的值就越大。这意味着如果不能选择满足功能性语义的库所,那么即使非功能语义得到了很好的满足也不能作为点火的方向。
与现有技术相比,本发明具有有益效果:本发明通过将软件模型转换成情境Petri网模型,利用Petri网本身的特性,并通过“自适应点火”来验证普适软件的正确性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为软件动态验证方法总体示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
本发明实现过程如下:
1.软件模型到情境Petri网模型的转换。
本发明利用普适软件动态生成过程中,针对每个候选软件在不同状态下对情境的需求,利用PNML(Petri网标记语言),将这些情境和软件的状态标识存入Petri网的库所中。
所述的普适软件动态生成是指服务器通过网络获取移动用户的情境信息,并根据用户的情境信息自动选取软件模块进行组合,将组合后的软件推送给当前用户,以希望在一定环境下能够产生符合情境及用户需求,并且最大限度上优化相关性能指标的软件。在服务及软件性能日渐丰富与全面的当下,将不同的功能及服务依照一定规则有效地组合起来并向需要的用户提供。
所述的候选软件是指服务器所能推送给用户的所有可能软件的集合。服务器拥有满足所有用户需求的软件群体。但是由于网络,实时性和用户端性能等限制,服务器将拥有所有功能的软件推送给用户是不现实的,最优的情况是服务器只推送满足特定用户情境信息的软件。所有这些用户情境信息的软件构成了候选软件。
所述的PNML(Petri网标记语言)是独立于任何工具和平台的Petri网文件交换标准,支持多种Petri网类型,可以用PNTD(Petri网类型定义)定义某种具体Petri网类型的合法标签。PNML的设计原则是灵活性、兼容性和无歧义性。
灵活性:灵活性要求PNML能够表示出任何Petri网独有的特征和扩展性质,因此PNML把Petri网看成一个贴了标签的有向图,所有的外部数据能被存储到变迁,库所和弧的标签中。
兼容性:兼容性要求PNML在不同Petri网工具间交换数据时能保留尽可能多的信息,PNML通过协议文档保证其兼容性。
无歧义性:无歧义性要求PNML能够清楚的表示不同类型的Petri网,使用PNTD定义某种具体Petri网类型的合法标签。
2.利用“自适应点火”机制消除Petri网变迁的歧义性。
本发明利用情境Petri网中的“情境语义”信息,通过将“情境语义”分为“基本情境语义”和“高级情境语义”,来保证情境Petri网的性质。为了能够准确的选择Petri网的点火方向,分别对功能性语义(用户兴趣:用户需要的功能)和非功能性语义(用户偏好:带宽,响应时间等QoS因子)利用公式(1)和公式(4)进行排名。在得到两者排名之后利用公式(5)计算候选库所的得分,选择得分最高的进行点火。
所述的情境Petri网的性质是与传统的Petri网性质是相同的。情境Petri网需要保证变迁的发生是原子的,也就是说,没有一个变迁只发生了一半的可能性。如果出现一个变迁,其输入库所的个数与输出库所的个数不相等,令牌的个数将发生变化,也就是说,令牌数目不守恒。情境Petri网络是静态的,也就是说,不存在发生了一个变迁之后忽然冒出另一个变迁或者库所,从而改变情境Petri网结构的可能。情境Petri网的状态由托肯在库所的分布决定。也就是说,变迁发生完毕、下一个变迁等待发生的时候才有确定的状态,正在发生变迁的时候是没有一个确定的状态的。
所述的点火方向是指输入库所到输出库所的方向。当有两个或多个变迁都被允许的可能,但是一次只能发生一个变迁。传统的Petri网下,这种情况下变迁发生的顺序没有定义。但是由于情境Petri网加入了“自适应点火”的机制,利用情境信息可以推断出输入库所中的托肯在点火之后进入的输出库所,从而可以确立输出库所到输入库所的方向。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
Claims (7)
1.一种基于自适应点火的软件验证方法,其特征在于,将软件模型转换成情境Petri网模型,并通过自适应点火方式,消除情境Petri网变迁的歧义性,其中:
所述情境petri网,是指在petri网中,通过在库所中加入情境语义维来为petri网的动态验证提供决策信息;
所述情境语义包括由软件动态生成时存储在库所中的情境信息;
所述自适应点火方式用于描述软件对不同情境条件的自主反应性;如果一个变迁的每个输入库所都拥有托肯,该变迁即为被允许;一个变迁被允许时,变迁将发生点火,输入库所的托肯被消耗,同时为输出库所产生令牌;所述自适应点火方式是指根据当前库所中的情境语义来推测出托肯应该进入后面哪一个输出库所。
2.根据权利要求1所述的基于自适应点火的软件验证方法,其特征在于,所述情境语义包括功能性语义和非功能性语义,利用功能性语义的匹配程度和非功能性语义的效用值各自的排名结果来确定点火方向,其中,所述点火方向是指输入库所到输出库所的方向。
6.根据权利要求3所述的基于自适应点火的软件验证方法,其特征在于,对于情境语义中的非功能性语义,由于非功能性语义有两种类型的值,第一种类型是值越大,代表的质量越小;第二种类型是值越大,代表的质量也越大;因此,首先对非功能性语义进行标准化处理:
对于第一种类型的非功能语义,采用如下公式进行处理:
对于第二种类型的非功能语义,采用如下公式进行处理:
其中,q′i表示针对第一种类型的,标准化后的第i个非功能性语义的取值,Qmax(i)表示第i个非功能性语义的最大取值,qi表示针对第二种类型的,标准化后的第i个非功能性语义的取值,Qmin(i)表示第i个非功能性语义的最小取值;
定义各个非功能语义的权重W为W=(W1,W2,...,WK)用来表示用户对不同非功能语义的偏好,通过下面公式得到非功能性语义的效用值:
其中,Ui表示第i个库所的效用值,q′i,j表示第i个库所第j个非功能语义的值,wj表示第j个非功能语义的权重,m表示非功能语义的个数。
7.根据权利要求1所述的基于自适应点火的软件验证方法,其特征在于,通过将情景信息数值化,再将其存入Petri网的库所中;对于无法直接数值化的信息,预先将这类信息对应的数值记录在表格中,通过查表的形式获得相应的数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310501127.7A CN103593286B (zh) | 2013-10-22 | 2013-10-22 | 基于自适应点火的软件验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310501127.7A CN103593286B (zh) | 2013-10-22 | 2013-10-22 | 基于自适应点火的软件验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103593286A true CN103593286A (zh) | 2014-02-19 |
CN103593286B CN103593286B (zh) | 2016-07-06 |
Family
ID=50083437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310501127.7A Active CN103593286B (zh) | 2013-10-22 | 2013-10-22 | 基于自适应点火的软件验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103593286B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052232A (zh) * | 2020-07-21 | 2020-12-08 | 杭州电子科技大学 | 一种基于重演技术的业务流程上下文提取方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339699A (zh) * | 2008-08-14 | 2009-01-07 | 中国民航大学 | 一种Petri网的链式航班延误预警装置及其处理方法 |
US20100281483A1 (en) * | 2009-04-30 | 2010-11-04 | Novafora, Inc. | Programmable scheduling co-processor |
-
2013
- 2013-10-22 CN CN201310501127.7A patent/CN103593286B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101339699A (zh) * | 2008-08-14 | 2009-01-07 | 中国民航大学 | 一种Petri网的链式航班延误预警装置及其处理方法 |
US20100281483A1 (en) * | 2009-04-30 | 2010-11-04 | Novafora, Inc. | Programmable scheduling co-processor |
Non-Patent Citations (3)
Title |
---|
丁明珠: "基于Petri网的推荐系统的研究与分析", 《中国优秀硕士学位论文全文库》, 31 December 2012 (2012-12-31), pages 44 - 50 * |
严胜益: "基于Petri网的项目管理方法研究", 《中国优秀硕士学位论文全文库》, 31 December 2006 (2006-12-31), pages 24 - 32 * |
汤庸等: "《协同软件技术及应用》", 30 March 2007, article "协同软件技术及应用", pages: 104-108 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112052232A (zh) * | 2020-07-21 | 2020-12-08 | 杭州电子科技大学 | 一种基于重演技术的业务流程上下文提取方法 |
CN112052232B (zh) * | 2020-07-21 | 2021-06-01 | 杭州电子科技大学 | 一种基于重演技术的业务流程上下文提取方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103593286B (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10754709B2 (en) | Scalable task scheduling systems and methods for cyclic interdependent tasks using semantic analysis | |
CN111866085B (zh) | 基于区块链的数据存储方法、系统和装置 | |
CN105930138B (zh) | 一种消息处理方法及装置 | |
CN108092804B (zh) | 基于Q-learning的电力通信网效用最大化资源分配策略生成方法 | |
CN109447276B (zh) | 一种机器学习系统、设备及应用方法 | |
CN101739248A (zh) | 执行规则集的方法和系统 | |
US20220391780A1 (en) | Method of federated learning, electronic device, and storage medium | |
CN110162537A (zh) | 数据查询方法及装置、存储介质以及电子设备 | |
Khelaifa et al. | A comparative analysis of adaptive consistency approaches in cloud storage | |
CN109858285B (zh) | 区块链数据的处理方法、装置、设备和介质 | |
CN105354092A (zh) | 一种应用性能风险预测方法、装置和系统 | |
US20240152490A1 (en) | Model object management and storage system | |
CN108874837A (zh) | 数据库分库方法、装置、中间件及存储介质和电子设备 | |
Chen et al. | Distributed deep reinforcement learning-based content caching in edge computing-enabled blockchain networks | |
CN110737425A (zh) | 一种计费平台系统的应用程序的建立方法及装置 | |
US20140298455A1 (en) | Cryptographic mechanisms to provide information privacy and integrity | |
CN103593286A (zh) | 基于自适应点火的软件验证方法 | |
CN113935069B (zh) | 一种基于区块链的数据验证方法、装置、设备及存储介质 | |
CN116680160A (zh) | 一种测试用例生成方法以及相关装置 | |
Dai et al. | Synthesizing power management strategies for wireless sensor networks with UPPAAL-STRATEGO | |
CN114327802A (zh) | 区块链访问链外数据的方法、装置、设备和介质 | |
CN106227601A (zh) | 用于虚拟化平台的资源配置的方法和装置 | |
Guo et al. | Service composition optimization method based on parallel particle swarm algorithm on spark | |
Wang et al. | Automatically setting parameter-exchanging interval for deep learning | |
Xiao et al. | Efficient simulation budget allocation for ranking the top m designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |