智能化软件开发落地实践指南(2024年).pdf
《智能化软件开发落地实践指南(2024年).pdf》由会员分享,可在线阅读,更多相关《智能化软件开发落地实践指南(2024年).pdf(57页珍藏版)》请在咨信网上搜索。
1、中国信息通信研究院人工智能研究所华为云计算技术有限公司2024年9月智能化软件开发落地智能化软件开发落地实践指南实践指南(2022024 4 年年)前言前言2024 年政府工作报告首次提出“人工智能+”战略行动,旨在推动人工智能赋能各行各业。以大模型为代表的新一代人工智能技术迅猛发展,已成为软件工程领域智能化转型的关键驱动力,为软件开发、测试等环节注入新智力。智能化软件开发工具凭借其强大的代码理解和生成能力,有效降低了开发人员的技术门槛,并提高开发效率和质量,进一步推动软件开发领域的进步。然而,在软件开发的智能化能力建设和应用过程中,仍面临诸多挑战,如代码大模型选择困难、开发工具的工程化建设复
2、杂、智能化能力建设无参考、开发场景选择和落地难,以及与现有开发工具或流水线的集成难等问题。为此,本指南旨在为正在进行软件开发智能化转型的企业提供一份实用指南,为企业制定落地策略、建设智能开发能力体系提供有力参考。本指南系统梳理了智能化软件开发的发展历程、现状和面临的挑战,结合大模型和软件开发特点,提出了具体的落地方向、路径和框架,详细阐述了落地所需的核心能力和使能能力,并对多个行业的落地案例进行了深入剖析,最后对智能化软件开发的发展趋势进行了展望。由于大模型等人工智能技术产业仍处于快速发展阶段,智能开发相关的技术产品、服务和应用也在不断演变,我们的认识将随着产业实践而不断深化,报告存在的不足之
3、处,恳请大家批评指正。目录目录一、智能开发发展概述.1(一)软件工程步入 3.0 时代.1(二)智能开发发展现状.5(三)智能开发价值显现.7(四)智能开发落地挑战.9二、智能开发落地策略.11(一)智能开发落地原则.11(二)智能开发落地步骤.12(三)智能开发落地框架.15三、智能开发核心能力建设.17(一)代码生成与补全.17(二)单元测试用例生成.19(三)代码转换与优化.21(四)代码解释与注释.22(五)代码检查与修复.23(六)研发问答.24四、智能开发使能能力建设.26(一)代码数据处理能力.26(二)代码大模型优化能力.28(三)智能开发能力评估.30(四)智能开发安全能力.
4、32(五)其他工程化能力.36五、智能开发落地案例分析.41(一)云服务行业案例.41(二)软件服务业案例.42(三)电力行业案例.44(四)金融行业案例.46(五)制造行业案例.47六、总结与展望.50图 目 录图 目 录图 1软件工程发展历程图.1图 2软件工程 3.0 示意图.3图 3智能开发落地步骤图.12图 4企业智能化能力自我诊断等级图.13图 5智能开发能力实施的多阶方案图.14图 6智能开发落地框架示意图.15图 7三“码”合一方案图.19图 8单测生成实战方案示意图.21图 9基于 RAG 的代码理解流程图.23图 10数据处理流程图.26图 11代码大模型优化过程示意图.2
5、9图 12智能开发能力评估架构图.31图 13安全能力体系架构图.33图 14数据安全治理流程示意图.33图 15模型安全治理架构图.35图 16应用安全治理框架图.35图 17RAG 落地流程示意图.39图 18某云服务企业案例落地方案示意图.42图 19某软件服务企业案例落地方案示意图.44图 20某电力行业企业案例落地方案示意图.45图 21某银行案例落地方案示意图.47图 22某家电制造企业案例落地方案示意图.49表 目 录表 目 录表 1准确性评估场景与指标参考清单.32表 2提示词示例 1.38表 3提示词示例 2.38智能化软件开发落地实践指南(2024 年)1一、智能开发发展概
6、述一、智能开发发展概述随着人工智能技术的不断进步,特别是大模型能力的持续提升,软件工程领域正迎来前所未有的变革,软件开发的流程和模式正被重新定义,智能化进程显著加速。本章将简要回顾软件工程的发展历程,重点介绍软件工程 3.0 的发展特点,以及智能化软件开发(以下简称:智能开发)领域发展现状,并深入探讨智能化能力为软件开发带来的价值提升,最后梳理落地挑战。(一)软件工程步入(一)软件工程步入 3.0 时代时代1.软件工程发展历程软件工程自 1968 年诞生以来,其发展历程可分成三个阶段,包括软件工程 1.0、软件工程 2.0 和软件工程 3.0,如图 1 所示。图 1 软件工程发展历程图软件工程
7、 1.0,即第一代软件工程,亦称为“传统软件工程”。本阶段的发展起点可追溯至上个世纪六十年代,随着大容量、高速度计算机的问世,软件开发需求急剧增长,软件系统的规模越来越大,复杂程度越来越高,可靠性问题更加突出。为解决该类软件危机,智能化软件开发落地实践指南(2024 年)21968 年北大西洋公约组织(NATO)在国际会议上首次提出“软件工程”概念,期望将软件开发带出混乱的局面,走向有纪律、有流程的规范化之路。软件工程 1.0 推崇结构化方法,重视流程和文档规范化等工程实践,对提升软件产品交付成功率和质量有重大意义。但在软件工程 1.0 时期,由于软件被当作传统的工业制造产品进行交付,无法及时
8、满足业务需求的变化和更新,使得交付周期长。软件工程 2.0,亦称“敏捷软件工程”。本阶段的发展自 2001 年“敏捷软件开发宣言1”发布起,通过践行敏捷开发最佳实践,实现持续集成(CI)、持续交付(CD)和快速迭代以更好地满足日益变化的业务需求。软件工程 2.0 时期,软件形态从“产品”发展为“服务”,而服务的性能、效率、可靠性、可持续性也更加重要,这推动人们将软件开发和运维融合起来,DevOps 模式应运而生,使得软件交付效率更加高效。但本时期的开发、测试等核心工作,多以人工为主,技术门槛和研发成本居高不下,对技术人员的依赖性非常高,虽然陆续有自动化技术的出现和落地,对效能提升方面未有显著成
9、效,“软件工程没有银弹2”这一观点仍然有效。软件工程 3.0,亦称“智能化软件工程”。2022 年底以来,随着ChatGPT 等大模型相继发布,软件工程迎来新一轮变革。大模型凭借其强大的理解和生成能力,通过代码生成、代码续写、测试用例生成、智能问答等能力,为软件工程带来了智能化能力升级,为提1https:/agilemanifesto.org/2没有银弹:软件工程的本质与偶然智能化软件开发落地实践指南(2024 年)3升软件质量和效率带来了新动力,全新的软件开发范式正在诞生。软件工程中到底有没有“银弹”,在大模型时代成为热议的话题。2.软件工程 3.0 发展特点软件工程 3.0 围绕“智能化”
10、理念以构建智能化助手为起点,通过使用大模型为核心的 AI 技术驱动软件全生命周期能力升级(如图 2所示)。本阶段以构建支持软件开发、测试或运维等环节的 AI 模型为基础,将智能化技术逐步运用至软件工程各阶段,促进软件研发和运营效率的提升、质量的跃进、成本的降低。本阶段的发展特性较为明显,核心特点包括智能化、数据驱动性、交互性、自适应和持续优化。图 2 软件工程 3.0 示意图智能化,软件工程中各工具都将逐步实现对大模型等 AI 能力的调取和应用,以实现工具自身能力的提高,为智能化软件工程打下坚实基础。例如,将大模型与测试平台对接,提供测试用例生成、测试结果分析等能力,提高测试平台效能;将大模型
11、与用户界面智能化软件开发落地实践指南(2024 年)4(UI)测试工具对接,提供界面要素和组件等识别能力,提高 UI 测试准确率3。数据驱动性,高质量数据是大模型成功的关键,“Garbage In,Garbage Out”仍然适用。在软件工程中,代码数据集、需求数据集、规范类文档数据集、测试用例数据集、日志数据集等,均将应用于大模型的训练、调优和推理过程,其质量高低直接影响推理结果,从而影响软件工程智能化能力带来的效果。例如,使用了精调代码数据集训练后的模型,相比基座模型在 MultiPL-E 上的评测结果绝对值提升了 8.2%,而使用了未精调的普通的代码加注释的数据集训练后的模型,评测结果反
12、而降低了 5.5%4。交互性,包括两个方面,一是大模型与人之间的人机交互,二是大模型与工具间的交互。人机交互将不断相互启发、相互促进,大模型可学习特定项目的上下文和研发人员的偏好,并根据更优的提示词,激发出更符合期望的推理结果,提高协作效率;大模型与工具间交互,将通过智能体(AI Agent)、编排等方式,实现大模型对各工具的调取和执行,以解决更加复杂的工程级问题,推动全生命周期智能化能力的提升。例如,2024 年 3 月 Cognition 公司发布的全球首个 AI 程序员 Devin,以及 8 月 Cosine 公司发布的全球最强 AI 程序员 Genie,对复杂的软件工程问题解决能力不断
13、得到刷新。自适应性,根据对工程级代码的更优理解能力,以及检索增强3中国信息通信研究院调研4Magicoder:Empowering Code Generation with OSS-INSTRUCT智能化软件开发落地实践指南(2024 年)5生成(RAG)等技术的辅助能力,大模型的自学习能力越发强大,这使得智能化软件工程对场景化的业务和数据具备更好的理解和适应能力,从而实现自主提升其推理性能和准确性。例如,代码大模型可在不同角色设定下展现良好的自适应性,MetaGPT 为大模型赋予了多个人设(产品经理、架构师、开发工程师等)后,其HumanEval 评测结果为 85.9%,相比未设定人设的大模
14、型评测结果绝对值提升了 18.9%5。持续优化,通过建立数据飞轮和反馈闭环,根据用户反馈、场景化数据和监控数据对大模型进行持续改进,从而使软件工程智能化能力持续提升。例如,某银行的智能开发助手上线后,每周由研发部门的各团队提交优秀代码数据,对代码大模型进行定期的优化训练、测试和部署,从而持续保持和提升开发助手的能力6。(二)智能开发发展现状(二)智能开发发展现状开发是软件工程全生命周期中的核心环节,开发人员大约有三分之二的工作时间与开发代码直接相关7,应用大模型助力软件开发具有得天独厚的优势。一方面开发人员对新技术的接纳度较高,能够更快地适应开发新范式;另一方面各类编程语言对业务的依赖度不是非
15、常高,使得代码生成能力的普适性较强。因此软件开发是大模型率先应用落地的领域之一,Gartner 已将“AI 增强软件开发”列5MetaGPT:Meta Programming for AMulti-Agent Collaborative Framework6中国信息通信研究院调研7https:/thenewstack.io/how-much-time-do-developers-spend-actually-writing-code/智能化软件开发落地实践指南(2024 年)6入 2024 年十大战略技术趋势之一8。智能开发工具市场迅速发展,国内外百花齐放。国外,截止2024 年 4 月微软的
16、 GitHub Copilot 拥有 180 万付费订阅用户,近60%财富 500 强公司使用 Copilot AI 工具9,GitHub Copilot 的市场占有率达到 64.5%10。亚马逊的 CodeWhisperer、谷歌的 Project IDX 等产品虽难以并肩,但依靠其强大的用户规模基础,仍具备较强竞争力。国内,智能化软件开发工具已发布近 40 余款11,如华为、阿里、百度等提供的智能开发工具产品,其核心功能较为同质化,但工具的性能、工程化能力、用户体验度、整体准确度等方面存在差异。智能开发工具能力持续提升,应用行业更加多元化。智能开发工具重点聚焦于代码生成、代码补全、代码注释
17、、代码检查、智能单测等能力。一方面代码大模型能力的持续提升为工具提供了更强的 AI 底座,根据智源大模型排行榜显示,榜首大模型在 HumanEval数据集上的 Pass112从 2023 年 8 月的 24.4%提升至 2024 年 8 月的81.1%13;另一方面通过 RAG、自学习、AIAgent 等技术的加持,为工具提供了更强的工程化能力,如微软的 Copilot WorkSpace 作为 AI辅助的下一代开发工具,为工程级代码提供了更优的理解和生成能力。随着能力的持续提升,智能开发工具被越来越多行业所接受和应用,包括如互联网等科技行业的成熟落地,金融、电信、软件服8Gartner202
18、4 十大战略技术趋势9https:/ 202411https:/ai- 是指代码大模型为每个问题生成 1 个答案,其答案通过测试的比例。13https:/ 年)7务等行业的逐步落地,能源、零售、教育、制造、物流等领域的试点试行,未来智能开发工具将为各行各业的软件研发提供强有力支撑。应用需求快速增长,编码阶段提效显著。无论个人还是企业开发者,使用智能开发工具的人数和频次越来越多。根据 StackOverflow 2024 年的全球开发者调研显示,76%的受访者正在或计划使用 AI 工具进行软件开发,使用 AI 工具的开发者数量占比从去年44%提升至 62%14。根据 CSDN 2024 年的调查
19、显示,48.6%开发者每天使用智能开发工具15。根据 Deloitte 报告指出,超过 60%的金融机构正在探索或已经实施了智能开发工具以加速创新。智能开发工具的使用助力开发人员编码效率提升明显。根据 GitHub 报告显示,使用 GitHub Copilot 的开发者编码速度提升 55%,编写代码量增加46%16。根据中国信通院 2024 年初调研问卷数据显示,受访者在开发阶段使用 AI 工具的提效最为明显,人效提升达到约 40%。(三)智能开发价值显现(三)智能开发价值显现在大模型应用浪潮中,软件开发的智能化转型正成为企业提升软件产品竞争力的关键因素,通过智能化能力的注入,为软件开发的价值
20、提升带来巨大动力。提升开发效率,降低项目风险。通过代码生成、代码补全和问答等能力,开发人员能够更迅速地编写高质量代码,显著减少手动14the 2024 results from Stack OverflowsAnnual Developer Survey152024 中国开发者调查报告16The economic impact of theAI-powered developer lifecycle and lessons from GitHub Copilot智能化软件开发落地实践指南(2024 年)8调试和错误修复时间。同时可降低项目对开发人员的依赖,通过智能开发工具的学习和记忆能力,一方
21、面可辅助新的开发人员快速开发出符合项目需求和规范的代码,另一方面可帮助开发人员快速学习新的编程语言,从而减少人员流动带来的项目风险。根据 BIS 年度经济报告显示,智能开发工具对程序员的生产力提升超过 50%,且其中仅有小部分来自于代码的直接生成,而更多是通过与机器交互的过程激发了程序员的创造力17。改善代码质量,提高产品稳定性。通过代码质量检查和智能单测等能力,开发人员能够快速进行代码验证和测试,及时发现并修复潜在的问题和漏洞,如代码缺陷、代码异常、代码风险等,从而帮助开发人员编写出更高质量的代码,降低软件发布后的故障率,提升软件的稳定性和性能。例如,GitHub Copilot 可帮助开发
22、人员在编码过程中解决超过三分之二的漏洞18。加速产品创新迭代,增强企业竞争力。通过提升开发效率和改善产品质量,企业能够更快地推出创新产品,抢占市场先机,从而在激烈的市场竞争中脱颖而出。一方面,智能化的软件开发流程使开发周期缩短,企业能够更灵活地适应市场变化,加快产品迭代速率;另一方面,智能开发工具的辅助使得开发人员能够从重复性的繁琐的低端编码工作中释放出来,从而拥有更多时间投入创新相关工作,提升企业创新能力。例如,2023 年 5 月 GitHub 首席执行官17国际清算银行(BIS)2024 年度经济报告18https:/ 年)9在全球网络峰会(Web Summit)上,演示 GitHub
23、Copilot X 实现简单的贪吃蛇小游戏用时为 18 分钟,而 2024 年 8 月通过真实操作,使用 Deepseek 开发助手(V2)仅需 2 分钟左右,开发时长大幅减少,开发人员将有更多时间思考产品创新。(四)智能开发落地挑战(四)智能开发落地挑战随着智能化技术在软件开发领域的广泛应用,其带来的质效提升日益显著。然而,企业在推进软件开发的智能化能力建设和落地时,仍面临诸多挑战,涵盖组织、技术、应用落地及安全等多个层面。组织变革和转型的挑战。软件开发的智能化转型首先带来的是组织变革,一是组织文化的重塑,其落地要求组织具备开放合作、持续学习和创新的文化氛围,促进跨部门沟通与协作,打破信息孤
24、岛;二是全员认知水平的提升,自顶向下每位员工都应深刻理解智能化的潜力与挑战,客观且正确地了解大模型等人工智能技术及其作用;三是人才结构的调整与补充,由于数据治理及模型训练调优等过程需要专业技术人员参与,因此补充人才,或调整或融合 AI 团队和软件工程团队的结构,方能匹配能力建设和应用的需求。模型技术迭代及与工具融合的挑战。当前智能开发能力建设的核心技术是大模型,因此围绕大模型面临着技术迭代的挑战。一是大模型的技术能力仍以较快速度迭代更新,企业需配备良好的维护更新机制,以保证智能开发工具的底座 AI 能力;二是智能开发能力智能化软件开发落地实践指南(2024 年)10如何与现有软件研发工具集有效
25、融合或改造,从而提升软件工程全流程能力水平。产品选型与应用场景落地的挑战。企业需根据自身行业特点、业务需求及已有 AI 能力,选择适合的业务场景,合理规划落地路径和方案。然而,一方面现有代码大模型和智能开发工具数量繁多,如何建设或选择出一款合适的模型或工具,如何评价模型或工具的能力,均是落地时考虑的重点;另一方面不同业务场景的编程语言可能不尽相同,或代码数据集或规范不一致,如何选择最优场景试点落地,如何优化模型或工具使其满足多场景需求,同样面临挑战。代码数据、模型和工具的安全性挑战。生成式代码可能会带来更多不可控的风险,因此企业应从数据、模型和工具多维度构筑风险防线,以应对安全挑战。第一道数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能化 软件 开发 落地 实践 指南 2024
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【宇***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【宇***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。