论文部分内容阅读
修改影响分析技术(Change Impact Analysis)是一种在软件演化过程中标识出软件的修改可能造成的后续影响的保障技术,它可以被有效地用于检测代码的语法和语义上的修改。修改影响分析技术提供的结果可以为开发者提供非常重要的信息,从而帮助他们做出正确的决策。它不仅统计出该阶段的所有开发情况,展现出系统的开发状态及缺陷分布,更重要的是还可以分析出源码中各种修改带来的影响范围,展现出不同类型的修改具有的风险程度,从而有效地避免和预防缺陷的引入。随着软件系统规模越来越大,功能越来越复杂,提高软件系统的可靠性的呼声也随之越来越高,因而预测进而控制源代码的修改可能造成的影响这种需求也随之越来越强烈。目前,针对修改影响分析的研究工作正在广泛的展开,典型的研究包括基于静态分析、基于动态分析以及基于历史分析的修改影响分析技术的研究工作等。主流的应用则包括在回归测试中的应用,在系统缺陷预防中的应用等。本文主要关注于后者。而在系统缺陷预防中,目前的研究方向主要集中于面向对象的程序的修改影响分析,而鲜有专门针对C程序的研究。本文成功地将修改影响分析技术运用于C程序中。通过定义一套原子修改度量单位,本文给出了一个能够估测出不同的软件版本之间的修改可能造成的潜在影响的方法。基于该套度量单位,本文实现了一个修改影响分析系统(Change Impact Analysis System,简称CIAS)用于收集实验数据。利用此系统,作者分别对曾经实习的软件公司的某商业软件和开源软件GCC源码进行了修改影响分析研究,并最终分别归纳出不同原子修改类型所具有的风险程度的修改影响分析报告。结果表明,修改影响分析技术能够在C程序缺陷预防中充分发挥作用。