运行时验证工具汇总

来源自我的博客

http://www.yingzinanfei.com/2017/02/01/yunxingshiyanzhenggongjuhuizong/

  1. 运行时验证框架列举

    • MOP (Monitor-Oriented Programming) 面向监视的程序设计方法,对运行时验证技术进行了扩展,能够在性质满足或违反的时候作出相应的反应。基于AOP (Aspect-Oriented Programming)实现
    • LARVA JAVA程序的安全实时监控
    • RMOR (Requirement Monitoring and Recovery) 用于监控C程序的验证框架
    • MaC (Monitoring and Checking) 是一个通用的运行时验证框架,设计目的是确保目标程序在满足形式化需求规约前提下正确运行。它可以对任何编程语言进行验证。Mac验证框架使用形式化需求规约来描述待验证的性质,且其根据一个给定的需求规约自动执行插装、监控及验证。相比于MOPLARVA等其它验证框架来说,它最大的特点是将程序监控与验证过程分享开来,从而使得高层需求规约独立于实现。
  2. 运行时验证工具列举

    • MOP\
      是现有的最有效最先进的运行时验证系统。MOP以插件的方式支持许多不同的逻辑,都使用同样的索引算法来快速访问监视器基于参数事件。一般地,MOP被设计来监视程序执行(在线监视)。例如,JAVAMOP验证由运行时JAVA程序生成的事件,用ASPECTJ仪表化。在这个评价里日志分析是在程序中插入一个日志阅读器来实现的,从日志中读入每个事件,调用给特定各类事件定义的方法,这些是空的函数体(什么都不做)。对这些空函数体方法的调用用ASPECTJ仪表化来驱动监视器
    • JavaMOP\
      一个针对Java的基于监控的编程(MOP)的软件开发和分析环境继承了MOP的架构,它将软件需要满足的规则以及程序的实现结合在一起。最大特点是支持多种逻辑,如上下文无关文法CFG、线性时序逻辑LTL、有限状态机FSM等。使用这些逻辑可以方便地对属性规范进行描述。JavaMOP属性规范的描述采用mop语法,生成的监控器代码是AspectJ源文件,采用abc编译器将AspectJ源文件与Java文件进行混合编译即可对程序进行运行时验证。使用JavaMOP,用户还可以实现特定的接口,定义自己的属性描述语言,具有可插拔性和灵活性。
    • MaC(Monitoring and Checking)\
      为程序的正确运行提供了保证,可以对目标程序进行运行时监控。Java-MaCMaC体系的一个原型实现,可以应用于Java程序的运行时监控。Java-MaC最大的特点是较低层次的、与实现相关的程序行为的监控和较高层次的、与编程语言无关的、使用形式化描述的规范的分离。该设计使JavaMaC具有很强的灵活性和可扩展性。
    • Java-MaC
    • RULER\
      是一个应用于JAVA的运行时验证工具,创建为基于规则的系统,但和RETE算法相比有点小区别。RULER在下一步中移除了事实,除非通过规则明确指示保持它。与其相反,RETE只有在规则中明确指示移除事实时才会移除。
    • LOGSCOPE\
      是一个小规模轻量级的修改版RULER,强调数据参数化状态机器,应用于SCALA上。LOGSCOPERULER相反,研究的是事实的保留除非其在规则中被明确移除。LOGSCOPE被开发来探索语言特征且不是优化的。
    • TRACECONTRACT\
      一个内部的SCALA DSL用于状态机器,浅层的DSL和深层的LTL,也是一个简单的基于规则的符号(浅层)。应用于重写和标准化公式。TRACECONTRACT被开发来探索语言特征且不是优化的。
    • PaX
    • Eagle
    • Hawk\
      是一个基于Eagle的运行时验证工具。Eagle逻辑能够被用来定义和实现多种线性轨迹监控逻辑,采用不动点理论计算时序公式的真假。
    • Jass\
      是对Java进行运行时验证的工具,源于契约设计思想,使用注释及代码生成技术进行运行时验证。对程序的源代码有很强的依赖性。

    • JPaX(Java PathExplorer)\
      针对Java语言的运行时验证工具

    • TraceMatches\
      利用关于计算路径的正则表达式对AspectJ进行了扩展,使得多线程程序验证人员可以单独考虑单个线程或者多个线程的交叉执行。

    • LOLA

    • Larva
    • J-LO
    • Temporal Rover
    • Conspec
    • MOPBox

    • 程序静态验证系统

      • JML
      • Jahob
      • FindBugs
      • Coverity
    • 特定领域的运行时验证工具
      • ARVE
      • Tamago
      • ORCHIDS
      • DMac
      • LIME
    • 运行时验证算法实现
      • RETE
      • LOGFIRE: 扩充了事件处理和索引方案的RETE算法
      • RETE/UL: 添加了事件处理的对RETE算法的SCALA直接实现。LOGFIRE是附带有索引的此方法优化实现。
      • DROOLS: 一个主要的最先进的为JAVA语言制订的基于规则系统,并且能免费从JBoss社区获取。DROOLS基于一个RETE算法的增强实现。
  3. 工具描述
    • JassJavaMOP都使用了切面编程(Aspect-oriented Programming, AOP)技术及代码生成技术,而Java-Mac采用了更为精细的字节码插入技术。这3种解决方案涵盖了目前运行时验证领域里的常用技术。
    • MOP支持基于自动机的验证算法。在监控器生成的初期,MOP将所有的非自动机的逻辑描述转化为自动机,然后生成一个监控器抽象表示,之后再生成监控器代码。
    • LARVA采用时间自动机描述属性,并生成AspectJ监控器。Java-MaCTraceMatches也采用类似的方法
    • 基于公式重写的验证算法被面向规则的运行时验证技术所采用,它们一般使用公式重写的方法对有限踪迹是否满足给定的属性进行判定。LOLAJava PathExplorer在对LTL属性进行监控时也采用了这样的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值