● 摘要
在软件的开发、运行、维护过程中,为了修复已有的缺陷、满足新的需求或者适应新的操作环境等,软件变更是不可避免的。变更是软件演化过程中的重要活动,特别是软件维护阶段,软件维护40%的花费都用在变更上,而对变更及变更传播的不了解是增加变更成本和风险的重要原因。因此分析软件的变更和变更传播对程序员进行软件维护和程序理解具有重要意义。本文运用代码分析与软件库挖掘的理论和方法,针对软件变更的度量和分析技术进行了研究,具体的内容包括:1) 提出了一种多视角与多粒度的软件变更复杂度度量模型。首先,基于抽象语法树匹配解决了不同抽象层次原子变更识别问题,并定义相应的度量指标,解决了软件变更的量化度量问题。其次,基于SVN版本库实现自动化变更度量工具CMT,提高了变更数据的收集效率。最后,通过对三个开源软件的变更度量与分析,验证度量方法的合理性,并总结了三个开源软件的变更过程中潜在的规律。2) 提出了一种基于仿真的变更传播评估方法。首先,给出了变更的传播模型、评价指标以及指标的仿真计算方法,避免了传统的概率计算或者贝叶斯计算方法在处理双向环的缺陷。其次,根据变更历史信息给出了软件变更传播概率的经验值,并通过实例验证了基于仿真的变更传播方法的合理性。
相关内容
相关标签