软件所在Python程序的构建依赖分析方面取得进展

文章来源:软件工程技术研究开发中心  |  发布时间:2021-12-31  |  【打印】 【关闭

  

  近日,中国科学院软件研究所软件工程技术研究开发中心在Python程序构建中的依赖分析推断方面取得研究进展,该研究提出了知识驱动的Python程序依赖推断方法及工具,帮助开发人员提高代码复用效率,减少依赖缺失和依赖版本错误导致的Python程序构建和运行错误,为提升开发运维一体化中的应用构建自动化能力起到重要支撑作用。 

  Python语言是当前最流行的编程语言之一,尤其广泛应用于科学计算等。开发者常常通过代码复用提高开发效率。但是Python程序运行环境复杂,依赖于Python包、系统库和特定版本的Python解释器。缺少程序依赖,或者依赖版本不兼容,会导致程序构建失败和运行错误。 

  针对该问题,团队提出了一种知识驱动的Python程序依赖推断方法,包括知识图谱构建和程序依赖推断两个阶段。在知识图谱构建阶段,该方法收集大量多源异构数据,进行知识的抽取和融合,构建Python领域知识图谱。在程序依赖推断阶段,该方法基于领域知识图谱,通过程序分析和约束求解方法推断目标Python程序的多层次依赖。 

  基于上述方法,团队开发了PyEGo:知识驱动的Python程序依赖推断工具,实验结果显示,PyEGo工具的依赖推断成功率是已有方法的1.5-4.5倍,极大提升了程序构建的正确率和执行效率,团队依托该成果获得2021年第四届中国软件开源创新大赛(自由组)一等奖。 

  相关成果以“Knowledge-Based Environment Dependency Inference for Python Programs”为题被软件工程领域顶级会议ICSE 2022接收。该论文第一作者为硕士生叶宏杰,通讯作者为副研究员陈伟。该研究获国家重点研发计划等项目支持。 

Python程序依赖分析方法示意图