证明软件不会因运行时错误而失败
形式化方法应用理论计算机科学基础来解决软件中的困难问题,例如证明软件不会因为运行时错误而失败。一个例子是抽象的解释,一种严格的数学方法来证明软件的正确性。用于验证目的的形式化方法(也称为形式验证)有助于提高软件的可靠性和鲁棒性。
传统的软件验证方法依赖于测试来验证行为和鲁棒性,但是测试只能显示错误的存在——而不是错误的不存在。相比之下,形式化方法用数学来证明某些事实或性质。因此,验证基于形式化方法的技术可以最终证明软件的某些属性,例如证明软件是否包含运行时错误,包括溢出、除以零和非法解引用指针。
使用形式化方法与静态代码分析执行代码验证以识别和诊断运行时错误。使用这个过程产生的度量标准来度量和改进软件质量。因为形式化的基于方法的静态代码分析是自动化的,您可以在不执行软件或开发测试用例的情况下进行此分析。
您可以使用使用形式化方法的静态分析工具完成以下任务:
- 检测难以捉摸的运行时错误
- 证明没有某些运行时错误
- 生成代码质量度量并检查源代码是否符合代码标准,例如MISRA - C和JSF + +
通过这种全面、完整的方法,您可以将代码中的每个故障点确定为已证明失败的、已证明没有失败的、可能永远不会执行的(死代码)或未被证明的。抽象解释首先用于验证Ariane 5运载火箭的软件,以检测将64位浮点变量转换为带符号16位整数的溢出错误。这是第一个通过形式化方法的抽象解释进行大规模静态代码分析的例子。
详情请参见Polyspace®2022世界杯八强谁会赢?产品。
例子和如何
-
DO-178认证咨询服务- MathWorks Consulting
软件参考
参见:Polyspace产品的静态分析2022世界杯八强谁会赢?,验证、验证和测试,嵌入式系统,抽象的解释,代码评审,圈复杂度,正式的方法,软件度量,软件质量保证,软件质量目标,源代码分析,静态代码分析,形式化方法视频