0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

AI如何助力、驱动软件研发?

vliwulianw 来源:软件质量报道 2023-08-01 15:32 次阅读

人工智能AI)正在颠覆一切,软件工程也不能幸免。生成式人工智能(AIGC)在编码、设计、测试和 DevOps 方面的最新展示确实令人印象深刻,甚至可以说令人敬畏。 AIGC是人工智能的一个分支,专注于创建和生成新的内容,如图像、文本、音频甚至视频,这些内容很难与人类生成的内容区分开来。近几个月来,由于大型语言模型(LLM)的进步,以及 OpenAI、Stable Diffusion 和其他大厂的产品发布,AIGC备受关注。

虽然很难量化AIGC的准确传播范围,但可以肯定的是,研究人员、开发人员和软件从业人员正在积极探索和利用AIGC的各种功能领域,如图像和文本生成、音乐和声音合成、视频生成、虚拟人物和化身创建以及数据增强。 软件工程是AI革命的一部分,而AIGC可以为软件开发生命周期(SDLC)的各个阶段带来显著的帮助

由于软件有着天生的数字化特性,软件工程尤其适合借助AIGC的力量

具体的工程任务,如数值分析和数据工程、文档编制、编码和质量控制,在某种程度上可能是重复性的;因此,非常适合由训练有素的AI模型提供帮助。其次,复杂的算法代码结构适合由AI助手生成。此外,软件开发人员面临的许多挑战可能已经解决。因此,对于训练有素的AI模型来说,代码模块已经可用,生成整个函数或类也就变得可行了。

AIGC是增强人类能力和加速软件开发的有力工具

对于业务依赖于创建、维护或销售软件的公司来说,使用正确的AIGC工具可以提高开发人员的效率、创造超越竞争对手的机会。企业可以通过多种方式利用AIGC工具,包括开发人员的优化和和培训的工作,以及为关键工程任务启用AIGC工具。 本文将对AI驱动/辅助软件工程生态系统、可用的最新工具、可帮助完成的工程任务以及应避免的注意事项进行高屋建瓴的阐述。

1. 当前的 SDLC(软件开发生命周期)

要了解AIGC对软件工程的帮助有多大,快速了解一下目前公认的敏捷软件开发生命周期(SDLC)可能会有所帮助。 经典的敏捷软件开发生命周期(SDLC)以较小的、可操作的、迭代的和增量的周期启动并进行演化,直到代码完全开发、测试并部署到生产环境中。同样,分析、设计、编码和测试也被分成较小的块来执行,而 DevOps 则在整个过程中持续进行。

在敏捷分析阶段一般会包括用户故事和史诗(Epic)的编写,而设计阶段则会引入架构图的创建和数据结构的设计。编码和测试阶段通常包括用不同的语言编写软件和制作测试线束,以确保它们按照特定要求运行。测试和QA还可能包括独立测试,以确保一切按预期运行。同样,DevOps 也采用不同的方法,如环境配置、基础设施即代码和 CI/CD 流水线。

5767cfd0-3026-11ee-9e74-dac502259ad0.png

图1 当前的敏捷 SDLC

2. AI驱动的 SDLC

AI可以协助 SDLC 的每个阶段,缩短整个SDLC的反馈环路,使公司能够更快地推出产品。结果如何?企业通过在 SDLC 中使用人工智能驱动的工具来提高竞争优势。

OpenAI 开发的 ChatGPT 等工具可以帮助进行市场调研和趋势分析。AI可以分析客户偏好,并通过简单的文本提示帮助编写用户故事。从技术角度来看,它们还可以在产品发布前自动执行 CI/CD 流程、环境脚本、安全测试和性能测试。

GPT-4 还能帮助开发人员生成功能代码、测试线束和自动化。此外,还可以创建数据模型、DDL 和序列图。

5779931e-3026-11ee-9e74-dac502259ad0.png

图1 AI的敏捷 SDLC

GitHub Copilot 、AWS CodeWhisperer 、华为CodeArts Snap等AI工具可在集成开发环境中自动完成大型代码块并检查代码质量问题,从而提高开发人员的工作效率。GitHub 和微软最近进行的一项研究表明,当开发人员使用 Copilot 提供代码帮助时,开发人员的效率提升超过 55%。从历史的角度来看,这是生产率的显著提高,超过了 19 世纪中期蒸汽机的引入,当时蒸汽机 "仅 "将大型工厂的生产率提高了 15%。

人工智能在整个 SDLC 中的累积效应可使综合效率提高 30-50%。

3. 在软件工程中应用AI

现在众所周知,AI具有为技术组织增值的巨大潜力。但是,AI能直接帮助哪些关键的软件工程活动呢?下面列出的只是AI能为创建软件的团队做些什么。

1)代码生成

GitHub Copilot 、CodeWhisperer 、CodeArtsSnap等AI工具可以根据简单的文本提示生成整个代码功能。

让我们来看看下面这个例子:在 Visual Studio Code 中,安装 AWS CodeWhisperer 扩展后,当用户键入下面的提示时,就会得到一个能解决问题的完整函数:

57bc5db6-3026-11ee-9e74-dac502259ad0.png

(在 JavaScript 中生成 CSV 字符串解析函数的文本提示)

生成的结果是一个完全可用的函数:

57e18316-3026-11ee-9e74-dac502259ad0.png

当我们尝试上述提示的变体,增加额外的复杂度时,我们很可能会发现当前AI工具的一个缺陷。

让我们试试下面的提示:

58291a8c-3026-11ee-9e74-dac502259ad0.png

(提示:用于生成美国邮政编码的解析函数,同时将邮政编码转换为经度和纬度)

结果生成如下所示的函数:

583fecd0-3026-11ee-9e74-dac502259ad0.png

(生成的代码确实会根据提示接收字符串并解析 CSV,但不会进一步将邮政编码地理编码为经纬度值。) 虽然这项更为复杂的任务需要进一步引导它去查询,例如访问 REST API(如美国人口普查局 Geocoder REST APIs8 提供的 REST API),但还是需要谨慎和警惕,因为该工具甚至没有尝试彻底解决问题。相反,它只是提供了一个模板代码,没有达到预期效果。

这个例子凸显了当前AI工具的局限性之一:不能盲目相信生成的代码,开发人员仍处于主导地位。“检查代码的准确性、完整性和错误” 对于AI驱动的开发人员工作流程至关重要。随着工具日臻完善并向每位开发人员学习,生成代码的准确性和复杂性也会随之提高。尽管如此,如今开发人员仍然牢牢掌握着控制权。

2)代码解释 作为开发人员,我们有时会加入一个项目或继承复杂的应用程序代码。我们可能需要花上好几天的时间才能理解项目的结构和代码的工作原理,尤其是在文档很少的情况下。在这种情况下,ChatGPT 可以帮助我们解释代码。 例如,让我们看看下面的 Angular 函数:

585a42d8-3026-11ee-9e74-dac502259ad0.png

我们可以给出提示 "解释下面的 Angular 代码是做什么的"。 下面 ChatGPT 的回复相当全面准确地解释了函数的作用:

58b65230-3026-11ee-9e74-dac502259ad0.png

正如该示例所示,ChatGPT 可以减少阅读、理解和解释现有应用程序代码所需的时间,并进一步帮助开发人员加快入职或在新代码库中提高工作效率。

3)AI驱动的软件工程的其他任务

除了编写和解释代码,AI每天都在掌握新的技能。下面列出的只是AI辅助软件开发能力不断增长的少数例子:

编写用户故事

生成数据模型

生成 DDL 和 DML

用人鱼脚本生成数据图表

生成序列图

生成系统图

用任何语言生成 OO 类模型

生成代码

将代码从一种语言翻译成另一种语言

编写自动测试

编写代码文档

为基于 REST 的应用程序接口编写 Swagger 定义

改进(重构)现有代码

编写代码注释

生成线框(GalileoAI)

调试代码 + 静态分析(Deepcode)

自动代码重构(Sourcery)

设计模式识别

代码审查(DeepScan

更完整的清单超出了本文的范围,将在后续文章中介绍。不过,在开始一项复杂的任务之前,最好先在网上查看一下AI功能。可能已经有AI工具或插件可以解决问题。未来还将带来更多工具,并扩展现有工具的功能。

在AI的帮助下,开发人员、架构师和参与 SDLC 的每个人都将变成能够更快地编写出更好代码的超人

4. 结论

AIGC的出现为技术组织提供了提高效率的工具和技术。团队可以创建更好的软件产品,缩短开发生命周期,并对新原型进行市场测试,从而接触到更多客户,提高团队效率。

企业可以通过拥抱变化并将AI定位为技术转型的核心(AI+X),从AI革命中获益;我们需要将AI的力量视为一种推动力,而不是一种威胁;我们的员工必须根据新出现的新一代AI工具接受再培训,以了解其真正的潜力。此外,企业还可以将AI的应用范围从软件工程扩展到产品管理、质量保证、网络安全和 DevOps。 总之,本文表明,虽然AIGC仍处于起步阶段,但每天都会出现新的、功能更强的工具,这为专注于不断学习、适应和发展的企业提供了可持续的长期竞争优势。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1792

    文章

    47354

    浏览量

    238812
  • AWS
    AWS
    +关注

    关注

    0

    文章

    432

    浏览量

    24393
  • javascript语言

    关注

    0

    文章

    3

    浏览量

    961
  • OpenAI
    +关注

    关注

    9

    文章

    1096

    浏览量

    6561
  • LLM
    LLM
    +关注

    关注

    0

    文章

    290

    浏览量

    351

原文标题:AI如何助力、驱动软件研发?

文章出处:【微信号:软件质量报道,微信公众号:软件质量报道】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    施耐德电气助力数据中心行业可持续发展

    从医疗领域AI助力精准诊断与药物研发,到制造业中智能机器人与AI算法助力自动化生产, AI对于生
    的头像 发表于 12-20 15:32 276次阅读

    数据驱动AI工具在哪

    数据驱动AI工具并不遥远,它们就存在于我们的日常生活中,只是我们可能没有意识到。这些工具通常被嵌入到各种应用程序、软件和服务中,为我们提供便利。接下来,AI部落小编为您详细介绍数据
    的头像 发表于 12-09 10:52 142次阅读

    NVIDIA将在越南开设首个研发中心以推动AI发展

    从事软件开发等工作,借助越南丰富的 STEM(科学、技术、工程和数学)工程师人才库,携手行业领袖、初创企业、政府机构、大学及学生,共同加速 AI 的应用。 NVIDIA 创始人兼首席执行官黄仁勋表示:“我们很高兴能开设 NVIDIA 的
    的头像 发表于 12-07 11:19 768次阅读

    NVIDIA AI正加速推进药物研发

    在当前的医疗健康领域,AI 的重要性愈发凸显。NVIDIA AI 正加速推进药物研发,致力于减少药物的研发时间和成本,使更多的老年患者能够更快获得关键治疗。
    的头像 发表于 11-19 16:07 245次阅读

    NVIDIA AI助力日本制药公司推进药物研发

    制药公司、医疗技术公司和学术研究人员正在开发主权 AI 能力,以驱动药物发现、加速基因组学和医疗设备。
    的头像 发表于 11-19 15:40 303次阅读

    AI for Science:人工智能驱动科学创新》第4章-AI与生命科学读后感

    很幸运社区给我一个阅读此书的机会,感谢平台。 《AI for Science:人工智能驱动科学创新》第4章关于AI与生命科学的部分,为我们揭示了人工智能技术在生命科学领域中的广泛应用和深远影响。在
    发表于 10-14 09:21

    AI for Science:人工智能驱动科学创新》第二章AI for Science的技术支撑学习心得

    非常高兴本周末收到一本新书,也非常感谢平台提供阅读机会。 这是一本挺好的书,包装精美,内容详实,干活满满。 关于《AI for Science:人工智能驱动科学创新》第二章“AI
    发表于 10-14 09:16

    人工智能ai4s试读申请

    目前人工智能在绘画对话等大模型领域应用广阔,ai4s也是方兴未艾。但是如何有效利用ai4s工具助力科研是个需要研究的课题,本书对ai4s基本原理和原则,方法进行描诉,有利于总结经验,拟
    发表于 09-09 15:36

    “大模型驱动软件研发”助推企业研发智能化升级

    AI 大模型推动软件工具链发展,加速软件研发,成为当前的研究热点。 为进一步推进产学研用深度融合,聚焦软件工具链的
    的头像 发表于 05-09 22:59 393次阅读
    “大模型<b class='flag-5'>驱动</b>的<b class='flag-5'>软件</b><b class='flag-5'>研发</b>”助推企业<b class='flag-5'>研发</b>智能化升级

    英伟达斥资7亿美元收购以色列AI软件公司Run:ai

    NVIDIA已宣布收购以色列初创AI公司Run:ai,后者专注研发AI计算资源管理软件。据公司声明,自2020年起,双方已有紧密合作;虽然未
    的头像 发表于 04-25 09:55 576次阅读

    英特尔宣布AI PC加速计划新增两项AI举措

    首先,“AI PC 开发者计划”面向软件研发人员和独立软件开发商,为他们提供便捷的开发环境,助力加速大规模运用新型
    的头像 发表于 03-27 16:03 396次阅读

    NVIDIA AI助力百余家公司加速药物研发创新

    在药物研发领域,NVIDIA的AI技术正发挥着日益重要的作用。Cadence、Iambic Therapeutics等超过100家公司已采用NVIDIA的AI解决方案,推动计算机辅助药物研发
    的头像 发表于 03-27 10:31 436次阅读

    NVIDIA生成式AI微服务助力企业在几秒内检测并解决软件安全问题

    得益于生成式 AI软件正在编写软件
    的头像 发表于 03-21 09:41 380次阅读

    国产化自动测试软件ATECLOUD提供于研发、生产测试方案

    国产软件的发展对于减少对外依赖、维护国家信息安全、促进经济社会发展具有重要作用。ATECLOUD的研发和应用,能够在确保测试准确性和高效性的同时,保障技术数据的安全性和可控性,助力国产化测试
    的头像 发表于 03-13 14:09 732次阅读
    国产化自动测试<b class='flag-5'>软件</b>ATECLOUD提供于<b class='flag-5'>研发</b>、生产测试方案

    蚂蚁集团AI研发部门开源AI Infra技术,助力大模型训练效率提升

    蚂蚁集团AI创新研发部门NextEvo近日宣布,他们将全面开源AI Infra技术,以推动AI研发效率的提升。该技术框架名为DLRover,
    的头像 发表于 02-04 10:01 1098次阅读