论文部分内容阅读
随着我国经济和社会的不断发展,核电已经成为我国能源战略重要组成部分。但是,单纯引进国外核电软件已不能完全满足我国核电发展的需求。一方面是我国众多的核电站正在使用这些对安全性要求很高的核电程序,另一方面是现有核电程序已不能完全满足现阶段我国核电发展的需求,于是核电程序自主化被提上了日程。然而,不仅历史遗留核电程序、当前应用或开发中的核电程序需要维护,而且核电程序开发过程中经常用到的原有核电程序也是维护的主要对象,而软件维护过程的绝大多数时间用于理解目标系统,软件维护工作的成败取决于能否快速、准确、全面地理解软件源程序。因此对原有核电程序的程序理解就成为十分迫切的需求。程序切片是一种辅助理解程序的分析技术,该技术针对源程序中某个兴趣点把程序减少到只包含与该兴趣点相关的那些语句,准确回答“哪些程序语句潜在地影响了语句S中变量v的值”这样一个问题。程序切片可以应用于程序理解、程序分析、调试、测试、软件维护和软件质量保证等诸多方面。在面向对象设计中程序特有的层次结构以及消息传递、类、对象、继承、多态、动态绑定等特性,使得适用于过程化的分析技术不足以表示面向对象的程序系统,因此关于面向对象程序的切片技术在近些年越来越受到重视。本文首先研究了核电程序程序理解过程中应采用的程序理解技术以及程序理解模型,总结了核电程序程序理解的过程,重点介绍了核电程序程序理解过程中数学模型的建立过程。本文以标准的C++语言为研究对象,深入研究程序切片计算方法,对简化的系统依赖图SSDG,改进了描述面向对象程序系统的依赖图OSDG及其生成算法,并基于此依赖图给出了一种理解面向对象程序的类方法切片计算方法,类方法切片描述了类方法之间的调用关系。另外,基于OSDG图设计了面向对象程序系统的切片生成工具(简称OSDG_SPT)模型,用于支持核电程序的辅助理解。通过对切片结果的分析可以看出:用OSDG_PST切片得到的结果精确,有效地减少了切片结果的大小,便于以后的分析处理。