基于JPF的Java序验证_肖美华.docVIP

  • 3
  • 0
  • 约9.22千字
  • 约 10页
  • 2016-11-25 发布于贵州
  • 举报
基于JPF的Java序验证_肖美华

基于JPF的Java程序验证 肖美华1,2,尹传文1,舒良春1,胡波2,邹芳红1 南昌大学信息工程学院,江西南昌330031;1.先锋软件股份有限公司,江西南昌330041) 摘要:形式化方法是提高并发系统的安全性与可靠性的重要手段。JPF(JavaPathfinder)是一种精确的Java字 节码状态模型检测工具。在阐述JPF工作原理的基础上,提出了一种适用于JPF的Java程序模型检测方法,包括 Java程序模型的建立、状态空间搜索算法的扩展和配置,开发了Java程序反例轨迹轻量级的输出监听器。对Java 程序实例进行验证,结果表明:该方法能有效地检测出多线程Java应用程序中难以检测到的并行漏洞。 关键词:形式化方法;模型检测;Java路径探测器;深度优先搜索;启发式搜索 中图分类号:TP301.2    文献标识码:A VerificationofJavaProgram UsingJPF XIAO mei-hua1,2,YIN chuan-wen1,SHU liang-chun1,HU Bo2,ZOU fang-hong2 (1.SchoolofInformationEngineering,NanchangUniversity,Nanchang330031,China; 2.Aheadsoftwareco.,Ltd.,Nanchang330041,China) Abstract:Formalmethodsisoneofthemostimportantwaystopromotethesafetyandreliabilityofconcurrent system.JPF(JavaPathfinder)isakindofexplicitstatemodelcheckerforJavabytecode.Basedontheintroduction oftheworkingprinciplesofJPF,thispaperproposedanapproachformodelcheckingtoverifyJavaprogramsused inJPF,includinghowtobuildJavaprogram model,extendandconfigurethealgorithmsforstatespacesearching, anddevelopalightweightlistenerforJPFtooutputtheJavaprogram counterexampletraces.ThroughverifyingaJa- vaprogram byusingthemodelcheckingproceduresmentionedabove,theresultshowsthatthismethodcanfindthe parallelbugsinthemultithreadedJavaapplicationseffectively,whichishardtobedetectedinnormalways. KeyWords:formalmethods;modelchecking;Javepathfinder;depthfirstsearch;heuristicsearch   形式化方法是提高软件系统,特别是safety-crit- ical系统的安全性与可靠性的重要手段。形式化方 法在软件验证的应用大致从串行程序验证开始,随 后运用于反应式系统(finite-statereactivesystem)、 并发系统、实时系统中。模型检测(ModelChec- king)[1]是形式化验证方法中的一种,此概念源于 上个世纪80年代,是用于验证有限状态反应系统的 一种自动化技术。模型检测中用来描述系统性质的 常见时态逻辑有LTL、CTL、CTL*等。该技术已被 广泛应用于时序电路设计和通信协议设计,并取得 了很大的成绩。真正将模型检测技术引入到软件的 验证只有短短的几年历史,该技术目前正处于研究 阶段。 随着模型检测技术的发展,陆续出现了一些优 秀的模型检测工具,如SMV、SPIN、VeriSoft、SLAM、 BLAST、MAGIC等。JPF是美国NASA军事研究中 心的Robust软件工程小组开发的,它是一种用来验 证JAVA字节码程序的系统,可以检测出死锁、未处 理异常等性质冲突。早期版本的JPF的内核是基于 SPIN[2]的,相当于一个翻译器,将JAVA翻译成 PROMELA[3],然后使用SPIN来进行验证。现在, JPF基于SPIN做了许多改进(如处理无界数据),它 可以直接运行字节码,拥有自己的垃圾回收机制,可 以存储访问过的状态和当前路径,给用户提供了一 些方法来优化验证。JPF与其他调试工具最大的区 别在于,它可以

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档