形式化方法应用计算机科学的理论基础来解决软件中的难题,例如证明软件不会因运行时错误而失败。一个例子是抽象的解释一种严格的数学方法来证明软件的正确性。用于验证目的的正式方法(也称为形式验证)可以帮助提高软件的可靠性和健壮性。
传统的软件验证方法依赖于测试来验证行为和健壮性,但是测试只能显示错误的存在,而不能显示错误的不存在。相反,形式方法使用数学来证明某些事实或属性。因此,验证基于正式方法的技术可以最终证明软件的某些属性,比如证明软件是否包含运行时错误,包括溢出、除以0和非法解除引用指针。
使用与静态代码分析执行代码验证以识别和诊断运行时错误。使用这个过程产生的度量来度量和改进软件质量。因为正式的基于方法的静态代码分析是自动化的,所以您可以在不执行软件或开发测试用例的情况下进行这种分析。
您可以使用静态分析工具,使用正式的方法来完成以下任务:
- 检测难以捉摸的运行时错误
- 证明没有某些运行时错误
- 生成代码质量度量并检查源代码是否符合代码标准,如MISRA-C/ c++和JSF++
使用这种全面、完整的方法,您可以识别代码中的每一个故障点,这些故障点可能是已证实的故障、未证实的故障、可能永远不会执行(死代码)或未证实的故障。抽象解释首先用于验证Ariane 5号运载火箭的软件,以检测将64位浮点变量转换为有符号16位整数的溢出错误。它是第一个通过基于形式化方法的抽象解释进行大规模静态代码分析的示例。
有关详细信息,请参见Polyspace®下载188bet金宝搏产品。