修复软件制品中的不一致(也称错误)是软件开发中的一项基本活动。为了帮助用户修复不一致,部分软件系统提供交互式修复,比如Eclipse对Java编译错误提供Quick Fix,嵌入式操作系统eCos为配置错误提供修复建议等等。交互式修复显著减轻了修复不一致的工作量,但由于开发修复生成模块成本较高,目前只在少数系统中有应用。本项目的目标是,给定用对象模型表示的软件制品,通过分析软件制品上的约束和用户的修改历史,自动的生成高质量的交互式修复列表。同现有工作相比,本项目包含如下三点创新一、引入约束求解程序,利用其强大的分析能力更高效地生成修复;二、合并同类别的修复,增强修复列表的可读性;三、通过挖掘用户的编辑历史,过滤掉不常用修复,提高修复列表的质量。通过本项目的执行,在理论上我们期望建立起交互式修复的理论模型,在实践上我们期望大大降低修复生成程序的开发成本,拓宽交互式修复的应用范围。
英文主题词Software Defects;Automatic Repair;;;