变换模型是基于形式化规格说明语言及
程序变换的
软件开发模型。它采用形式化的软件开发方法,对形式化的软件规格说明进行一系列自动或半自动的程序变换。最后映射成计算机系统能够接受的程序系统。采用变换模型的软件过程如概述图所示。
为了确认形式化规格说明与软件需求的一致性,往往以形式化规格说明为基础开发一个软件模型。用户可以从人机界面、系统主要功能、性能等几个方面对原型进行评审。必要时,可以对软件需求、形式化规格说明和原型进行修改,直至原型被确认时为止。这时软件开发人员就可以对形式化的规格说明进行一系列的程序变换,直至生成计算机系统可以接受的目标代码。
程序变换是软件开发的另一种方法,其基本思想是把程序设计的过程分为生成阶段和改进阶段。首先通过对问题的分析制定形式规范,并生成一个程序,通常是一种函数型的“递归方程”;然后通过一系列保持正确性的源程序到源程序的变换,把函数型风格转换成过程型风格,并进行数据结构和算法的求精,最终得到一个有效的面向过程的程序。这种变换过程是一种严格的形式推导过程,所以只需对变换前的程序规范加以验证,变换后的程序的正确性将由变换法则的正确性来保证。
变换模型的优点是解决了diam结构经多次修改而变坏的问题,减少了许多中间步骤(如设计、编码、测试等)。但是,变换模型仍有较大局限性,以形式化开发方法为基础的变换模型需要严格的数学理论和一整套开发环境的支持,形化开发方法在理论、实践和人员培训方面离工程应用尚有一段距离。