×

结合静态和运行时验证验证面向数据和控制的属性:理论和工具。 (英语) Zbl 1370.68195号

摘要:静态验证技术用于在程序执行之前分析和证明程序的属性。其中许多技术直接用于源代码,并用于在所有可能的执行中验证面向数据的属性。该分析必然是一种过度近似,因为在分析时无法获得程序的实际执行。相反,运行时验证技术广泛用于面向控制的属性,以全自动的方式分析程序的当前执行路径。在本文中,我们提出了一种新的方法,在这种方法中,可以用静态和动态验证技术都适用的单一形式来描述面向数据和面向控制的属性。我们提供的规范语言用于实现ppDATE的规范语言,它通过面向数据的前置/后置条件增强了DATE的面向控制的属性语言。对于ppDATE规范的运行时验证,该语言被翻译为DATE。我们给ppDATE提供了一个形式化语义,我们用它来证明我们从ppDATE到DATE的翻译的正确性。我们展示了如何使用演绎定理证明器KeY和运行时验证工具LARVA组合来分析ppDATE规范。验证分两步进行:KeY首先部分验证规范的面向数据部分,简化规范,然后将规范传递给LARVA,以便在运行时检查规范的其余部分,包括面向控制的方面。我们在两个案例研究中展示了我们的方法的适用性。

理学硕士:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 阿帕奇Tomcat。http://tomcat.apache.org/
[2] Ahrendt W、Beckert B、Bubel R、Hähnle R、Schmitt PH、Ulbrich M(eds)(2016)《演绎软件验证——KeY图书(LNCS)》,第10001卷。柏林施普林格·Zbl 1080.68062号
[3] Ahrendt W、Chimento JM、Pace GJ、Schneider G(2015)数据和控制属性静态和运行时验证的规范语言。包含:FM'15(LNCS),第9109卷。柏林施普林格·Zbl 1370.68195号
[4] Ahrendt W,Dylla M(2012)异步对象合成验证系统。科学计算程序77:1289-1309·Zbl 1264.68050号
[5] Ahrendt W,Pace G,Schneider G(2012)静态和运行时验证的统一方法:框架和应用程序。收录:ISoLA’12(LNCS),第7609卷。柏林施普林格
[6] Ahrendt W,Pace GJ,Schneider G(2016)StaRVOOrS第二集:加强和分配部队。收录于:ISoLA’16(1)(LNCS),第9952卷。柏林施普林格·Zbl 1080.68062号
[7] Artho C、Barringer H、Goldberg A、Havelund K、Khurshid S、Lowry M、Pasareanu C、Rosu G、Sen K、Visser W等人(2005),结合测试用例生成和运行时验证。计算机科学理论336(2-3):209-234·Zbl 1080.68062号
[8] Artho C,Biere A(2015),静态和动态分析相结合。包含:AIOOL’05(ENTCS)第131卷,第3-14页
[9] Barnes J(2012)SPARK:高完整性软件的成熟方法。阿尔特兰·普拉西斯。网址:http://www.altran.co.uk
[10] Barnett M、Rustan K、Leino M、Schulte W(2005)《规范#编程系统:概述》。收录于:CASSIS’05(LNCS)第3362卷。柏林施普林格,第49-69页
[11] Barringer H、Goldberg A、Havelund K、Sen K(2004)《基于规则的运行时验证》。收录:VMCAI'04,第44-57页·Zbl 1202.68243号
[12] Bodden E,Hendren LJ,Lhoták O(2007):改进运行时监控性能的分阶段静态程序分析。收录:ECOOP’07(LNCS),第4609卷
[13] Bodden E,Lam P(2010)Clara:在编译时补遗教程中部分评估运行时监控器。包含:RV'10(LNCS)第6418卷,第74-88页
[14] Burdy L、Cheon Y、Cok DR、Ernst MD、Kiniry JR、Leavens GT、Rustan K、Leino M、Poll E(2005)《JML工具和应用概述》。国际J Softw Tools Technol Transf 7(3):212-232
[15] Chen F,Rošu G(2005)Java-MOP:面向监控的Java编程环境。在:TACAS'05(LNCS),第3440卷。柏林施普林格,第546-550页·Zbl 1087.68550号
[16] Chimento JM、Ahrendt W、Pace GJ、Schneider G(2015)StaRVOOrS:一种用于Java静态和运行时验证相结合的工具。收录:Bartocci E,Majumdar R(eds)Runtime verification(LNCS),第9333卷。柏林施普林格,第297-305页
[17] Christakis M、Müller P、Wüstholz V(2012年)《合作验证与测试与明确假设》。2012年8月27日至31日,法国巴黎,第18届国际研讨会,FM'12:正式方法。会议记录,第132-146页·Zbl 1372.68167号
[18] Colombo C、Pace GJ、Schneider G(2009),实时和上下文属性的基于事件的动态运行时监控。在:FMICS’08(LNCS),第5596卷。柏林施普林格,第135-149页
[19] Colombo C,Pace GJ,Schneider G(2009)LARVA:用于Java程序运行时监控的工具。收录:SEFM'09,IEEE计算机学会,第33-37页
[20] Csallner C,Smaragdakis Y(2005)《检查‘n’崩溃:结合静态检查和测试》。摘自:第27届软件工程国际会议(ICSE 2005),2005年5月15日至21日,美国密苏里州圣路易斯,第422-431页
[21] de Boer FS、de Gouw S、Johnsen EB、Wong PYH(2013)《Java程序面向数据和协议属性的运行时检查:工业案例研究》。收件人:Shin Sung Y,Maldonado Jos C(eds)SAC。ACM,第1573-1578页
[22] Decker N,Leucker M,Thoma D(2013)jUnitRV-向JUnit添加运行时验证。In:NASA形式方法(LNCS),第7871卷。柏林施普林格
[23] Ernst G、Pfähler J、Schellhorn G、Haneberg D、Reif W(2015)《KIV:概述和验证这一竞争》。国际J Softw Tools Technol Transf 17(6):677-694
[24] Falzon K,Pace G(2012年),结合测试和运行时验证技术。在普及和嵌入式软件的基于模型的方法论中,第八届国际研讨会,2012年MOMPES,德国埃森,2012年9月4日,第38-57页
[25] Flanagan Cormac、Leino K Rustan M、Lillibridge Mark、Nelson Greg、Saxe James B、Stata Raymie(2002)《Java扩展静态检查》。在Knoop Jens,Hendren Laurie J,编辑,PLDI’02,第234-245页。ACM公司
[26] Ge X,Taneja K,Xie T,Tillmann N(2011)DyTa:基于静态验证结果的动态符号执行。摘自:2011年5月21日至28日在美国夏威夷州火奴鲁鲁威基基举行的第33届国际软件工程会议记录,第992-994页
[27] Gries D(1987)《编程科学》,第1版。柏林施普林格·Zbl 0614.68002号
[28] Jacobs B、Smans J、Philippearts P、Vogels F、Penninckx W、Piessens F(2011)Verifast:C和Java的强大、可靠、可预测、快速验证器。In:NASA形式方法(LNCS),第6617卷。施普林格,第41-55页
[29] Leavens GT、Poll E、Clifton C、Cheon Y、Ruby C、Cok D、Müller P、Kiniry J、Chalin P(2007)JML参考手册。草案1.200
[30] Leino K Rustan M(2010)Dafny:功能正确性的自动程序验证器。在:Clarke EM,Voronkov A(编辑)用于编程、人工智能和推理的逻辑(LPAR-16)(LNCS),第6355卷。柏林施普林格·Zbl 1253.68095号
[31] Maraninchi F,Rémond Y(2000)《实时系统的运行模式:模式自动机的案例研究》。摘自:2000年6月19日至21日在瑞典斯德哥尔摩举行的第十二届实时系统欧洲微观会议记录(ECRTS 2000),第257-264页
[32] 万事达卡国际公司Mondex网页。网址:http://www.mondexusa.com/
[33] Reger G(2016)《MarQ概述:运行时验证会议记录——第16届国际会议》,RV 2016(LNCS),第10012卷。施普林格
[34] Sözer H(2015)集成静态代码分析和运行时验证。软件实践实验45(10):1359-1373
[35] Spivey JM(1989)Z符号:参考手册。Prentice-Hall公司,Upper Saddle River·Zbl 0777.68003号
[36] SoftSlate商业。www.softslate.com网站/
[37] Stepney S,Cooper D,Woodcock J(2000)电子钱包:规范、完善和验证。技术专著PRG-126,牛津大学计算实验室
[38] StaRVOOrS网页。http://cse-212294.cse.chalmers.se/starvoors/
[39] Tillmann N,Halleux Jonathan de(2008).nET的Pex-白盒测试生成。收录:Beckert B,Hähnle R(编辑)《测试与证明》(LNCS),第4966卷。柏林施普林格,第134-153页
[40] Tonin I(2007)验证mondex案例研究。KeY方法。卡尔斯鲁厄大学2007-4年技术报告
[41] Wonisch D、Schremmer A、Wehrheim H(2013)《零开销运行时监控》。收录:SEFM’13(LNCS),第8137卷。柏林施普林格,第244-258页
[42] Woodcock J(2006)验证软件大挑战的第一步。收入:SEW'06。IEEE计算机学会,第203-206页
[43] Zee K、Kuncak V、Taylor M、Rinard MC(2007)《程序验证的运行时检查》。包含:RV'07(LNCS),第4839卷。柏林施普林格,第202-213页
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。