基于自适应点火的软件验证方法

文档序号:6516305阅读:180来源:国知局
基于自适应点火的软件验证方法
【专利摘要】本发明提供了一种基于自适应点火的软件验证方法,其将软件模型转换成情境Petri网模型,并通过自适应点火方式,消除情境Petri网变迁的歧义性,其中:所述情境petri网,是指在petri网中,通过在库所中加入情境语义维来为petri网的动态验证提供决策信息;所述情境语义包括由软件动态生成时存储在库所中的情境信息;所述自适应点火方式用于描述软件对不同情境条件的自主反应性;所述自适应点火方式是指根据当前库所中的情境语义来推测出托肯应该进入后面哪一个输出库所。本发明通过将软件模型转换成情境Petri网模型,利用Petri网本身的特性,并通过自适应点火来验证普适软件的正确性。
【专利说明】基于自适应点火的软件验证方法
【技术领域】
[0001]本发明属于计算机应用领域,主要涉及情境感知、软件模型转换和Petri网验证等领域,尤其是在普适环境下对自动生成的软件进行动态验证的方法,具体地,涉及基于自适应点火的软件验证方法。
【背景技术】
[0002]普适计算的目的是建立一个充满计算和通信能力的环境,同时使该环境的人们逐渐感受不到计算机本身的存在。在这个融合空间中人们可以随时随地、透明地获得数字化服务。在普适计算环境下,整个世界是一个网络的世界,数不清的为了不同目的服务的计算和通信设备都连接在网络中,在不同的服务环境中自由移动。
[0003]在普适计算的软件中一个很重要的,区别于普通软件的地方,就是对情境的应用。软件不再是统一化,而是会通过不同的感应器来获得诸如地点、时间、温度等不同的情境信息来区分用户本身的不同特性,对这些情境的原信息进行分析,根据设定的规则处理这些信息,然后通过这些处理后的情境进行决策,得到一个系统认为最适合当前用户的服务。也正因为情境的使用使得情境自适应软件有别于普通软件,在做动态验证的时候,需要我们最多考量的也就是在不同的情境的情况下,程序的执行情况是否符合编程人员的预期。国外已经有研究针对普适软件的验证,例如模型检查和运行验证(Antonio Cornato,Giuseppe De Pietro, Formal specification and verification of ubiquitous andpervasive systems, ACMTrans.Auton.Adapt.Syst.6,1, Article9 (February2011) X 模型检查的算法最早于2000年被提出,并在2003年被完善,该思想是通过检查程序所有的踪迹是否符合一系列的特性来验证程序是否合法的,而运行验证则另辟蹊径,和模型检查的基本思想完全相反,主要关注于程序在运行过程中是否符合规则。
[0004]但是考虑到普适计算环境具有动态性这个特点,可用计算资源和用户需求不断变化,再加上服务本身已经极其复杂、繁琐,所以对软件本身正确性的检验变得十分困难,这时也就需要技术人员需要在验证方面付出精力,所以在系统设计的初始阶段建立一个良好的系统模型,以此进行仿真和模拟,对系统的可靠性、有效性和稳定性进行分析,及时对系统设计进行相应的优化并且及时发现系统级的错误,可以避免不必要的损失。
[0005]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网变迁歧义性的研究,更是少之又少。

【发明内容】

[0006]针对普适计算中动态生成的代码面对不同的情境下来验证程序的正确性时,如何将软件模型转换成Petri网模型,并且在转换完之后,如何消除Petri网变迁歧义性,本发明的目的是提供一种基于自适应点火的软件验证方法。
[0007]本发明提供的基于自适应点火的软件验证方法,具体为:将软件模型转换成情境Petri网模型,并通过自适应点火方式,消除情境Petri网变迁的歧义性,其中:
[0008]所述情境petri网,是指在原来经典的petri网中,通过在库所中加入情境语义维来为petri网的动态验证提供决策信息;
[0009]所述情境语义包括基本情境语义、高级情境语义,其中,基本情境语义是指由软件动态生成时存储在库所中的情境信息,高级情境语义是指由基本情境语义推倒出来的;
[0010]所述自适应点火方式用于描述软件对不同情境条件的自主反应性;如果一个变迁的每个输入库所都拥有托肯,该变迁即为被允许;一个变迁被允许时,变迁将发生点火,输入库所的托肯被消耗,同时为输出库所产生令牌;所述自适应点火方式是指根据当前库所中的情境语义来推测出托肯应该进入后面哪一个输出库所。
[0011]更为具体地,本发明通过以下方式进行实现的,通过将软件转化成一种叫做情境petri网的模型,再通过这个相应的情境petri网来动态验证软件的正确性。
[0012]由于普适情境随着用户活动在时间和空间上不断变化,自治的普适服务在软件执行过程中的动态退出,因此,传统的Petri网和其衍生的高阶petri网模型难以描述动态的普适软件系统。为了能够反映出生成的软件是符合当前情境下的需求,需要通过情境petri网来保存软件在各个环节的状态,为此后的验证提供必要的情境信息。这里所说的情境petri网,就是在原来经典的petri网中,通过在库所中加入情境信息维来为petri网的动态验证提供决策信息。
[0013]首先,按以下思路改进和扩展现有的Petri网理论,在Petri网模型中增加“情境语义”维,使扩展后的Petri网能够理解和预测变化的情境信息。这里的“情境语义”包括功能性语义(用户兴趣:用户需要的功能)和非功能性语义(用户偏好:带宽,响应时间等QoS因子)。“情境语义”可分为“基本情境语义”和“高级情境语义”。“基本情境语义”是指由软件动态生成时存储在库所中的情境信息,而“高级情境语义”是指由“基本情境语义”推倒出来的“情境语义”。为了解决petri网中的变迁歧义性,本发明提出了“自适应点火”的概念与触发机制,描述软件对不同情境条件的自主反应性。如果一个变迁的每个输入库所都拥有托肯(Token),该变迁即为被允许。一个变迁被允许时,变迁将发生点火,输入库所的托肯被消耗,同时为输出库所产生令牌。“自适应点火”是指根据当前库所中的“情境语义”来推测出托肯应该进入后面哪一个输出库所。[0014]对于“情境语义”中的功能性语义(用户兴趣),采用如下匹配度公式进行处理:
[0015]
【权利要求】
1.一种基于自适应点火的软件验证方法,其特征在于,将软件模型转换成情境Petri网模型,并通过自适应点火方式,消除情境Petri网变迁的歧义性,其中: 所述情境#廿1网,是指在#^^网中,通过在库所中加入情境语义维来Spetri网的动态验证提供决策信息; 所述情境语义包括由软件动态生成时存储在库所中的情境信息; 所述自适应点火方式用于描述软件对不同情境条件的自主反应性;如果一个变迁的每个输入库所都拥有托肯,该变迁即为被允许;一个变迁被允许时,变迁将发生点火,输入库所的托肯被消耗,同时为输出库所产生令牌;所述自适应点火方式是指根据当前库所中的情境语义来推测出托肯应该进入后面哪一个输出库所。
2.根据权利要求1所述的基于自适应点火的软件验证方法,其特征在于,所述情境语义包括功能性语义和非功能性语义,利用功能性语义的匹配程度和非功能性语义的效用值各自的排名结果来确定点火方向,其中,所述点火方向是指输入库所到输出库所的方向。
3.根据权利要求2所述的基于自适应点火的软件验证方法,其特征在于,所述的确定点火方向,具体为: 根据情境语义的功能性语义的匹配程度进行排名,得到排名位置&;,根据情境语的非功能性语义的效用值进行排名,得到排名位置,根据如下公式得到每个候选托肯的得分,并选择得分最高的作为点火方向
4.根据权利要求3所述的基于自适应点火的软件验证方法,其特征在于,λ和仏成单调递增的关系,用下面公式表亍:
5.根据权利要求3所述的基于自适应点火的软件验证方法,其特征在于,对于情境语中的功能性语义,采用如下匹配度公式进行处理:
6.根据权利要求3所述的基于自适应点火的软件验证方法,其特征在于,对于情境语义中的非功能性语义,由于非功能性语义有两种类型的值,第一种类型是值越大,代表的质量越小;第二种类型是值越大,代表的质量也越大;因此,首先对非功能性语义进行标准化处理: 对于第一种类型的非功能语义,采用如下公式进行处理:
7.根据权利要求1所述的基于自适应点火的软件验证方法,其特征在于,通过将情景信息数值化,再将其存入Petri网的库所中;对于无法直接数值化的信息,预先将这类信息对应的数值记录在表格中,通过查表的形式获得相应的数值。
【文档编号】G06F11/36GK103593286SQ201310501127
【公开日】2014年2月19日 申请日期:2013年10月22日 优先权日:2013年10月22日
【发明者】唐飞龙, 周金, 唐灿, 季丽娟, 过敏意 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1