摘 要
随着计算机技术的飞速发展,产生了越来越多的遗产系统,对这些系统进
行维护和升级是软件工程师们经常要面对的问题。要对遗产系统进行维护和再工
程,就需要用逆向工程技术对当前系统的结构和行为进行理解。作为软件工程中
的~种新技术,逆向工程能够分析目标系统,确定系统的组件和它们之间的相互
关系,并以另一种形式或者在更高的抽象级别上建立对系统的表示,从而帮助
维护人员理解并重构软件系统。
形式化方法对于软件的发展,尤其是正向工程方面提供了许多好处。形式化
方法的一个优点是它的表示是精确的、可验证的,这样有助于使用自动化的处理。
一种利用形式化方法优点的方式就是通过对现有程序代码进行逆向工程来得到
形式化规约。
本文描述的逆向工程中的形式化方法采用最强后置条件谓词转换技术和
Hoare理论中有关程序语义的部分正确性模型,研究的重点是利用形式化技术和
非形式化技术对程序代码进行逆向工程,以支持软件理解和维护。针对C程序的
基本语法结构定义了赋值语句规则、选择语句规则、循环语句规则、顺序语句规
则和函数调用规则,建立了一个最小的公理系统。介绍了以C—Minus语言(自定义
的一种简化的C语言子集)为实例进行逆向工程的过程。在进行逆向分析的过程
中,首先对源程序进行词法
原创力文档

文档评论(0)