现代软件具有深度行业渗透、广度领域融合、高度行为交互等特征,与之相伴的急速膨胀的编程现场大数据、急剧提升的即时响应要求及常态化的大规模跨地域协同开发,给软件的快速高质量开发带来了全新的机遇与挑战。
编程现场大数据是在软件生产的编程现场所产生的数据集合的总称,其在程序员编写代码过程中瞬时涌现,在程序员间交互,在不同领域融合应用,并随软件技术与开发环境不断演变,具有海量、瞬时、多样和可变等大数据典型特征。编程现场大数据对于正确理解、呈现、分析软件生产
的微过程,改善软件生产方式,将人类从繁重的软件生产脑力劳动中解放出来,具有非常重要的意义。因此,如何利用编程现场大数据,构建新型
智能化软件现场开发方法与环境,提升软件生产率与品质,成为软件产业重要科学问题。
项目聚焦两类关键技术:
1)编程现场的实时感知与大数据抽象。研究编程现场大数据的构成和内在关联;构建跨地域的编程现场数据库、开发者画像库和规范源码样例库;建立实时动态现场大数据环境及智能抽象模型。
2)智能化人机结对编程与协同进化。构建编程现场环境下的虚拟智能编程机器人,支持自动代码生成与推荐、缺陷检测与修复;通过与真实程
序员现场协同进化,提升软件生产率与品质。
项目内容分四个层面:
1)现场数据层,研究编程现场大数据的析取与融合,包括编程现场环境中源代码、编程行为等多源异构大数据的来源与形态,编程现场大数据的增量获取与演化机制,智能化数据实时清洗校验和组织管理引擎。
2)数据环境层,研究编程现场环境理解与抽象,包括编程现场大数据外部形态与内在关联,跨地域的编程现场数据库、开发者画像库和规范源码样例库,编程现场的代码语义、环境上下文和多源动态交互模型。
3)支撑技术层,研究智能化编程现场环境的支撑方法与技术,包括程序语义学习与现场代码生成技术,现场感知的接口与代码定制化推荐技术,编程规范与风格制导的现场代码检测技术,协同编程现场的实时代码缺陷分析与诊治技术。
4)服务平台层,研制基于智能编程机器人的人机协同开发云平台及其示范应用。
--以上研究得到国家重点研发计划的资助 2018年~2021年
|