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仍处于起步阶段,但每天都会出现新的、功能更强的工具,这为专注于不断学习、适应和发展的企业提供了可持续的长期竞争优势。





审核编辑:刘清

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

    关注

    1783

    文章

    45203

    浏览量

    232557
  • AWS
    AWS
    +关注

    关注

    0

    文章

    408

    浏览量

    24062
  • javascript语言

    关注

    0

    文章

    3

    浏览量

    937
  • OpenAI
    +关注

    关注

    9

    文章

    930

    浏览量

    6098
  • LLM
    LLM
    +关注

    关注

    0

    文章

    225

    浏览量

    254

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

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

收藏 人收藏

    评论

    相关推荐

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

    AI 大模型推动软件工具链发展,加速软件研发,成为当前的研究热点。 为进一步推进产学研用深度融合,聚焦软件工具链的
    的头像 发表于 05-09 22:59 295次阅读
    “大模型<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 247次阅读

    越南FPT与英伟达达成AI全面战略合作,投资2亿美元兴建AI工厂

    根据声明,FPT将借助英伟达技术推动AI研发,并为越南及全球客户提供相关服务;而英伟达则助力FPT深度挖掘AI在汽车以及数字化转型领域的价值。
    的头像 发表于 04-23 16:39 399次阅读

    AI快讯:华为助力金融行业加速拥抱AI 马斯克xAI 展示首个多模态模型

    AI快讯:华为助力金融行业加速拥抱AI 马斯克xAI 展示首个多模态模型 小编给大家汇总一下近期的AI资讯。 华为助力金融行业加速拥抱
    发表于 04-15 12:32 201次阅读

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

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

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

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

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

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

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

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

    字节跳动被曝正秘密研发多个AI产品

    据多位知情人士透露,科技巨头字节跳动正在人工智能(AI)大模型领域秘密研发多个创新产品。其中,多模态数字人产品备受瞩目,该产品将结合先进的AI技术与虚拟形象,为用户提供全新的交互体验。此外,字节跳动还在
    的头像 发表于 03-05 11:22 623次阅读

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

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

    AI如何助力我们构建更智能的空间?利用AI构建智能空间的5种方式

    当下业界都聚焦于生成式 AI 如何推动未来变革,但我们也不妨回顾一下过去的一年,AI 如何助力我们构建更智能的空间。
    的头像 发表于 01-24 18:19 852次阅读

    市场活动 | 中国软件技术大会,润和软件AI创新成果助力金融产业搭上“数智快车”

    12月15-16日,由中国科学院软件研究所、中科软科技股份有限公司联合主办的“2023中国软件技术大会”在北京圆满举行。本次大会以“大模型驱动下的软件变革”为主题,业界专家、企业高管、
    的头像 发表于 12-19 15:55 337次阅读

    ai机器人打电话助力各行业

    机器人AI
    jf_86111705
    发布于 :2023年09月07日 18:20:45

    墨芯支持Byte MLPerf助力AI应用

    在大模型趋势下,墨芯通过领先的稀疏计算优势,助力企业加速AI应用,商业化进程接连取得重要突破。
    的头像 发表于 09-07 11:37 754次阅读
    墨芯支持Byte MLPerf<b class='flag-5'>助力</b><b class='flag-5'>AI</b>应用

    AI Powered 软件工厂助力行业应用现代化“再进化”

    开始向“AI生成应用”演进,而应用现代化助力企业战略落地,是企业数字化转型的关键。 ▲中软国际华为业务集团软件工厂业务部副总裁张伟发表演讲 张伟在演讲中表示,传统的应用往往更偏向于IT视角的项目制开发,是利用信息化技术对业务逻辑
    的头像 发表于 07-09 14:05 333次阅读