浅析形式化描述方法的应用
文/冯松军
形式化方法是一种使用严格的数学模型和方法准确、抽象、
规范地描述和验证软件系统的行为和性能的方法,其中主要包括
软件的需求规格、设计和实现等。使用这种描述方法可以帮助开发
者发现软件系统的设计、实现和程序中的问题和缺陷,能够较好
的提高软件系统的正确性和可靠性。本文介绍了形式化方法的基
本内容、分类以及应用等方面,分析了其思想和应用情况,以及
形式化方法在软件工程中的优势和可靠性,并列举了一个简单的实例。
#@OEF9qm'V0
【关键词】软件工程 形式化描述 形式规约语言 Z 语言
1 引言
随着计算机硬件和应用技术的快速发展,软件工程和软件开发技术也发展迅速,那么在
这种情况下,开发出正确的、可靠的、安全的、可扩展的、结构复杂的软件就变得越来越重要,
形式化描述方法的出现成为了解决此问题的一种方法。软件工程和设计模式的规格和功能描
述可以采用非形式化和形式化描述两种方法,非形式化的描述方法主要有自然语言、流程图
等,但是这种方法存在一定的局限性、不准确性和易混淆性。而形式化描述方法则是使用严
格的数学方法进行描述,并且具有严格的语法和语义定义,可以准确、抽象、规范地描述软
件系统的模型、功能和规格,从而提高软件的正确性和可靠性,更好地满足用户的需求。
.P0v#^NOa;x0
2 形式化方法的介绍
2.1 形式化方法的含义
形式化方法(Formal Method)的基本含义是借助数学的方法来研究计算机科学中的有
关问题。形式化方法提供了一个框架,在框架中可以用数学的方式开发和验证系统。在软件
开发的全过程中,凡是采用严格的数学语言,具有精确的数学语义的方法,都可称为形式化的方法。总之,形式化方法是软件开发过程中
规格、设计及实现的系统工程方法,是软件规格和验证的方法。而形式化的软件开发就是用
形式化语言来描述软件的需求和功能,并通过推理验证来保证最终的软件系统实现了这些需
求和功能。形式化方法的规格描述所采用的形式化描述语言是严格的数学语言,其语法和语
义都是无二义的、精确的,目前形式化规格描述语言主要有 Z 语言、VDM 语言等。因为形
式化方法使用具有精确的、一致性的和完整性的数学符号来描述软件系统,因此只要保证软
件规约对实际问题描述的正确性,就能确保软件系统实现的完备性与可靠性。
中国论文网*_#N4c0T;v-v_u
Z-m~|;~9v/rT.v0
2.2 形式化方法的内容
软件开发的形式化描述方法有两个重要内容:形式规约 (Formal Specification) 和形式
验证 (Fomal Verification)。形式规约是用具有精确语义的数学语言描述程序的功能,它是
设计和编写程序的依据。其中典型的是基于状态的描述方法,利用一些已知特性的数学抽象
(域、元组、集合、序列、包、映射等)来为软件系统的状态特征和行为特征构造模型。形
式验证与形式规约之间有着密切的联系,形式验证就是验证最终的程序是否满足其规约的要
求,这是形式化方法重要的问题。形式化方法是用数学方法解决计算机科学研究和软件工程
中程序开发问题的工具,集合论、数理逻辑、代数理论、范畴论、抽象构造类型论等数学理
论是形式化方法坚实的理论基础。在形式化描述中,数据抽象和过程抽象
是软件规格过程中的两类重要抽象。数据抽象又称为表示抽象,是利用抽象的数据结构(如
关系、函数等)来进行功能性的描述,而不关心这些抽象数据结构在计算机中是如何表示和
实现的;过程抽象是指忽略任务具体完成的过程,而只精确描述该任务所要完成的功能,即
描述了从输入到输出的映射,该映射的定义域和值域均使用数据抽象来刻画。