CN103888958B - 基于偏序简化算法的无线传感网软件模型优化方法 - Google Patents

基于偏序简化算法的无线传感网软件模型优化方法 Download PDF

Info

Publication number
CN103888958B
CN103888958B CN201410117790.1A CN201410117790A CN103888958B CN 103888958 B CN103888958 B CN 103888958B CN 201410117790 A CN201410117790 A CN 201410117790A CN 103888958 B CN103888958 B CN 103888958B
Authority
CN
China
Prior art keywords
state
model
sense network
wireless sense
network software
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.)
Expired - Fee Related
Application number
CN201410117790.1A
Other languages
English (en)
Other versions
CN103888958A (zh
Inventor
陈志�
岳书珍
岳文静
朱彦沛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Post and Telecommunication University
Original Assignee
Nanjing Post and Telecommunication University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Post and Telecommunication University filed Critical Nanjing Post and Telecommunication University
Priority to CN201410117790.1A priority Critical patent/CN103888958B/zh
Publication of CN103888958A publication Critical patent/CN103888958A/zh
Application granted granted Critical
Publication of CN103888958B publication Critical patent/CN103888958B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明给出一种基于偏序简化算法的无线传感网软件模型优化方法,该方法首先将无线传感网软件用模型表示,该模型用来描述节点以及节点之间的状态迁移系统,然后用偏序简化算法对所得的软件模型进行优化,之后用时序逻辑公式来表示无线传感网软件所需要满足的属性或性质,将对无线传感网软件的验证转化为验证软件模型是否满足公式的问题。本发明方法能够用来优化无线传感网软件模型,有效缓解无线传感网软件模型检验中的状态空间爆炸问题。

Description

基于偏序简化算法的无线传感网软件模型优化方法
技术领域
本发明涉及一种模型优化方法,主要利用模型检验技术来解决无线传感器网络软件的模型验证问题,属于计算机技术、无线通信、无线传感器网络、实时技术、分布式系统和验证技术的交叉技术应用领域。
背景技术
无线传感网是一种全新的信息获取和处理技术,能够协作地实时监测、感知和采集网络分布区域内各种环境或监测对象的信息,并对这些信息进行处理,获得详尽而准确的信息,传送给需要这些信息的用户。传感器网络可以使人们在任何时间、地点和任何环境条件下获取大量详实而可靠的信息,具有十分广阔的应用前景。
无线传感网的发展非常迅速,这使得应用在上面的软件也越来越广泛,伴随的软件验证问题也越来越多。传感网软件规模越来越大,致使系统复杂性也愈来愈高,除此之外,在很多的不同应用领域都对传感网软件有很高的性能要求。模型检验技术为保证应用于无限传感器网络中的软件性能提供了新的思路,其在协议验证领域和硬件领域都获得了很大的成功之后,也被用在有关软件验证问题的解决上。软件相对于硬件有着较高的复杂性,其状态空间规模也较大,有大量的学者致力于这方面的研究。为了及时地发现程序中潜在的问题,已经有人提出将模型检验技术应用到源代码的分析中。建立模型和性质检验是模型检验中的两个重要的步骤,即第一步需要对待验证的软件进行建立模型,然后在通过穷尽搜索软件系统状态的方法来检验性质是否满足。
模型检验是一种自动验证有穷状态系统的技术,最早是由Clarke和Emerson在1981年提出的,模型检验方法可以在构建系统前对系统的安全性和可靠性进行验证,以尽早发现错误。模型检验实质是利用计算机的快速计算能力,通过穷举被检验系统的状态空间中的每一个状态来验证该系统满足特定的形式描述。在模型检验中涉及两种形式说明语言:一种是用于描述系统模型的模型描述语言,一般使用状态机进行表示,另一种是用于描述系统性质的性质说明语言,一般使用时序逻辑公式进行表示。模型检验的基本思想是用状态迁移系统(S)表示系统的行为,用模态/时序逻辑公式(F)描述系统的性质,这样“系统是否满足所期望的性质”就转化为数学问题“状态迁移系统S是否公式F的一个模型”,用公式表示为S|=F?。对有穷状态系统,这个问题是可判定的,即可以用计算机程序在有限时间内自动确定。模型检验已被应用于计算机硬件、通信协议、控制系统、安全认证协议等方面的分析与验证中,取得了令人瞩目的成功,并从学术界辐射到了产业界。
模型检验提供一个完整的系统属性验证框架,其优点是模型检验能达到完全自动化的程度,只需用有穷状态模型和逻辑公式分别将系统实现和待验证的系统规范描述出来,之后的判断过程则完全可以由模型检验工具自动完成,不需要人的参与;模型检验过程总会以“是”或“否”的结果中止,当以“否”的结果中止时,说明设计或系统不满足某个给定的性质。此时一个违反性质的行为反例将会被给出,此反例将对理解错误的真正原因和修正错误提供线索。利用模型检验的优点,对无线传感器网络的软件或协议进行验证,找出其可能存在的威胁和隐患。
TinyOS操作系统是无线传感网的主流操作系统。网络协议、传感器驱动、分布式服务器及数据识别工具是组成TinyOS的四个主要部分。良好的事件执行模型是促成良好的电源管理的主要因素,因此,该模型也使得时序安排具有灵活性。TinyOS已被应用于TinyOS的感应板和多个平台中的,且软件的应用也有了一定程度的发展,这与TinyOS系统本身的特征如事件驱动模式、组件化编程思想、轻量级线程技术以及主动消息通信技术等密切相关。然而,在传感器网络系统的深入研究就会发现,这些技术可以帮助提高传感器网络的性能,更充分发挥硬件的特性,降低其功耗,并简化应用程序开发过程。
NesC是一种表面线性传感网面向对象编程语言,NesC语言是对C语言的扩展,但与C语言不同的是它是组件化的且它的工作执行模式是基于事件驱动的。NeSC采用面向组件编程,并且支持在传感网上的应用开发。TinyOS是一种新型操作系统,它是由NesC语言编写的。大多数基于TinyOS操作系统的应用软件是用NesC,相比之前的编程语言NesC的传感网的开发和应用更方便。组件和接口分别是NesC语言中两个基础的概念。组件可以提供接口,与此同时,其他组件也可以使用这个组件的某些功能,其使用方法是通过引用相同接口声明。不同的组件通过这种方式来实现组件间的相互调用。配件是组件的一种,配件实质是用来描述不同组件接口之间的调用关系;模块的组件另一种定义形式,其主要描述具体实现,如组件中涉及到的接口定义等。以上就是NesC语言组件的两种定义形式,其性质和功能是不同的。而NesC中的接口与组件是不同的,它是组件的一个部分,接口可以理解为函数,也可以是理解为发生的事件,或者是程序或系统的命令,组件是通过接口来实现组件之间的相互衔接和相互联系。
发明内容
技术问题:本发明提出一种基于偏序简化算法的无线传感网软件模型优化方法,主要用来优化无线传感网软件模型,缓解模型检验中的状态空间爆炸问题。
技术方案:本发明所述的一种基于偏序简化算法的无线传感网软件模型优化方法,首先将无线传感网软件用模型表示,该模型用来描述节点以及节点之间的状态迁移,然后用偏序简化算法对所得的软件模型进行优化,之后用时序逻辑公式来表示无线传感网软件所需要满足的属性或性质,将对无线传感网软件的验证转化为验证软件模型是否满足公式来判断系统性质。本发明采用的偏序简化算法主要结合偏序简化算法和on-the-fly算法思想,基于偏序简化算法的无线传感网软件模型优化方法具体步骤如下:
步骤1、建立无线传感网软件模型。所述模型用四元组(S,S0,R,L)的形式来描述,S代表状态集合;S0代表初始状态集合;R表示状态迁移,对任意一个α∈R,从S中选取状态s0和状态s1,s0∈S,s1∈S,α(s0,s1)表示状态s0和状态s1之间存在状态迁移α,也可以表示为s1=α(s0)或者s0αs1;L是一个赋值函数,用来表示状态对原子命题的赋值。
步骤2、定义状态p可发生迁移的集合为E(p),p∈S,状态p要发生迁移后下一状态集合为F(p),且从当前状态p开始的路径被定义为p0α0p1α1…,p∈S,p0∈S0,状态p被初始化为状态p0,该路径解释为从状态p0开始经过迁移α0到达状态p1,以此进行直至到达最终状态。
步骤3、选定E(p)中的某一状态作为状态p的下一状态,所述节点状态的下一状态集合需满足四个条件如下:
(1)F(p)为空,当且仅当E(p)为空;
(2)从状态p开始的每条路经,依赖于F(p)中某些迁移的迁移,不能在E(p)中的迁移执行之前执行;
(3)如果状态p没有全部扩展,对任意的一个α∈E(p),α不可见;
(4)模型状态图不允许这样一个循环存在:循环中变迁α可以发生,但α不属于循环中的任何状态p的F(p)。
步骤4、设置无线传感网软件模型中的各个状态所要满足的性质L(m),m为S中的任一状态。
步骤5、软件执行产生状态s。s不具有唯一性,它可以表示同一节点的不同状态,也可以表示不同节点之间的状态。
步骤6、依此判断所有E(s)的合法性以及是否为空集。此步骤是要排除产生中断等不合法的状态,保证模型检验过程的执行。若E(s)为空,则表明s没有后继状态,跳出循环,执行步骤10。
步骤7、选定状态s的后继状态t,t∈E(s)。本发明采用深度状态搜索来寻找E(s)的子集下一状态集合,寻找满足的后继。
步骤8、判断状态t的合法性以及是否满足步骤4中设定的性质,若合法,则执行下一步骤,否则放弃状态t,返回步骤6。
步骤9、输出优化的模型状态序列,上述步骤执行后得到状态s的迁移序列f(s), 所述f(s)中遍历状态的次序是固定且不含重复路径。
步骤10、生成优化的模型,该模型是无线传感器网络的软件状态迁移系统。将需验证的性质用逻辑公式表示出来后,对建立模型的状态空间进行搜索,验证是否满足相关性质。
有益效果:本发明所述的一种基于偏序简化算法的无线传感器网软件模型优化方法,分析与应用相关的软件是否满足要求,分析能力强、可读性高,能尽早发现软件存在的缺陷和不正确性,其采用的形式化方法可以验证复杂系统。具体来说,本发明所述的方法具有如下的有益效果:
1、本发明所述的基于偏序简化算法的无线传感网软件的模型优化算法包括初始条件设置、性质满足条件设置、运行进程产生并选择下一状态,选择状态中的迁移集,最终产生优化的模型。
2、本发明所述模型检验方法中的抽象模型生成模块实现将被检测的无线传感网软件转换为一种形式化的状态自动机模型。
3、本发明所述的偏序简化算法是应用于模型的整个生成过程中,包含无线传感网软件的网络模型以及节点中,得到其优化的模型,相比传统的偏序简化算法时间复杂度较低。
4、本发明所述的偏序简化算法将状态之间产生的路径进行偏序简化,提高了无线传感器的模型生成效率。
附图说明
图1是偏序简化算法过程示意图。
图2是基于偏序简化算法的无线传感网软件模型优化方法流程示意图。
具体实施方式
下面对本发明附图的某些实施例作更详细的描述。
根据图2,本发明所述的是一种基于偏序简化算法的无线传感网软件模型优化方法,该方法建立在模型检验技术的基础上,将算法应用在无线传感网中的RFC6206Trickle协议上,并借助工具NesC@PAT。具体实施方式为:
1、用四元组表述RFC6206Trickle模型,该模型表示协议的状态迁移,并定义状态满足性质SensorNetwork|=<>Allupdated,初始化运行条件。
RFC6206Trickle协议用一个四元组的形式(S,S0,R,L),其中S代表状态集合,S0代表初始状态集合,R表示状态变迁关系,对任意一个α∈T,α(s0,s1)表示s0和s1之间存在变迁关系α,也可以为s1=α(s0)。L:S→2AP是一个赋值函数,用来表示状态对原是命题的赋值。定义状态s能够发生跃迁的集合为possible(s),ample(s)是possible(s)的子集。从状态s开始的路径被定义为Π=s0α0s1α1…,其中s=s0,对任意的状态都成立。该实现过程是通过模型检验器NesC@PAT来实现,之后选择首先要定义协议中的状态需要满足的条件
(1)C0:当且仅当
(2)C1:从s开始的每条路经,依赖于ample(s)中某些变迁的变迁,不能在ample(s)中的变迁执行之前执行;
(3)C2:如s没有全部扩展,对任意的一个α∈ample(s),α不可见;
(4)C3:状态图中不允许这样一个循环存在,循环中变迁α可以发生,但α不属于循环中的任何状态s的ample(s)。此外,设置状态所要满足的程序性质。其具体的设置方法可以通过添加s的判定条件实现。
2、寻找当前状态的下一状态s
执行RFC6206Trickle协议确定性的进程产生状态s,这里的s是指当前状态的下一状态,s不具有唯一性,可以有多种状态选择。
3、确认选定s的迁移集
检查所有s能够发生的变迁对每一个含有状态s的状态迁移进行判断,本算法是采用深度状态搜索来寻找possible(s)的子集ample(s),寻找满足的后继。判断后继状态s所在的迁移是否是合法,若是则执行下一步骤,否则放弃s。通过选择可变迁子集,即将某些状态的次序固定,以减少重复验证本质上相同的路径,属性的正确性检查在简化了的状态空间和全状态空间中得以保持。
4、设定函数的性质
本发明采用的RFC6206Trickle协议使用NesC编码实现的,将其设置执行函数,将其标记为将执行函数设置为事件函数,所述事件函数是指函数被调用时才需要执行的函数。
5、根据算法生成模型
将算法使用在RFC6206Trickle协议的节点和网络模型上,生成优化的状态模型。所述模型是无线传感器网络的软件状态迁移系统,这是模型检验最终需要的模型。

Claims (1)

1.一种基于偏序简化算法的无线传感网软件模型优化方法,首先将无线传感网软件用模型表示,该模型用来描述节点以及节点之间的状态迁移,然后用偏序简化算法对所得的软件模型进行优化,之后用时序逻辑公式来表示无线传感网软件所需要满足的属性或性质,将对无线传感网软件的验证转化为验证软件模型是否满足公式来判断系统性质;采用的偏序简化算法结合偏序简化算法和on-the-fly算法思想,基于偏序简化算法的无线传感网软件模型优化方法具体步骤如下:
步骤1、建立无线传感网软件模型,所述模型用四元组(S,S0,R,L)的形式来描述,S代表状态集合;S0代表初始状态集合;R表示状态迁移,对任意一个α∈R,从S中选取状态s0和状态s1,s0∈S,s1∈S,α(s0,s1)表示状态s0和状态s1之间存在状态迁移α,或表示为s1=α(s0)或者s0αs1;L是一个赋值函数,用来表示状态对原子命题的赋值;
步骤2、定义状态p可发生迁移的集合为E(p),p∈S,状态p要发生迁移后下一状态集合为F(p),且从当前状态p开始的路径被定义为p0α0p1α1…,p∈S,p0∈s0,状态p被初始化为状态p0,该路径解释为从状态p0开始经过迁移α0到达状态p1,以此进行直至到达最终状态;
步骤3、选定E(p)中的某一状态作为状态p的下一状态,该状态的下一状态集合需满足四个条件如下:
(1)F(p)为空,当且仅当E(p)为空;
(2)从状态p开始的每条路经,依赖于F(p)中某些迁移的迁移,不能在E(p)中的迁移执行之前执行;
(3)如果状态p没有全部扩展,对任意的一个α∈E(p),α不可见;
(4)模型状态图不允许这样一个循环存在:循环中变迁α可以发生,但α不属于循环中的任何状态p的F(p);
步骤4、设置无线传感网软件模型中的各个状态所要满足的性质L(m),m为S中的任一状态;
步骤5、软件执行产生状态s,s不具有唯一性,它可以表示同一节点的不同状态,也可以表示不同节点之间的状态;
步骤6、依此判断所有E(s)的合法性以及是否为空集,此步骤是要排除产生中断不合法的状态,保证模型检验过程的执行;若E(s)为空,则表明s没有后继状态,跳出循环,执行步骤10;
步骤7、选定状态s的后继状态t,t∈E(s);本方法采用深度状态搜索来寻找E(s)的子集下一状态集合,寻找满足的后继;
步骤8、判断状态t的合法性以及是否满足步骤4中设定的性质,若合法,则执行下一步骤,否则放弃状态t,返回步骤6;
步骤9、输出优化的模型状态序列,上述步骤执行后得到状态s的迁移序列f(s),所述f(s)中遍历状态的次序是固定且不含重复路径;
步骤10、生成优化的模型,该模型是无线传感器网络的软件状态迁移系统;将需验证的性质用逻辑公式表示出来后,对建立模型的状态空间进行搜索,验证是否满足相关性质。
CN201410117790.1A 2014-03-26 2014-03-26 基于偏序简化算法的无线传感网软件模型优化方法 Expired - Fee Related CN103888958B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410117790.1A CN103888958B (zh) 2014-03-26 2014-03-26 基于偏序简化算法的无线传感网软件模型优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410117790.1A CN103888958B (zh) 2014-03-26 2014-03-26 基于偏序简化算法的无线传感网软件模型优化方法

Publications (2)

Publication Number Publication Date
CN103888958A CN103888958A (zh) 2014-06-25
CN103888958B true CN103888958B (zh) 2017-05-31

Family

ID=50957642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410117790.1A Expired - Fee Related CN103888958B (zh) 2014-03-26 2014-03-26 基于偏序简化算法的无线传感网软件模型优化方法

Country Status (1)

Country Link
CN (1) CN103888958B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899447B (zh) * 2015-06-08 2017-09-26 华北电力大学(保定) 电力大数据预处理的属性约简方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159697A (zh) * 2007-11-23 2008-04-09 南京大学 无线传感器网络中时延限制下实现最小能耗路由的方法
WO2011109772A2 (en) * 2010-03-05 2011-09-09 Interdigital Patent Holdings, Inc. Method and apparatus for providing security to devices
CN102799517A (zh) * 2011-05-25 2012-11-28 中国科学院软件研究所 一种快速的循环扩展检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101159697A (zh) * 2007-11-23 2008-04-09 南京大学 无线传感器网络中时延限制下实现最小能耗路由的方法
WO2011109772A2 (en) * 2010-03-05 2011-09-09 Interdigital Patent Holdings, Inc. Method and apparatus for providing security to devices
CN102799517A (zh) * 2011-05-25 2012-11-28 中国科学院软件研究所 一种快速的循环扩展检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于偏序简化的并发系统验证;王婷,罗养霞,房鼎益,陈晓江,何路;《计算机应用与软件》;20080630;全文 *
模型检测中的偏序简化;朱新峰,李斌,吴俊;《扬州职业大学学报》;20091231;全文 *

Also Published As

Publication number Publication date
CN103888958A (zh) 2014-06-25

Similar Documents

Publication Publication Date Title
CN101571802A (zh) 一种嵌入式软件测试数据可视化自动生成方法及系统
CN102368226A (zh) 一种基于扩展有限状态机可行路径分析的测试用例自动生成方法
CN107783758A (zh) 一种智能合约工程方法
CN109933521A (zh) 基于bdd的自动化测试方法、装置、计算机设备及存储介质
CN105991517B (zh) 漏洞发掘方法和装置
CN108459958A (zh) 功能及性能测试脚本的创建方法、装置、设备及存储介质
CN102708051B (zh) 程序持续集成的方法及系统
CN103391224B (zh) 基于并行扩展有限状态机的协议层次化测试生成方法
CN112506691A (zh) 一种多能源系统数字孪生应用故障恢复方法及系统
CN113868120A (zh) 工业软件调试方法、装置、计算机设备和存储介质
CN109299785A (zh) 一种机器学习模型的实现方法及装置
CN113590454A (zh) 测试方法、装置、计算机设备和存储介质
CN109542589B (zh) 一种面向区块链智能合约的运行无损的监测系统及方法
CN103576667B (zh) 主控板的测试方法、装置及系统
CN103888958B (zh) 基于偏序简化算法的无线传感网软件模型优化方法
CN111580409B (zh) 面向实时嵌入式系统的故障仿真测试方法
Chan et al. Oracles are hardly attain'd, and hardly understood: Confessions of software testing researchers
CN103970653A (zh) 一种传感器网软件可达性验证方法
CN113590217B (zh) 基于引擎的函数管理方法、装置、电子设备及存储介质
Luo et al. Clustering and tailoring user session data for testing web applications
CN113238897B (zh) 芯片的系统级测试方法、装置、计算机设备及存储介质
KR101759893B1 (ko) 분산자원 모의운전을 위한 시나리오 기반 가상장비 관리 장치
CN103017815A (zh) 一种可视化的通用测试系统及测试方法
CN110096292B (zh) 一种自适应刷新服务器bios固件的方法及系统
CN202110531U (zh) 一种基于网络传输的处理器协同验证平台

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170531