1、什么是形式化开发方法?
首先,形式化软件开发的核心要求,就是保证软件的正确性、规范性。因此,形式化方法适用于对安全性、可靠性、保密性要求极高的系统开发。
形式化方法是指将数学的方法用于解决软件工程领域的问题,主要包括建立精确的数学模型以及对模型的分析活动。(因为数学是准确的建模媒体,能够对现象、对象、动作等进行简洁、准确的描述。所以才使用数学语言和方法)
形式化开发方法分为三个层次:
-
【形式化规格方法】:用数学语言描述软件期望。将自然语言的矛盾,二义性、含糊性等系统性刻画。具有严格的语义和语法。描述的是“做什么”。
-
【形式化验证方法】:验证用户需求是否满足。“形式化规格”之后即进行“形式化验证”。目的是早期发现错误,及时改正,减少修改代价。
-
【逐步执行落地】:将在“形式化规格方法”步骤高度抽象出来的模型,逐步的变为可执行的方法。
与非形式化方法的比较
- 由于非形式化的方法本身存在二义性、模糊性和不完整性等情况,使得所得到的规格说明书不能准确地刻画系统模型,甚至会为以后的软件开发留下隐患。
- 而对于形式化方法来说,由于其基于严格的数学描述,具有严格的语法和语义定义,从而可以准确地描述系统模型,避免了二义性和模糊性等情况。
2、形式化开发方法面临的困难
-
软件形式化开发还处在起步阶段,许多问题尚未研究,很多标准尚未制定。
-
一般而言&#x