软件研发效能实验室博士生吕骏在软件构建维护领域取得突破进展

发布日期:2024-05-06 浏览次数:


软件构建在现代软件项目中居核心地位,软件构建的有效性和效率一直是软件工程社区最为关注的话题之一。现代软件项目常依赖于增量构建来快速响应软件变更,但增量构建的正确执行依赖于构建脚本的正确性。不幸的是,构建脚本中普遍存在构建依赖错误,主要包括缺失依赖和冗余依赖。大量且不断累积的依赖错误严重影响了增量构建的有效性,并影响着后续的测试验证和缺陷定位效率。此外,现代软件通常提供不同的配置以适应用户不同的需求和场景。对于软件开发者和用户而言,他们希望所有的配置都可以有效工作,这些配置有效的验证途径是构建尽可能多甚至所有的配置来测试构建的制品是否符合期望。多配置软件的构建给开发人员带来了极大的软件构建负担和计算资源的需求。为了解决上述挑战,软件研发效能实验室博士生吕骏等创新性地提出了软件构建依赖错误检测方法(EChecher)和提升多配置软件构建效率方法(BUDDI)及工具。



针对构建依赖错误检测问题,吕骏等同学提出了在增量构建中维护软件实际依赖图的方法——EChecker,通过结合对构建脚本和源代码中预编译指令的分析能够有效且高效地完成对软件项目构建依赖错误检查。与最先进的方法对比,EChecher平均提升了检测效率85.14倍。该工作首次使用增量构建来完成构建依赖错误检查,为构建依赖错误检查带来新的视角和方向。


此项工作研究成果,《Detecting Build Dependency Errors in Incremental Builds》已被软件工程学科国际顶级学术会议ACM SIGSOFT International Symposium on Software Testing and Analysis 2024(CCF-A级会议)全文录用。



针对多配置软件构建效率问题,吕骏等同学提出了使用增量构建来构建多配置软件,并通过对配置进行排序以达到加速所有软件配置构建的目的。BUDDI分析所有软件配置间的构建目标和构建指令,通过计算它们之间的相似度和预测配置的构建时间来完成排序。与随机构建顺序相比,BUDDI优于96.5%的随机顺序并平均减少了305.94s的构建时间。该工作首次验证了使用增量构建并通过排序能够显著提升多配置软件集的构建效率,能够有效缓解现代软件项目面临的巨大软件构建负担。


此项工作研究成果,《Towards Efficient Build Ordering for Incremental Builds with Multiple Configurations》已被软件工程学科国际旗舰级学术会议ACM International Conference on the Foundations of Software Engineering 2024(FSE,CCF-A级会议)全文录用。


以上两项研究工作均由张贺教授指导完成,所发表了成果论文均以南京大学为第一单位。