形式化方法,中文也称形式方法[1]、正规方法[2]。在计算机科学和软件工程领域,形式化方法是基于数学的特种技术,适合于软件和硬件系统的描述、开发和验证[3]。将形式化方法用于软件和硬件设计,是期望能够像其它工程学科一样,使用适当的数学分析以提高设计的可靠性和强健性[4]。但是,由于采用形式化方法的成本高意味着它们通常只用于开发注重安全性的高度整合的系统[5]。
测试只能表明程序中存在错误,而不能表明程序中没有错误。除非对程序进行的测试能够穷尽所有可能的场景,否则传统的测试手段无法完全保证系统的安全可靠。
可以说,唯有形式化方法才能从根本上确保系统的安全可靠,而这一点在安全关键的系统中尤为重要。
客观地说,形式化方法在电子硬件世界中有更多的成功应用——主要是因为硬件工具更标准化和稳定,而软件领域还未达到那样的程度。软件领域的系统设计、高层需求对应的模型,可能因为不具备足够的细节,无法对一些属性进行有意义的分析,形式化方法的应用效果、实用价值一般。目前,形式化方法在详细设计层面(Low-level requirement),对于软件行为等模型较为适用。