开发人员常采用拷贝-粘贴的方法实现软件复用,使得大型软件系统随着功能的不断添加,重复代码越来越多,结构越来越复杂,系统越来越难于理解和维护。针对软件复用时常引入重复代码相关的软件缺陷的问题,以及越来越多的领域需要在遗产系统逆向工程和重构基础上构建软件的应用背景,本项目结合数据挖掘和程序静态分析两项核心技术,将重复代码及相关软件缺陷检测融合为一个整体。基于频繁子序列挖掘技术检测重复代码,使其能够识别大型软件中经过增删改的重复代码,同时融合程序静态分析技术,检测现有软件缺陷检测方法不易检测的大型软件中与重复代码相关的语义和逻辑缺陷,为应用于能源、航空航天等安全攸关软件的缺陷检测、维护和重构,以及提高软件质量奠定理论基础,具有重要的科学理论意义和实用价值。
英文主题词software bug detection;duplicated code;data mining;program static analysis