形式化方法是借助数学的方法来解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动。或者说,形式化方法是运用形式化语言,进行形式化的规格描述、模型推理和验证的方法。就形式化建模而言,形式化表示必须包含一组定义其语法语义的形式化规则。这些规则可用于分析给定的表达式是否符合语法规定,或证明该表达式具有某种性质。
形式化方法是基于严格数学基础, 对计算机软(硬)件系统进行形式规约、开发和验证的技术.其中, 形式规约使用形式语言构建所开发的软件系统的规约, 它们对应于软件生命周期不同阶段的制品, 刻画系统不同抽象层次的模型和性质, 例如需求模型、设计模型甚至代码和代码的执行模型等.形式验证是证明不同形式规约之间的逻辑关系, 这些逻辑关系反映了在软件开发不同阶段软件制品之间的需要满足的各类正确性需求.例如, 形式验证给出“系统设计模型满足若干特定性质”的证明构造.在形式规约和验证的基础上, 形式化开发主要是构造、证明形式规约之间的等价转换和精化关系, 以系统的形式模型为指导, 逐步精化, 开发出满足需要的系统, 也称为构造即正确的开发。
形式化方法还可说是由形式规约语言(包括形式语义与模型理论)、形式规约(包括精化与综合)、形式验证、形式化工具等形成的一个整体.其中, 形式规约语言是基础, 形式化方法中, 软件制品是规约语言编写/变换的形式规约; 形式验证是保证开发正确性的途径, 形式语义与模型理论是联接形式规约和形式验证的数学纽带。
形式化工具是系统设计和开发中高效使用形式化方法的需要和实践。
-----------------------------------------------------大象:Thinking in UML(第2版)