VDM --VDM是在1969年为开发PL/1语言时,由IBM公司维也纳实验室的研究小组提出的,VDM是一种功能
构造性规格说明技术,它通过一阶谓词逻辑和已建立的抽象数据类型来描述每个运算或函数的功能,这
种方法在90年代初在欧美许多研究机构或大学得到了广泛的应用。 VDM技术的基本思想是运用抽象数据
类型、数学概念和符号来规定运算或函数的功能,而且这种规定的过程是结构化的,其目的是要在系统
实现之前简短而明确地指出软件系统要完成的功能,由于这种形式化规格说明中采用了数学符号和抽象
数据类型,从而可使软件系统的功能描述在抽象级上进行,完全摆脱了实现细节,这样为软件实现者提
供了很大的灵活性,此外,这种形式化规格说明还为程序正确性证明提供了依据。应用VDM技术进行
系统开发包含了形式化规格说明、程序实现和程序正确性证明三个部分。 使用VDM规定形式化规格
说明具有以下三个明显的优点: ⑴ 只告诉计算机做什么; ⑵ 提供了程序正确性证明的依据; ⑶ 使
规格说明描述简练、精确。 除了这三个明显的优点外,使用VDM还可以培训程序设计者牢固树立先
抽象、后具体的不断证明其正确性的逐步分解的自顶向下的开发思想,从而在整个程序开发的全过程中
用系统而严密的方法保证所开发的程序的正确性。但是,VDM也存在一些不足之处: ⑴ 由于VDM
对抽象数据类型预先定义了运算,而某些用户定义的类型在规格说明描述中无需这么多运算,因而产生
了运算冗余。 ⑵ VDM目前还未能建立一整套描述机制,将一个大型系统分解为许多运算而描述出这些
运算之间的关系 ⑶ 由于采用数学符号和抽象数据类型,VDM形式规格说明过于形式化往往不容易理
解,这有可能造成未读懂形式规格说明而错误地实现其软件的情况。
Z-- Z以经典集合论和一阶谓词逻辑为基础,提供了一种称为模式的结构,以此来描述一个规格说明的
状态空间和操作。Z规格说明由一系列模式组成,每个模式定义一个抽象对象或操作,并用谓词判定描
述给出新的对象或操作的语义约束。Z模式说明可以组合成新的Z模式,新的Z模式继承其成分模式的
一切属性和约束。这样,软件系统的Z模式规格说明可以按一定的层次结构给出。模式的使用为规格说
明提供了一种演算,通过这种演算,无论多么大型系统的规格说明都可以通过一个个小的部分来构成。
基于一阶谓词和集合论的形式规格说明语言Z,利用模式和模式演算对目标软件系统的结构和行为特征
进行抽象描述,其中状态模式对目标软件系统的结构特征进行抽象描述,操作模式对目标软件系统的行
为特征进行抽象描述。这是一种具有特色的有效的形式化方法,但是Z语言还存在如下缺点: ⑴ Z语
言对大型系统的模块化能力不足。因为在Z语言中,目标软件系统的结构和特征都用模式来描述,随着
系统的增大,模式也会越来越多,而Z语言中没有更加有效的机制来管理这些模式,最终导致Z规格说
明难以阅读。 ⑵ 难以识别影响某一状态模式的所有操作模式。因为在Z语言中,一个操作模式可能涉
及多个状态模式,为了确定能影响特定状态模式的所有操作模式,就需要逐个检查全部操作模式的声明
部分,这对于大型软件系统的规格说明来说是不实际的。 ⑶ 不能支持规格说明的重用。Z语言中没有
提供重用机制。 ⑷ Z语言难以由计算机直接处理。因为在设计Z语言时,只是考虑到把Z语言作为一
种严格的描述手段并没有考虑到将来由计算机辅助进行Z语言应用,所以许多Z语言符号在计算机中没
有对应的键,难以进行规格说明的输入和自动化处理。 为了克服Z语言这些缺陷,80年代末到90
年代初相继提出了一些Z语言的扩展方案,也进行了一些标准化工作,国际上在90年代初提出形式化
方法和面向对象方法相结合的思想,虽然有所发展,但因缺少商品化的工具支持等到诸多原因,而不能
大量的实际应用,因而还需进一步完善。
B-- ⑴ 概要 B是计算机辅助软件工程中B技术、方法和工具集的简称,B(包含B方法,B工具,
B工具盒)是一种健全的面向实际软件过程的基于数学理论的技术,B方法所用的符号和方法支持大部
分的软件过程:需求分析、规格说明、软件设计、实现和维护,分层软件的逐步构造伴随着逐步的验证
和校验是B方法的指导性原则;B工具盒包括有大量的工具,所有的工具集成在一个基于窗口的软件开
发环境中,这些工具能集成地自动运行,因而支持运用B方法开发软件的整个软件过程;B工具支持软
件的逐步构造,其中的验证过程可用静态分析,动态分析采用模拟技术,正确性证明则使用集成的定理
证明器。
⑵ B方法 B方法用一种简单的伪程序语言来描述需求模型、说明接口,并进行中间设计和实现,
这个语言就是AMN(抽象机器符号),AMN支持规格说明的类型检测、动态验证、数学证明等来确
保设计过程的正确。分步开发可以减少大型软件开发的复杂性,分层次的方法可以将高层实现表示成低
层的规范,一个完整的开发就是逐步实施的规范---实现的过程,规范----实现过程在最低级的实现可
以从预先实现的可重用的构件库中得到,高级的复用也可通过不断扩展新的部件库从而支持整个开发过
程,每一层的实现过程是将规范翻译成可维护的独立编译的源代码和可执行指令的过程,AMN中结构
化的机制象其它面向对象方法一样,增强了信息隐藏和数据封装,严密的部件接口控制确保了大型开发
中各个部件的独立开发。
⑶ B软件过程 B严密管理控制整个软件过程,在软件开发早期规格说明阶段,开发人员将对照用
户的需求来验证测试系统需求模型的一致性,在每个开发阶段,每个设计描述都将与规格说明的需求文
档对照其一致性,最低一级的设计部件由预先定义的可靠的部件库组装得到,并翻译成可执行代码,可
靠的预定义的构件通过测试或重用生成(许多部件已经为B工具集所应用),新的低层构件也可以进一
步添加,这些添加的构件可通过已存在的可靠的部件开发,并测试得到他们的属性。