前 言

2024-04-01 03:03李戈,邢颖,刘芳
计算机研究与发展 2024年2期
关键词:代码准确性建模

在当前的科技发展背景下,生成式人工智能(artificial intelligence, AI)已经开始为软件工程领域赋能,并衍生为一种新的生产力. 生成式AI 将大大加速软件开发过程,减少测试的时间和人工成本,提高测试的覆盖率、准确性和可靠性,增强代码的质量和可维护性,同时帮助软件管理人员更好地进行项目管理与维护,提供自动化软件部署方式,并推动软件开发效率和质量的快速提升. 以ChatGPT 为例,其自问世以来,已经被应用在软件工程领域并得到了初步的探索. 生成式AI 作为一种新颖的简化代码开发方式,使得测试用例的开发流程与技术手段更加简单、高效.

为反映生成式AI 在软件工程领域中的相关研究前沿进展与实践,并推动国内相关研究向深度发展,我们组织了“生成式AI 与软件自动化”专题,邀请领域专家对代码合成评价指标、代码摘要生成、基于扩散模型生成数据、基于大模型进行需求获取等生成式AI 和自动化软件工程的重要问题进行专题讨论.

评估指标在代码合成领域中具有至关重要的作用. 常用的代码评估指标可以分为3 类:基于匹配、基于语义和基于执行. 其中,基于执行的Pass@k 指标通过执行测试用例,能够准确判断预测代码的功能准确性. 然而,该指标的计算需要大量开销,因此亟需设计一种自动化评估指标,在无需测试用例时仍可评估预测代码的功能准确性. 此外,好的评估指标应当具有鲁棒性,即预测代码发生微小改变时,评估指标仍能保持其准确性. 为此,杨光等人提出了一种基于UniXcoder 和对比学习的自动化鲁棒指标CodeScore-R,用于评估代码合成的功能准确性.CodeScore-R 采用草图化处理、语法等价转换和变异测试等技术手段,有效减轻了标识符、语法结构和运算符对评估结果的干扰.

代码摘要是源代码的重要组成部分,可以提高开发人员对程序的理解效率. 近年来,代码自动摘要在方法级别代码片段上的研究得到了广泛关注. 然而,对于面向对象的语言,如Java,类才是项目的基本组成单元. 为了解决这个问题,陈豪伶等人提出了一种名为HRCE(hierarchical representation and context enhancement)的类摘要生成方法,并构建了一个包含358 992 个Java 类的类摘要数据集. HRCE 方法使用代码精简策略来删除类中的非关键代码,从而减小代码长度. 然后,通过对类的层次结构、属性和方法进行建模,获得类的语义信息和层次结构信息. 此外,还通过提取项目中父类的签名和摘要来捕捉类与项目中其他类的关系上下文. 这种基于分层表示和上下文增强的方法可以更好地生成高质量的类摘要.

软件代码测试中存在数据不平衡的问题,这会影响模型的预测精度,并且还未考虑用户的隐私保护. 为了解决这些问题,生成伪造数据成为一种重要的解决方法. 然而,在以结构化数据为主的场景中,由于存在数据特征维度多且不相关等特点,生成高质量的数据具有一定的挑战性. 针对这一问题,杨斌等人以客户流失预测为典型应用场景,尝试将扩散模型应用到预测任务中. 他们提出了一种基于高斯扩散模型和多项式扩散模型的数据生成方法,并对模型预测效果和数据隐私保护能力进行了研究和分析. 通过将路径探索过程均摊到多个工作线程中,并在线程间共享约束求解信息,以提高求解缓存的命中率,他们的方法实现了预测任务中的符号执行效率的提升,为符号执行技术的进一步发展和应用提供了一种有效的解决方案.

需求获取和建模是需求工程中至关重要的步骤,对后续系统设计与实现产生深远影响.然而,传统的需求获取和建模方法通常需要由多类干系人,如需求提供者和需求分析师等共同协作、反复迭代完成,耗费大量人力. 因此,如何减轻需求提供者和需求分析师的负担,提高获取和建模的效率具有重要意义. 靳东明等人利用大语言模型(LLMs)的生成能力,提出了一种名为ChatModeler 的人机协作的迭代式需求获取和建模框架. 具体而言,根据真实世界中需求团队的分工和协作关系,他们将部分需求提供者和需求分析师的工作由大语言模型承担,从而显著减轻了人们的负担,并实现了需求获取和建模的效率提升.

生成式AI 与软件自动化是一个引人注目的领域,它为软件开发和自动化带来了新的机遇和挑战. 本专题的出版对于促进生成式AI 与软件自动化领域的研究具有重要意义,希望能够激发更多的创新思维和研究成果. 虽然本专题的篇幅有限,无法覆盖该领域的所有最新研究工作,但我们相信它可以为研究人员提供帮助和启发.

在此,我们衷心感谢《计算机研究与发展》提供这个宝贵的机会,使得本专题论文得以顺利出版. 同时,由衷感谢所有的作者、审稿专家和编辑部工作人员,他们的全力支持和辛勤付出为本专题的成功发表做出了重要贡献. 感谢他们对生成式AI 与软件自动化领域的贡献和努力,希望这个专题能够为该领域的研究提供一个有益的平台,进一步推动相关研究的发展.

猜你喜欢
代码准确性建模
浅谈如何提高建筑安装工程预算的准确性
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
创世代码
创世代码
创世代码
创世代码
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
美剧翻译中的“神翻译”:准确性和趣味性的平衡
论股票价格准确性的社会效益