论文部分内容阅读
遗产软件系统是指那些运行多年,承担用户的关键业务并且随着计算平台的变迁和业务需求的发展不断进行维护和更新的软件系统.遗产代码维护人员的短缺,以及现代计算环境的变迁都给遗产软件系统的维护带来困难.一种可行的方法就是采用源代码翻译方法将其转换到现代语言或环境中.本文首先对Cobol和Java语言之间的不同点进行了对比,然后分析了几种主要的遗产代码迁移策略.基于以上的分析,本文设计和实现了一个将Cobol源代码翻译到Java源代码的系统——Cota翻译系统,解决了Cobol2Java实践中遇到的条件名变量转换、数据对象模型映射、控制流重构、动态调用以及文件和数据库访问等一系列关键问题.在这一过程中,本文深入研究了源代码翻译中的数据类型转换问题,控制流结构化问题和用户界面迁移问题,针对这三个问题分别提出并实现了自动化的功能等价的转换方法可以有效的将遗产代码迁移到目标平台.同时本文还研究了Cobol2Java转换中的多精度数据算术优化问题,提出了优化算法,可以将算术运算密集型的Cobol程序性能提高近98%.本文的主要贡献有:(1).设计并实现了一个自动化的Cobol2Java源代码翻译器,可以作为再工程(re-engineering)或遗产代码迁移研究的平台.(2).设计并实现了一个纯Java的Cobol核心语义支持库,其中包括对遗产文件数据的读写支持.通过这种核心库的支持,用户可以直接在web环境中开发具有Cobol功能的商务程序,从而利于维护成本的减少和与新应用的集成.同时,可以帮助Java程序员或Cobol程序员相互学习,从而有助于培养和训练胜任的遗产代码维护人员.(3).提出了一种新的基于类型封装的自动化的数据类型映射方法,可以同时支持低级的存储访问和类型访问,对保证目标码的功能等价性具有重要作用.(4).提出了基于switch和递归调用的控制流转换方法,可以解决Cobol程序中的perform和goto耦合的控制流结构化问题.和其他方法相比,本方法可以有效控制目标代码的膨胀,并且具有较好的可读性.(5).提出了基于十进制表示的多精度数据算术优化的方法,设计并实现了一个新的多精度数据类型的Java算术库,实验表明这个新的算术库比Java中的BigDecimal在十进制算术运算方面快98%左右.(6).提出了一种基于停止-等待协议的自动化界面转换方法,可以有效地改变界面的交互方式,将基于字符终端界面的程序迁移到web平台.