一、定义:形式化方法是一种基于数学的技术,是描述系统性质的基于数学的技术,也就是说,如果有一种有坚实的数学基础,那它就是形式化的。它适用于软件和硬件系统的描述、开发和验证,是期望能够像其他工程学科一样,使用适当的数学分析以提高设计的可靠性和强健性。根据形式化的程度,可以把软件工程方法划分为非形式化、半形式化和形式化三类。
二、形式化方法有以下优点:
1、能够简洁准确的描述物理现象、对象或者动作的结果,是理想的建模工具。
2、可以在不同的软件工程活动之间平滑的过渡。
3. 形式化的规格说明消除了二义性。
4. 它鼓励软件开发者在软件工程过程的早期阶段使用更严格的方法,从而可以减少差错。
三、缺点
大多数形式化规格说明主要关注于系统的功能和数据,而问题的时序、控制和行为等方面却更难于表示。此外,形式化方法比欠形式化方法更难学习,不仅在培训阶段要花大量的投资,而且对某些软件工程师来说,它代表了一种“文化冲击”。
四、总结
形式化方法在软件工程领域有广泛的应用。形式化方法可以提高软件和硬件系统的可靠性和强健性,但形式化方法通常只用于开发注重安全性的高度整合的系统。