关键词:
软件维护
软件演化
分布式程序切片
软件修改
修改影响分析
摘要:
在软件系统的演化和维护过程中,软件系统会根据用户的需求的扩张发生改变,该过程需要进行软件修改。在实施软件修改之前,可以使用修改影响分析技术进行程序的理解、影响结果的预测以及成本评估等;在软件修改实施之后,可以通过该技术追踪涟漪效应、对修改结果的性能进行评估。因此对软件的修改进行影响分析在软件系统的演化和维护中非常重要。程序切片根据切片准则把程序分解,其中分布式程序切片则可以用来针对集群中不同主机中运行的各种程序进行动态程序切片。针对软件规模较大的程序可使用程序分解技术对其进行修改影响分析,可以结合程序切片技术进行修改影响分析的研究。本文主要研究分布式程序切片的基本理论及实践,提出在分布式程序切片中以四元组的方式保存分布式程序通信点信息,并开展基于程序切片的修改影响分析技术的研究。首先,通过解析源程序获取分布式程序通信点和完成代码插装,以方便在程序动态运行期间记录通信点信息,并使用这些信息构造分布式程序依赖图,完成分布式程序切片。其次,讨论传统的修改影响分析和基于调用图的修改影响分析技术,并提出基于程序切片的修改影响分析技术的计算过程和方法,使用前向切片研究基于程序切片的修改影响分析。然后,完成对分布式程序切片和基于程序切片的修改影响分析系统的设计与实现;经过实验与分析我们得出基于程序切片的修改影响分析技术比基于调用图的修改影响分析技术在准确度、精度、结果多样性等方面性能更加优越,并且基于程序切片的修改影响分析技术在影响分析实际应用中得到的结果更加客观、计算过程流畅、使用更加方便。最后结合针对开源软件的相关测试,验证本文基于程序切片的修改影响分析技术。