智能化软件开发微访谈·第十九期暨2022新年特辑:软件智能化开发:进展与挑战...

b9aa73d9a9cff5fd1b79db89d8955516.png

c5a99da942ef3a29884096dcb5e64a86.gif

93db7f4d8b32a56e4f230f23ad88621a.gif

63a59634b6fc7fd565bdd35d3f4e9256.gif

7c7a9590d84aab41f8566d71bace0daf.png

CodeWisdom

智能化软件开发沙龙是复旦大学CodeWisdom团队参与组织的专注于代码大数据与智能化软件开发的学术和技术沙龙,面向相关领域的学术界研究者和工业界实践者,通过各种线上和线下交流活动促进学术研究与实践技术的发展。微访谈是智能化软件开发沙龙依托沙龙微信群开展的线上交流活动,其形式是围绕某一具体话题邀请嘉宾进行在线访谈并与微信群成员互动。

3fa9b734ceefb07c5613ab67b46add3f.png

软件智能化开发·进展与挑战

2722989f6e7bafbbb91d084f130536fe.png

outside_default.png

智能化软件开发微访谈·十九期

2022新年特辑

2c3b336f5c210fba10d9b366d1aca031.gif

e3e668d2304a6748fb74c9b86ab1d19f.gif

629c549ab8b77e479f32eaa302dcbc09.png

随着开源和企业软件项目中代码、文档等相关数据和资源的积累,数据驱动软件智能化开发逐渐成为学术界和企业界关注的一个热点问题。深度学习技术被广泛应用于代码和文档等软件开发数据分析,实现API与代码推荐、代码补全、代码生成、缺陷修复等智能化支持。软件工程、程序设计语言、人工智能等相关领域中发表了大量的研究论文,许多企业已经开始探索相关技术的实践应用,同时还涌现了一批软件智能化开发方面的初创企业。

软件智能化开发承载着软件工程领域长久以来所追求的“软件自动化”的发展目标。如今2021已成过去,2022大幕开启,软件智能化开发在研究和实践方面取得了什么样的进展,未来将向何处发展,还存在哪些问题和挑战?

围绕这些问题,本次微访谈新年特辑邀请了来自学术界和工业界的知名专家进行访谈,盘点过去一年的进展,梳理接下来的研究和实践探索方向,共同描绘软件智能化开发的未来愿景。

3fbe7c64c86f106c7edcbae310891546.gif

05ee32e7f1cc39debdbbd76813cf45e9.png

彭鑫

复旦大学计算机科学技术学院教授

aded9ab1ab70a4145e6e8c441d82f981.gif

访

6a8227c5d9e13f1ef9c035270cd896e8.png

谢涛

北京大学计算机学院讲席教授

高可信软件技术教育部重点实验室(北京大学)副主任

dea651601b8718c74612bec869245924.png

王千祥

华为云PaaS技术创新LAB主任

中国计算机学会软件工程专委副主任

9625085d3adf863c68e018548c70326e.png

张洪宇

澳大利亚纽卡斯尔大学副教授

24cf2ea91dc0625ae330011dc09daaf3.png

邢振昌

澳大利亚国立大学计算机学院副教授

1c3f71a7d9b48b1fa9243cb4a5c9015b.png

李戈

北京大学计算机学院副教授

c62148f995af232320c946eaab9248a7.png

楼建光

微软研究院首席研究员

129b51e62e3cda5a370557876b7558f6.png

熊英飞

北京大学计算机学院副教授

4d6524ad5086ce364c7707915ec19443.png

甄焱鲲(花名:甄子)

阿里前端委员会智能化方向负责人

897fcfbd5b36e234408cb0ca62461df7.png

张玉明

阿里巴巴高级技术专家

a035485dc27953150bdad00299ecbf69.gif

访

软件智能化开发:进展与挑战

01

近两年软件智能化开发(包括API与代码推荐、代码补全、代码生成、缺陷修复等各个方面)在研究和实践上取得了什么样的进展?特别是有哪些突破性的进展?

02

深度学习在软件智能化开发方面得到了广泛应用,那么通过不断改进代码表示、模型设计并增大训练数据量可以在多大程度上提升软件智能化开发的水平?近一年火热的包含巨量参数的大模型在这个方面潜力如何?深度学习技术在软件智能化开发方面是否存在“天花板”?

03

知识在软件智能化开发中扮演着什么样的角色?是否有可能利用知识来提升现有的软件智能化开发水平?

04

近两年流行的低代码/无代码开发大量采用了特定领域语言(DSL)以及基于模型的可视化编程的技术路线,那么低代码/无代码开发与软件智能化开发是什么样的关系?软件智能化开发技术在低代码/无代码开发中扮演着什么样的角色?

05

现有的软件智能化开发方法和技术在研究和实践中面临着哪些问题和挑战?展望未来,软件智能化开发在理论、方法和工程上还需要取得哪些突破?未来有哪些有价值的研究和实践探索方向?

99c80784897b522203582a0b9d0cd4c7.gif

访

Question 1

近两年软件智能化开发(包括API与代码推荐、代码补全、代码生成、缺陷修复等各个方面)在研究和实践上取得了什么样的进展?特别是有哪些突破性的进展?

谢涛:

在问题所罗列的方向上,后面李戈老师在代码补全上可以深入介绍一下这两年在这个方向上的进展。在API与代码推荐和缺陷修复上,我觉得这两年是有着增量式的进展,说不上突破性进展。在API与代码推荐上,我觉得获得大进展的一个拦路虎是是否且如何能给到推荐引擎足够、充分的输入(显式的比如待实现的代码功能等、隐式的比如待实现代码周边的上下文等),二是是否且如何能让使用推荐引擎的开发者理解并“明智地”从推荐结果中选择出是开发者真正需要的API与代码。缺陷修复有着类似的拦路虎:一是是否且如何能获得足够强大的测试用例(既包括测试数据又包括测试预言,后者尤其是难点)来判定生成的修复是不是“靠谱”,二是(在不能完全信任测试用例的情况下)是否且如何能让开发者理解并“明智地”接受/拒绝生成的修复。

在所列的几个方面,突破性的进展可能来自于代码生成。虽然代码生成也同样面临类似上面提到的拦路虎,基于大代码深度学习的微软GitHub的Copilot(https://copilot.github.com/)可以算是一个很吸引学术界和产业界眼球的进展。其让人比较惊叹的效果展现了预训练大模型应用到自动代码的进展。当然,其离在广泛领域达到产业界实用的目标还挺远,这个方向倒是让人眼睛一亮,往下走会很有希望。

观点讨论

@彭鑫(复旦大学):嗯,看起来软件工程领域在应用深度学习技术方面取得了一些进展,但可能突破性的进展可能还很难说。谢涛老师指出了两个根本性的困难。

@彭鑫(复旦大学):@谢涛@北京大学 两个拦路虎应该分别对应:用户(程序员)所能提供的输入(问题规约)以及对输出的消化吸收

@熊英飞(北京大学):@谢涛@北京大学 

>> 一是是否且如何能获得足够强大的测试用例(既包括测试数据又包括测试预言,后者尤其是难点)来判定生成的修复是不是“靠谱”,二是(在不能完全信任测试用例的情况下)是否且如何能让开发者理解并“明智地”接受/拒绝生成的修复。

一号问题是修复社区一直在做的,主要是用各种统计模型估计补丁的概率,返回靠谱概率最高的。二号问题我们今年有一篇ICSME的论文专门讨论如何辅助程序员接受/拒绝生成的修复。

张洪宇:

谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值