现代软件项目依赖自动构建系统高效管理编译与集成流程。在基于 Make 的构建中,C/C++ 项目的不完整构建依赖声明常导致增量与并行构建错误或低效。由于依赖需手动枚举,开发此类构建脚本易引发严重依赖错误,如缺失依赖 (Missing Dependencies) 或冗余依赖 (Redundant Dependencies)。尽管软件工程界已投入大量精力检测此类错误,但因静态声明依赖不完整甚至缺失,现有方案或漏报关键错误,或在解析依赖时消耗过多时间与算力。

针对现有方法检测效能不足的迫切问题,软件研发效能实验室吕骏博士提出新型检测方法 BuildChecker。该方法利用动态生成的构建执行声明模型,高效检测 Makefile 中的缺失依赖和冗余依赖错误,有效提升检测精度并缩短检测耗时,为在实践中解决此类问题提供了突破性技术。
该研究成果《Detecting Build Dependency Errors by Dynamic Analysis of Build Execution against Declaration》已被软件工程领域国际旗舰期刊 IEEE Transactions on Software Engineering(TSE,CCF-A 级期刊)全文录用,南京大学为第一完成单位。此外,该研究与吕骏博士在国际顶级会议 ISSTA 2024(CCF-A 级会议)发表的《Detecting Build Dependency Errors in Incremental Builds》产生联动效果,形成系统化解决构建依赖问题的技术体系,共同实现对不同场景下构建依赖错误的高效检测,显著减轻开发者应对此类错误的负担。