×

验证DEOS调度内核中的时间分区。 (英语) Zbl 1083.68575号

摘要:本文描述了一个使用Spin模型检查系统支持霍尼韦尔DEOS实时调度内核中时间划分自动验证的实验。该实验的目的是研究是否可以使用最小抽象的模型检查来发现最初在标准正式审查过程中发现并修复的细微实现错误。该实验涉及将DEOS调度内核的一个核心片从C++翻译成Promela,构建一个抽象的“测试驱动”环境,并将几个抽象引入系统以支持验证。尝试验证与时间分区相关的几个属性后,重新发现了实现中的已知错误。案例研究表明,现有工具在支持软件模型检查方面存在一些局限性。原始DEOS实验中最困难的任务是构建一个足够的环境来关闭系统进行验证。环境的保真度对于在模型检查期间获得有意义的结果至关重要。本文描述了初始环境建模工作以及使用半自动化环境生成方法进行的后续实验。程序抽象技术对于实现DEOS验证也至关重要。我们描述了一种谓词抽象的实现方案,这是一种基于抽象解释的方法,用于支持DEOS验证。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] R.Allen、D.Garlan和J.Ivers,《HLA组件集成标准的形式化建模和分析》。第六届SIGSOFT FSE,佛罗里达州布埃纳维斯塔湖,1998年11月。ACM公司。
[2] J.M.Atley和J.Gannon,“事件驱动系统需求的基于状态的模型检查”,IEEE TSE,第19卷,第1期,第24-40页,1993年。
[3] T.Ball、A.Podelski和S.Rajamani,《模型检查C程序的布尔和笛卡尔抽象》。2001年4月,意大利热那亚,斯普林格-Verlag,LNCS,第2031卷·Zbl 0978.68540号
[4] T.Ball、A.Podelski和S.K.Rajamani,“软件模型检查抽象精化的相对完整性”,Proc。2002年,第2280卷,LNCS,法国格勒诺布尔,斯普林格-弗拉格,2002年4月·Zbl 1043.68523号
[5] T.Ball和S.Rajamani,《Bebop:布尔程序的符号模型检查器》。第七届国际SPIN研讨会,LNCS第1885卷,美国加利福尼亚州斯坦福大学,斯普林格·弗拉格,2000年8月·Zbl 0976.68540号
[6] B.Beizer,《软件测试技术》,第二版,Van Nostrand Reinhold,纽约,1990年·Zbl 1012.68569号
[7] B.Boehm,软件工程经济学。普伦蒂斯·霍尔,1981年·Zbl 0525.90034号
[8] G.Booch、J.Rumbaugh和I.Jacobson,统一建模语言用户指南。Addison-Wesley,1998年。
[9] D.Bosnaki和D.Dams,《将实时集成到Spin中:原型实现》。FORTE/PSTV XVIII,Kluwer,1998年,第423-439页。
[10] E.Brinksma和A.Mader,《PLC控制计划的验证和优化》。第七届SPIN研讨会,Springer-Verlag,2000年,第73-92页·Zbl 0976.68577号
[11] B.Bruegge和A.H.Dutoit,“面向对象的软件工程:征服复杂和不断变化的系统。”普伦蒂斯·霍尔,2000年。
[12] R.W.Butler和G.B.Finelli,“量化生命关键型实时软件可靠性的不可行性”,IEEE TSE,第19卷,第1期,第3-12页,1993年。
[13] J.Falk C.Kaner和H.Q.Nguyen,《计算机软件测试》,第二版,威利出版社,1993年。
[14] W.Chan、R.Andersen、P.Beame、D.Jones、D.Notkin和W.Warner,“从本地控制中解耦同步,以有效检查状态图的符号模型”。第21届国际软件工程会议,ACM出版社:洛杉矶,1999年5月,第142-151页。
[15] W.Chan、R.J.Anderson、P.Beame、S.Burns、F.Modugno、D.Notkin和J.D.Reese,“模型检查大型软件规范”,IEEE TSE,第24卷,第7期,第498-520页,1998年。
[16] J.J.Chilenski和S.P.Miller,“修改后的条件/决策覆盖对软件测试的适用性”,《软件工程期刊》,第9卷,第5期,1994年。
[17] E.Clarke、A.Gupta、J.Kukula和O.Strichman,《使用ILP和机器学习技术进行基于SAT的抽象再定义》。第十四届计算机辅助验证会议,LNCS。Springer-Verlag,2002年7月·Zbl 1010.68515号
[18] E.M.Clarke、E.A.Emerson和A.P.Sistla,“使用时序逻辑规范对有限状态并发系统进行自动验证”,ACM Trans。《编程语言和系统》,第8卷,第2期,第244-263页,1986年·Zbl 0591.68027号 ·doi:10.1145/5397.5399
[19] J.M.Cobleigh、D.Giannakopoulou和C.S.PSreanu,《成分验证的学习假设》。2003年,第2619卷,斯普林格-弗拉格出版社,2003年4月·Zbl 1031.68545号
[20] M.Colón和T.Uribe,使用决策程序生成反应系统的有限状态抽象,”。第十届计算机辅助验证会议,LNCS第1427卷,Springer-Verlag,1998年7月。
[21] J.Corbett,“构建并发Java程序的紧凑模型”,载于M.Young(编辑),Proc。国际软件测试与分析研讨会,软件工程笔记,SIGSOFT,ACM,1998年3月,第1-10页。
[22] J.C.Corbett、M.B.Dwyer、J.Hatcliff、S.Laubach、C.S.Pasareanu、Robby和H.Zheng,《班德拉:从Java源代码中提取有限状态模型》,Proc。第22届国际软件工程大会,ACM出版社,2000年6月。
[23] P.Cousot和R.Cousot,“比较伽罗瓦联系和扩大/缩小抽象解释的方法”,M.Bruynooghe和M.Wirsing,(编辑),Proc。第四届编程语言实现和逻辑编程国际研讨会,LNCS第631卷,比利时鲁汶,1992年。Springer-Verlag,第269-295页·Zbl 0776.68024号
[24] Z.Dang和R.Kemmer,《使用星体模型检查器分析移动IP》。IEEE第21届软件工程国际会议,洛杉矶,1999年5月。ACM出版社,第132-141页。
[25] S.Das、D.Dill和S.Park,“谓词抽象的经验”,Proc。计算机辅助验证国际会议(CAV’99),LNCS第1633卷,Springer-Verlag,1999年,第160-171页·Zbl 1046.68589号
[26] C.Demartini、R.Iosif和R.Sist,“用于并发Java程序的死锁检测工具”,《软件实践与经验》,第29卷。第(7)号,第577-603页,1999年·Zbl 05467802号 ·doi:10.1002/(SICI)1097-024X(199906)29:7<577::AID-SPE246>3.0.CO;2伏
[27] C.Demartini、R.Iosif和R.Sisto,“dSPIN:SPIN的动态扩展”,摘自Proc。第六届SPIN研讨会,LNCS第1680卷,Springer-Verlag,1999年。
[28] N.Dor、M.Rodeh和S.Sagiv,“通过静态指针分析检测内存错误(初步经验)”,载于《软件工具和工程的程序分析研讨会》,ACM,1998年,第27-34页。
[29] M.Dwyer、J.Hatcliff、R.Joehanes、S.Laubach、C.Pasareanu、Robby、W.Visser和H.Zheng,《有限状态验证的工具支持程序抽象》。第23届软件工程国际会议,加拿大多伦多。,ACM出版社,2001年5月。
[30] M.Dwyer和C.Pasareanu,《基于过滤器的部分系统模型检查》。第六届ACM SIGSOFT FSE,ACM SIGCOFT,1998年11月。
[31] D.Evans,“动态内存错误的静态检测”,载于《编程语言设计与实现会议》,ACM,1996年,第44-53页。
[32] P.Godefroid,《使用Verisoft对编程语言进行模型检查》,Symp。《程序设计语言原理》,美国计算机学会,1997年,第174-186页。
[33] S.Graf和H.Saidi,“用PVS构建抽象状态图”,见Proc。第九届计算机辅助验证国际会议,LNCS第1254卷,Springer-Verlag,1997年,第174-186页。
[34] A.Groce和W.Visser,《使用结构启发式检查Java程序的模型》。国际交响乐团。软件测试和分析。ACM出版社,2002年7月·Zbl 1077.68684号
[35] K.Havelund、M.Lowry、S.Park、C.Pecheur、J.Penix、W.Visser和J.L.White,“飞行前后远程代理的形式分析”,第五届NASA兰利形式方法研讨会。美国国家航空航天局,2000年。
[36] K.Havelund和T.Pressburger,“使用Java PathFinder检查Java程序的模型”,国际技术转让软件工具杂志,1999年·Zbl 1059.68585号
[37] K.J.Hayhurst、C.A.Dorsey、J.C.Knight、N.G.Leveson和G.F.McCormick,“简化认证的软件方面:SSAC调查报告”,《NASA/TM-1999-29519技术报告》,NASA兰利研究中心,1999年。
[38] C.Heitmeyer,“使用抽象和模型检查检测需求规范中的安全违规”,IEEE TSE,第24卷,第11期,第927-948页,1998年。
[39] T.Henzinger、R.Jhala、R.Majumdar和G.Sutre,《懒惰抽象》。症状。《程序设计语言原理》,美国计算机学会,2002年,第179-190页·Zbl 1323.68374号
[40] G.Holzmann,“模型检查器SPIN”,IEEE TSE,第23卷,第5期,第279–2951997页。
[41] G.J.Holzmann和M.H.Smith,“基于模型提取的分布式系统软件自动验证方法”,IEEE TSE,第28卷,第4期,第364-377页,2002年。
[42] G.J.Holzmann,《带自旋的ansi-c代码的逻辑验证》。第七届国际SPIN研讨会,LNCS第1885卷,施普林格出版社,2000年9月,第131-147页·Zbl 0976.68554号
[43] G.Hwang、K.Tai和T.Hunag,“可达性测试:测试并发软件的方法”,《软件工程与知识工程杂志》,第5卷,第4期,1995年12月。
[44] D.Jackson和M.Vaziri,“使用约束求解器查找错误”,Mary Jean Harrold,(编辑),Proc。软件测试与分析国际研讨会,软件工程笔记,俄勒冈州波特兰,2000年8月,第14-25页,ACM出版社。
[45] 喷气推进实验室特别审查委员会,《火星极地登陆者和深空2号任务损失报告》,2000年3月。
[46] S.Khurshid、C.S.PăSăreanu和W.Visser,“模型检查和测试的广义符号执行”,Proc。TACAS 2003年第2619卷,LNCS,Springer-Verlag,2003年4月·Zbl 1031.68519号
[47] R.Lutz,“分析安全关键型嵌入式系统中的软件需求错误,见Proc。IEEE国际需求工程研讨会,IEEE计算机学会,1993年1月。
[48] K.L.McMillan,《符号模型检验》,Kluwer学术出版社,1993年。
[49] G.Naumovich、G.S.Avrunin和L.A.Clarke,“用于检查并发Java程序属性的数据流分析”,见Proc。第21届国际软件工程会议,ACM出版社,1999年5月,第399-410页。
[50] J.Penix、W.Visser、E.Engstrom、A.Larson和N.Weininger,《deos调度器内核中时间分区的验证》。第22届国际软件工程会议,ACM出版社,2000年6月·Zbl 1083.68575号
[51] A.Pnueli,“程序的时间逻辑”,第18届IEEE-CS计算机科学基础研讨会,第46-57页,1977年。
[52] A.Pnueli,“关于程序的从全局到模块化时序推理的过渡”,载于K.Apt(编辑),《并发系统的逻辑和模型》,第13卷,纽约,Springer,第123–144页,1984年。
[53] PolySpace。http://www.polyspace.com。
[54] C.Péséreanu、M.Dwyer和M.Huth,“软件的假设保证模型检查:比较案例研究”,见Proc。第六届SPIN研讨会,LNCS第1680卷,Springer-Verlag,1999年。
[55] C.S.PéSéreanu、M.B.Dwyer和W.Visser,“在模型检查抽象Java程序时发现可行的反例”,见Proc。TACAS 2001年版,LNCS第2031卷,Springer-Verlag,2001年·Zbl 0978.68641号
[56] J.P.Queille和J.Sifakis,“CESAR并发系统的规范和验证”,载于LNCS第137卷编程国际研讨会。斯普林格·弗拉格,1982年·Zbl 0482.68028号
[57] Robby、M.B.Dwyer和J.Hatcliff,“茂物:一个可扩展的高模块软件模型检查框架”,收录于ESEC 9/FSE 10,2003年9月,第267-276页。
[58] RTCA特别委员会167,“机载系统和设备认证中的软件考虑因素”,技术报告DO-178B,RTCA,Inc.,1992年12月。
[59] J.Rushby,“安全和安保分区:要求、机制和保证”,NASA承包商报告CR-1999-29347,NASA兰利研究中心,1999年6月。同样由联邦航空局发布。
[60] H.Saidi,《并行软件系统的模块化和增量分析》。第14届IEEE自动化软件工程国际会议,IEEE计算机学会,1999年10月,第92-101页。
[61] H.Saidi和N.Shankar,“证明时的抽象和模型检查”。第11届计算机辅助验证会议,LNCS第1633卷,Springer-Verlag,1999年7月,第443-454页·兹比尔1046.68608
[62] Sha,Klein和J.Goodenough,“实时系统的速率单调分析”,《实时计算基础》,第129-155页,1991年。
[63] G.S.Shedler,“再生随机模拟”,学术出版社,1993年·Zbl 0780.60083号
[64] Microsoft规范和检查研讨会,2001年,http://research.microsoft.com/speccheck/。
[65] S.D.Stoller,“模型检查多线程分布式Java程序”,载于SPIN模型检查和软件验证,LNCS第1885卷,Springer Verlag,2000年8月,第224–244页·Zbl 0976.68556号
[66] S.Tripakis和C.Courcoubetis,《实时延伸Promela和旋转》。TACAS 1996,卷LNCS 1055。施普林格,1998年。
[67] M.Vardi,“线性时序逻辑的自动机理论方法”,载于F.Moller和G.Birtwistle(编辑),《并行逻辑》,LNCS,1043,Springer Verlag,1996年,第238–266页。
[68] W.Visser、K.Havelund、G.Brat和S.Park,《模型检查程序》。第14届IEEE国际自动化软件工程会议,IEEE计算机学会,2000年9月。
[69] W.Visser、S.Park和J.Penix,“使用谓词抽象减少面向对象的程序进行模型检查”,载于Mats P.E.Heimdahl(编辑),Proc。第三届ACM软件实践形式方法研讨会,俄勒冈州波特兰,ACM出版社,2000年8月,第3-12页。
[70] C.D.Yang、A.L.Souter和L.L.Pollock,“并行程序的全路径覆盖”,载于软件测试与分析国际研讨会,ACM出版社,1998年,第153-162页。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。