论文部分内容阅读
软件工程中,软件维护是改进与增强已发布软件的过程。软件维护阶段修改软件以改正缺陷与不足,并添加新的功能来增强软件的可用性与适应性,在软件的整个生命周期中占据了越来越重要的地位。
大型软件项目,特别是开源软件的维护过程中,由于负责各个源文件的开发人员往往散布在不同地点,因此软件维护常以文件为粒度。变更影响分析,通过发现软件的同步更新关系以推到修改文件时可能需要变更的其他文件。缺陷定位,对软件系统新提交的缺陷预测到可能导致缺陷的源文件。国内外在这方面已经开展的一些研究工作大多局限于简单的分析手段且缺乏有效的评价度量。
本文首先分析并形式化地定义了软件维护的两个重要的信息源:缺陷跟踪系统与版本控制系统的历史信息;给出了它们的整合方法。其次给出了基于维护事务的源文件聚类算法;以得到的簇层级为基础,发现源文件间的同步更新关系,给出了软件系统模块的发现方法。而缺陷定位则首先引入了分类任务模型,采用多标签分类的惰性学习分类,得到所有源文件是新缺陷成因的信心并给出了选择方法。最后提出了衡量两种工作效果的评价尺度。