- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于LTL公式展开的程序运行时验证的研究.doc
基于LTL公式展开的程序运行时验证的研究
第一章绪论
1. 1研究背景及意义
目前的工业界,被广泛用于提高软件系统可靠性的最常用手段是测试。通常由专业的测试人员在软件开发的各个阶段进行错误排查,是提高软件质量可信度的初步方式。然而,随着软件规模的不断增大,仅仅依靠测试工作来发现软件中存在的缺陷显得尤为困难,其日益增加的复杂度也导致程序执行情况无法被完全覆盖。并且,现代的软件特点导致许多错误只有在特定的环境条件下才能暴露出来。三十年前E.odelChecking)。
..
1. 2相关研究现状
2001年,运行时验证(RuntimeVerification)的术语,作为一个研讨会的名称被正式提出,旨在描述处于形式化验证和测试概念边界上的问题。作为较早开展研究工作的学者,K.Havelund和G.Rosu从线性时态逻辑[6]的监控语义出发,专注于Java程序的死锁和数据竞争问题展开研究[7][8]。并先后开发出了几个比较成熟的运行时验证工具,包括TemporalRover[9],PathExplorer[10],JavaPathFinder[ll]。由J.Meseguer提出的Maude框架[12]在早期的运行时验证研究中被广泛使用。它的核心思想就是重写逻辑,这一概念对我们的研究有着重要的启示作用。随后,利用Btichi自动机构造运行时监控器的方法[13]被提出,并逐渐成为运行时验证的主要方法。但因其自身的复杂性和缺陷,仍然不能完全替代逻辑重写的思想。现如今,运行时验证已经成为学术界和工业界均予以关注的研究课题。许多重点机构和研究小组已经投入到运行时验证的研究中去,包括美国国家航天局,宾夕法尼亚大学,IBM公司的Haifa实验室等。许多运行时验证的理论,技术和工具被提出或幵发出来,并渐渐完善。RMOR(RequirementMonitoringandRecovery)[14]和MAC(MonitoringandChecking)[15],分别是用于监控C程序和Java程序的验证框架。Monitor-OrientedProgramming(MOP)[16]是一种面向监视的程序设计方法,对运行时验证技术做了扩展,能够在性质满足或违反的时候作出相应的反应。Tracematches工具[17],利用关于计算路径的正则表达式对AspectJ进行了扩展,使得多线程程序验证人员可以单独考虑单个线程或者多个线程的交叉执行。除去这些针对纯粹的运行时验证而展开的工具和技术,逐渐有一些诸如JML[18]和Jahob[19]的程序静态验证系统将运行时监控器引入系统中。并且,许多一些创新型的工具被研发出来,使得运行时验证逐渐可以应用到特定领域的问题研究上,如ARVE[20],Tamago[21],ORCHIDS[22],DMac[23],LIME[24]等等。
..
第二章背景知识
2. 1运行时验证概述
运行时验证的基本思想是,在软件程序的运行过程中对其行为进行分析和验证。如图2.1所示,运行时验证主要包括三大必要因素:(执行状态的)程序,(需要被验证的)性质,运行时监控器。它要求:1)程序通常是通过代码插桩的方式[5][38]对其行为进行采集;2)性质需要用可度量的形式化语言描述出来,通常是时态逻辑公式;3)根据时态逻辑公式构造出相应的运行时监控器。通常,程序行为可以用执行路径上的相关状态序列表示。而程序状态可以用一组观测到的关键变量表示。我们提取与性质相关的信息,交给监控器进行动态的分析和验证。运行时监控器作为运行时验证的核心,接收程序行为和软件性质,通过监控结果和预期行为的比较,渐进地验证程序行为是否满足用户期望的性质,并在性质不满足时给出详细的错误报告。据此,软件开发人员可以准确分析和快速定位错误发生的位置,提高了查错的效率,并减少了维护的开销。根据监控器执行的时间,运行时验证可以分为在线验证和离线验证。在线验证指的是在程序执行的同时进行监控,这对监控器的构造和执行的速度有很高的要求。在线监控器接收当前观测到的程序状态,对已运行的有穷状态序列进行实时监控,而不需要额外的空间存储这个验证时刻之前的状态。离线验证的监控过程不同步于程序执行,可以在程序的某个执行阶段结束后对一组记录完善的有穷行为路径集合进行验证。在任何时刻,都可以通过直接获取的方式返回己观测到的有穷状态序列,而不需要额外的计算。可见,无论是在线验证还是离线验证,监控器的性能对验证过程的有着至关重要的影响。
..
2.2LTL线性时态逻辑
1977年,Pnueli受文献[44]启发,提出了现在的线性时态逻辑(LinearTemporalLogic,LTL)。LTL能够精确地描述系统的高层行为规范,将其行为转换成可以度量建模的语言。根据
您可能关注的文档
最近下载
- 职业技术学校电子商务专业人才培养调研报告.docx VIP
- 材料力学课堂教学(中文版)-范钦珊-材料力学-第2章.ppt VIP
- 售后服务承诺书范文(精选7篇).docx VIP
- 《AIGC应用实战:写作、绘图、视频制作、直播》课件 第六章 AI视频制作.pptx VIP
- 南充市阆中市小学数学二年级下学期数学期末试卷.doc VIP
- 中国国家标准 GB 16796-2022安全防范报警设备 安全要求和试验方法.pdf
- 《AIGC应用实战:写作、绘图、视频制作、直播》课件 第五章 Stable Diffusion的使用方法.pptx VIP
- 工程造价结算审计的方法和技巧.docx VIP
- 材料力学课堂教学(中文版)-范钦珊-第1章 基本概念.ppt VIP
- 学生奶采购配送服务方案(技术标).pdf
文档评论(0)