CodeWisdom

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

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

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

2022新年特辑

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

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

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

彭鑫

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

访

谢涛

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

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

王千祥

华为云PaaS技术创新LAB主任

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

张洪宇

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

邢振昌

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

李戈

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

楼建光

微软研究院首席研究员

熊英飞

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

甄焱鲲(花名:甄子)

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

张玉明

阿里巴巴高级技术专家

访

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

01

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

02

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

03

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

04

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

05

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

访

Question 1

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

谢涛:

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

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

观点讨论

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

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

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

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

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

张洪宇:

谢谢彭老师。我认为这两年软件智能化开发方面的研究取得了很大进展,我们看到一些较新的深度学习技术,如预训练模型,自监督学习,小样本学习,元学习,对比学习,强化学习,多模态,多任务学习等等,被应用在各种软件智能化开发任务中(如代码表示,代码推荐,注释生成,缺陷修复等),取得了不错的效果。不过这些工作大部分是渐进式的改进工作,目前看还没有明显的“突破性的”进展。

邢振昌:

我提一下自己比较关注的两方面进展(应该还算不上突破性)吧。

一个是知识图谱方法在智能软件开发中应用。这个方向我从五六年前开始探索,和彭老师,夏老师有很多合作,研发了一些软件工程领域知识图谱构建方法和一些软件领域应用,比如基于知识图谱的智能问答,API/code推荐,API误用检测等等。刚刚段老师也转了两个知识图谱技术专利数量截屏,看起来也做了很多这方向的工作。不过相比于研究了10几年的data-driven方法,知识图谱方法还比较初步,但对智能开发有独特的贡献,比如可解释性分析。

另一个点是围绕人机交互GUI的智能分析,尤其是研发了non-intrusive的,就是不依赖app instrumentation的GUI分析技术,来提取和理解GUI components,structures,and semantics,从而支持软件生命周期中GUI设计,实现,测试和使用。我们团队在这个方向也有些工作,一些tool prototype可以在http://uied.online/尝试。从我个人体验来说,相对于围绕代码的工作,GUI分析的工作,往往会被认为是HCI community的事,投稿SE经常被认为是out of scope。我个人觉得GUI分析应该受到更多重视,因为是影响软件服务end users的。

李戈:

我今儿准备的回答都比较简单:

==取得了什么样的进展?==

关键词:【明显】

在研究上,AI新技术使技术指标【明显】提升;

在实践上,科研成果的实用性【明显】强;

观点讨论

@彭鑫(复旦大学):@李戈·北京大学 李戈老师总体乐观

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

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

    CodeWisdom 智能化软件开发沙龙是复旦大学CodeWisdom团队参与组织的专注于代码大数据与智能化软件开发的学术和技术沙龙,面向相关领域的学术界研究者和工业界实践者,通过各种线上和线下交流活 ...

  2. 智能化软件开发微访谈·第二十四期 大模型时代的智能化软件生态(讨论汇编)...

    CodeWisdom "智能化软件开发沙龙是由CodeWisdom团队组织的围绕智能化软件开发.数据驱动的软件开发质量与效能分析.云原生与智能化运维等相关话题开展的线上沙龙,通过微信群访谈交 ...

  3. 活动预告 | 智能化软件开发微访谈·第二十一期:可观测性与智能化运维

    CodeWisdom 智能化软件开发沙龙是复旦大学CodeWisdom团队参与组织的专注于代码大数据与智能化软件开发的学术和技术沙龙,面向相关领域的学术界研究者和工业界实践者,通过各种线上和线下交流活 ...

  4. 智能化软件开发微访谈·第二十一期:可观测性与智能化运维

    CodeWisdom "智能化软件开发沙龙是由CodeWisdom团队组织的围绕智能化软件开发.数据驱动的软件开发质量与效能分析.云原生与智能化运维等相关话题开展的线上沙龙,通过微信群访谈交 ...

  5. 智能化软件开发微访谈·第二十期暨2022新年特辑:AI软件架构实践

    CodeWisdom 智能化软件开发沙龙是复旦大学CodeWisdom团队参与组织的专注于代码大数据与智能化软件开发的学术和技术沙龙,面向相关领域的学术界研究者和工业界实践者,通过各种线上和线下交流活 ...

  6. 智能化软件开发微访谈·第二十二期 代码预训练模型

    CodeWisdom 代码预训练模型微访谈 · 活动预告 背景介绍 随着代码数据的增长以及人工智能技术的发展,基于深度学习的代码推荐和生成已经成为软件智能化开发领域的热点研究问题.近几年,基于Tran ...

  7. 鲁大师电动车智能化测评报告第十九期:电自旗舰大乱斗,九号突围成功

    鲁大师第十九期智能化电动车测评排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型.截止目前,鲁大师智能化电动车测评的车型高达100余台,且还在不断增加和丰富中. 1. 测评依据 ...

  8. 应用回归分析何晓群课第五版_海外第三方应用市场分析丨出海学院十九期直播课...

    Enjoy出海一站式出海服务平台 点击关注"Enjoy出海"公众号 时时参与出海答疑问题 出海学院第十九期直播课 出海学院十九期直播课,由Enjoy出海CEO金翔主讲,本期主题为& ...

  9. 开发者论坛一周精粹(第十九期) :【重要事件】运维人员注意啦:NetSarang的Xmanager和Xshell多种产品被植入后门...

    摘要: 安全公司发现官方发布的软件版本中,nssock2.dll模块源码被植入后门.由于使用该软件的技术人员较多,存在一定的安全风险. 目前官方已经发布了xshell最高版本为 Xshell 5 Bu ...

最新文章

  1. IT人的理性、激情与爱情
  2. ubuntu18.04新安装时Unable to locate package问题
  3. mysql 有索引 不被使用方法_MySQL教程100-索引在什么情况下不会被使用?
  4. 高通最强芯片855发布!AI性能比华为苹果翻倍,商用5G,标配屏下指纹
  5. 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
  6. 超声波传感器模块原理
  7. 直播预告:如何在“贵系”找到自己的发展方向?| 贵系万花筒
  8. 君莫笑系列视频学习(0)
  9. Ten Rules of Good Studying
  10. async 函数的含义和用法
  11. peel在Linux生成excel,zplane -
  12. Android 自定义View 绘制正N边形
  13. STC89C52RC最小系统板
  14. 使用Java Swing实现7个经典应用诠释算法精髓
  15. 直觉模糊有计算机知识嘛,基于直觉模糊集理论的IDS方法研究-计算机科学.PDF
  16. java本地定时缓存,单例可执行外部接口
  17. 关于ip-guard认证考试专栏下架通知
  18. 金蝶在虚拟机安装服务器端,金蝶KIS旗舰版V6.0安装运行环境
  19. 没有谭浩强的书我们就不知道编程?——驳图灵公司副总编陈冰无知无耻的“无知无耻论”...
  20. eclipse java插件下载,eclipse安装server插件_eclipse安装javaee - push博客

热门文章

  1. I.MX6ULL ARM驱动开发---设备树下的platfrom设备驱动
  2. 光学知识之双折射现象解析
  3. 记一次艰难的重装系统
  4. 12种数据量纲化处理方式
  5. x86、x64、x32和64位、32位的区别与联系
  6. MIR-Flickr25K数据集预处理
  7. 深度学习:学习路线与规划
  8. Git-git diff命令结果解析
  9. 关于scrapy shell 在ipython环境下 TAB出现debug信息解决方案
  10. 元宇宙对网络技术的挑战,什么样的网络才能承载元宇宙的野心?