本文全面探讨AI在软件开发领域的革命性应用,包括代码生成、解释、测试自动化和DevOps优化等方面。AI工具可提升开发效率30-50%,让开发者专注于战略决策和架构设计。文章强调AI不是取代开发者,而是与之协作,通过火山引擎、Spring AI等平台实现智能化开发。企业应拥抱AI+X转型,将AI扩展至产品管理、质量保证等领域,以获得长期竞争优势。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

人工智能(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 流水线。

图1 当前的敏捷 SDLC

2. AI驱动的 SDLC

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

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

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

图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 、CodeArts Snap等AI工具可以根据简单的文本提示生成整个代码功能。

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

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

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

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

让我们试试下面的提示:

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

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

(生成的代码确实会根据提示接收字符串并解析 CSV,但不会进一步将邮政编码地理编码为经纬度值。)

虽然这项更为复杂的任务需要进一步引导它去查询,例如访问 REST API(如美国人口普查局 Geocoder REST APIs8 提供的 REST API),但还是需要谨慎和警惕,因为该工具甚至没有尝试彻底解决问题。相反,它只是提供了一个模板代码,没有达到预期效果。

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

2)代码解释

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

例如,让我们看看下面的 Angular 函数:

我们可以给出提示 “解释下面的 Angular 代码是做什么的”。

下面 ChatGPT 的回复相当全面、准确地解释了函数的作用:

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

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

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

  • 编写用户故事
  • 生成数据模型
  • 生成 DDL 和 DML
  • 用人鱼脚本生成数据图表
  • 生成序列图
  • 生成系统图
  • 用任何语言生成 OO 类模型
  • 生成代码
  • 将代码从一种语言翻译成另一种语言
  • 编写自动测试
  • AI如何彻底改变软件开发:从入门到精通的全面指南编写代码文档
  • 为基于 REST 的应用程序接口编写 Swagger 定义
  • 改进(重构)现有代码
  • 编写代码注释
  • 生成线框(GalileoAI)
  • 调试代码 + 静态分析(Deepcode)
  • 自动代码重构(Sourcery)
  • 设计模式识别
  • 代码审查(DeepScan)

更完整的清单超出了本文的范围,将在后续文章中介绍。不过,在开始一项复杂的任务之前,最好先在网上查看一下AI功能。可能已经有AI工具或插件可以解决问题。未来还将带来更多工具,并扩展现有工具的功能。在AI的帮助下,开发人员、架构师和参与 SDLC 的每个人都将变成能够更快地编写出更好代码的超人

4. 结论

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

企业可以通过拥抱变化并将AI定位为技术转型的核心(AI+X),从AI革命中获益;我们需要将AI的力量视为一种推动力,而不是一种威胁;我们的员工必须根据新出现的新一代AI工具接受再培训,以了解其真正的潜力。此外,企业还可以将AI的应用范围从软件工程扩展到产品管理、质量保证、网络安全和 DevOps。

总之,本文表明,虽然AIGC仍处于起步阶段,但每天都会出现新的、功能更强的工具,这为专注于不断学习、适应和发展的企业提供了可持续的长期竞争优势。

二、使用 AI 驱动的 DevOps ,提升软件开发生产力

(OpenText)

在这个充满活力的软件开发时代,企业力争更快提供创新和高质量的应用程序。然而,DevOps 的成功需要在速度、敏捷性和质量之间取得微妙的平衡。在此过程中出现的任何失误,都可能导致软件交付延迟、客户满意度下降、返工以及团队士气低落等问题。

采用创新方法,让 AI 答疑解惑,释放人类创造力,成为未来的解决方案。OpenText 通过软件交付解决方案 OpenText DevOps Aviator,使用生成式 AI 和大型语言模型**(LLM)**开创了这个充满可能性的新时代。

使用DevOps Aviator让生产力起飞

OpenText DevOps Aviator 是数字时代优化软件交付的终极解决方案。其先进的生成式 AI 功能和新一代 LLM 可增强开发人员的能力、加快应用程序的交付并深入洞察您的数字价值流。

借助 OpenText Cloud Editions (CE) 24.3 中引入的最新进展和创新,DevOps Aviator 可让您:

  • 将每次点击和步骤转化为 GenAI 驱动的测试。
  • 利用 AI 生成的测试步骤。
  • 向 AI 询问功能、缺陷和测试相关问题。

将每次点击和步骤

转化为 GenAI 驱动的测试

借助 CE 24.3,DevOps Aviator 可让您轻松生成高效自动化测试。利用其新一代 AI,轻松将手动测试脚本转换为自动化无代码测试或 Gherkin BDD 测试。使用 DevOps Aviator,只需较少的人工参与即可实现自动化测试,将工作速度从数天内完成提升至数分钟内完成。

DevOps Aviator 可在手动测试的基础上一键生成自动化无代码测试

DevOps Aviator 可将测试步骤转换为 Gherkin 格式

利用 AI 生成的测试步骤

利用 AI 的强大功能生成测试,可从头到尾加速测试创建。DevOps Aviator 现在只需一个简单的命令就能建议手动测试步骤。在 DevOps Aviator 中,利用生成式 AI 减少繁琐的任务,将更多精力放在创造价值的工作上。

向 AI 询问功能、缺陷和测试相关问题

DevOps Aviator 能将复杂的信息翻译成通俗易懂的英语。它的 AI 辅助聊天代理被称为智能助手,可让您使用简单的对话界面快速请求信息,并以用户友好的语言获得简明扼要的回复。

CE 24.3 中的最新功能增强了智能助手对各种用例的支持。您可以与 AI 互动,快速获得有关功能、缺陷和测试的答案。现在,团队中的每个人都能获得快速、可行的洞察力,从而节省时间并——

  • 生成建议任务的明细表。
  • 分析根因和受影响区域。
  • 总结之前的意见与相关问题。

智能助手会根据要求从 AI 辅助聊天界面为您推荐内容

使用 DevOps Aviator 重构未来

DevOps Aviator 可节省时间并交付高质量软件,同时将风险和障碍抛在脑后。无论您的专业水平如何,其先进的生成式 AI 功能和新一代 LLM 都能减轻软件开发和测试的负担。

使用 DevOps Aviator 将生产力提升到新的高度,以便:

  • 将生产力从几天提高到几分钟。
  • 利用快速、可行的洞察力加快决策。
  • 提高整个价值交付流程的效率。
  • 赋予开发人员和测试人员创造价值的能力。

读者福利:倘若大家对大模型感兴趣,那么这套大模型学习资料一定对你有用。

针对0基础小白:

如果你是零基础小白,快速入门大模型是可行的。
大模型学习流程较短,学习内容全面,需要理论与实践结合
学习计划和方向能根据资料进行归纳总结

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

保证100%免费
👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉大模型视频和PDF合集👈

这里我们能提供零基础学习书籍和视频。作为最快捷也是最有效的方式之一,跟着老师的思路,由浅入深,从理论到实操,其实大模型并不难

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:
保证100%免费