从软件工程的角度来看,形式化方法是一种通过严谨的数学方法来验证和证明软件设计正确性和可靠性的方法。它通过规范化和标准化的模型、符号和过程来确保对软件系统的需求分析、设计和实现过程的正确性、一致性和完整性。
前期的形式化方法主要用于表示和规范软件系统的要求和设计。为此,研究者们引入了各种形式化技术,例如Petri网、有限状态自动机、形式文法等来表示软件系统的结构和行为,同时引入一些形式化工具如Z语言、VDM、B语言、TLA+ 等来支持软件系统的规范化描述。
在软件开发的实际过程中,形式化方法用于支持软件验证与测试,特别是常用的测试方法(如黑盒测试和白盒测试)往往不足以覆盖全部的软件功能和异常情况。形式化方法基于逻辑推理,能够对软件系统进行全面的验证和评估,提高软件质量与可靠性。
因此,形式化方法在开发高可靠、嵌入式、安全性要求高的系统中会更为适用,例如航空航天工程、医疗设备、铁路控制系统、核电站控制系统等。