软件模型检测中抽象-精炼方法的研究

发布时间:2022-01-01 17:11
  软件模型检测是一种使用形式化方法验证软件可靠性的重要技术方法。根据采用方法逼近方向的不同,软件模型检测可以分为上逼近方法和下逼近方法。本文中所研究的抽象-精炼方法,是对上下逼近方法的融合,它涵盖了上逼近方法和下逼近方法并具有更好的性质。传统的软件模型检测根据所使用的程序状态模型的不同,分别使用上逼近和下逼近方法进行分析,因此与相应模型紧密耦合的算法也常具有较大区别。这种内在的区别使得软件模型检测算法之间难以复用,同时算法输出的结果间也难以相互使用。近年来,一些关于软件模型检测的上下逼近融合方法研究开始兴起,通过设计状态融合的操作运算,使得上下逼近方法的状态得以混合,在一定程度上做到了结果相互使用,但是这种使用依然是浅层的。不同范式的软件模型检测方法没有做到深入地融合,其根本原因在于缺少一个统一的对软件抽象状态进行描述的模型。现有的模型多是基于不同形式的逻辑建立的状态存储和推理系统,其本身是依附于具体状态之上,着重描述程序的分立状态,缺乏对程序整体结构信息的描述和分析。针对以上问题,本文的具体研究内容如下:(1)从软件模型检测中的下逼近方法入手,以有界模型检测作为切入点,分析了有界模型检... 

【文章来源】:北京交通大学北京市 211工程院校 教育部直属院校

【文章页数】:124 页

【学位级别】:博士

【部分图文】:

软件模型检测中抽象-精炼方法的研究


具有无环有限状态机的图灵机Figure6-2Turingmachinewithacyclicfinitemachine

软件模型检测中抽象-精炼方法的研究


平坦的LVV格结构

惰性


梢钥闯觯?绦蛑葱惺倍??箍??傻慕诘慊岬贾鲁绦蜃刺?占涞睦?大,其中造成这种生成的最直接的原因就是循环的展开。循环结构在程序语言的语法中是由条件语句和前向跳转组成,因此如果一个层在条件节点处发生分裂,那么它将有可能变成一个无限层。因此,阻止LVV格变成无限状态的模型只需要阻止条件节点的完全展开。通过对节点展开的合理抑制就可以得到一个有限状态的模型,这种抑制展开的技术在模型检测领域通常被称为惰性的(Lazy)展开方法。根据这个原理和前面对程序模型的分析可以将图6-3程序的LVV格模型进一步地表示成图6-5的样子。图6-5惰性LVV格结构Figure6-5LazyLVVlattice在这个改造后的LVV格结构中,原本的三层分层在分支处分裂成更多子层,这些子层反映了程序的动态特性。可以注意到,在图6-5各层的垂直排列上即采取了图6-4中按照抽象的包含顺序进行,同时它也是按照动态生成的顺序进行。这种排列方式更容易分辨出层间的动态生成关系。其中绿色的关系代表分支判断时具体的执行方式,而其对应的黑色关系则是相应的抽象执行方式。为了使得程序的分支展开得以进行,这些绿色的执行是需要从抽象中进行展开的。这个惰性的LVV结构从执行上对程序的行为进行了描述。从另一个角度来讲,图中的节点i<3是自由变量i的限定版本,形式上可以被描述为}}{{3CTii<,但是可以发现在图6-4的相同关系却使用}}{{3MPii<来描述。这就意味着在特定的情况下,CT和MP可以互相转换。如果单纯从原本几何的角度来理解,对于相互正交的关系来讲,本来不应该存在线性的相关性,因此这种关系的存在暗示了这种表面上的正交关系存在更为深刻的联系。在后续的讨论中可以发现,这种相互可转换性是普遍存在的,

【参考文献】:
期刊论文
[1]Automated coverage-driven testing: combining symbolic execution and model checking[J]. Ting SU,Geguang PU,Weikai MIAO,Jifeng HE,Zhendong SU.  Science China(Information Sciences). 2016(09)



本文编号:3562471

资料下载
论文发表

本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/3562471.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户2cf8f***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com