AI 软件开发生命周期 (SDLC) 代表将 AI 工具和系统集成到传统 SDLC 的每个阶段,以增强人类开发人员的能力。此举旨在提高软件开发各阶段的速度、质量和决策能力。
将人工智能整合到传统 SDLC 是业务流程中向 AI 驱动方法持续转变的一部分,可以说是这种转变中最重要的组件。AI 和机器学习正迅速成为编程学科的基础,几乎各行各业的组织都在尝试新的 AI 开发工具和方法。一些科技界有影响力的人甚至热情地宣称传统编程作为一门严谨学科已经终结,并质疑以老式方法学习编程是否还有“价值”。AI 代码生成不再是新鲜事物,而是编程实践的核心。
智能体式 AI 系统现在正充当程序员的副驾驶。由大语言模型 (LLM) 提供支持的平台正在使软件开发实践大众化,将之向几乎没有或根本没有编程经验的从业者开放,并消除了其中的许多繁琐工作。这些工具使开发人员可以花更多的时间来构建令人兴奋的新系统,而不是执行一些与编程相关的必要但机械生硬的任务。
然而,专家提醒不要过度依赖人工智能驱动的工具。虽然 AI 具有明显的优势,可以让 SDLC 更快、更好、更便宜,甚至更有趣,但这些工具也有其缺点。如何设计能够兼顾 AI 优势以及经验丰富的人类开发人员的专业知识和推理能力的工作流程,仍然是一个挑战。
获取有关最重要且最有趣的 AI 新闻的精选洞察分析。订阅我们的每周 Think 时事通讯。请参阅 IBM 隐私声明。
SDLC 的目标是以最低成本、最短周期交付最高质量软件。纵观软件工程发展的历程,衍生出了多种标准化开发方法论。20 世纪 70 年代兴起的瀑布开发法划分了清晰的串行阶段,必须完成当前阶段工作,开发人员才能进入下一阶段。
在接下来的十年里,僵化的瀑布模式让位于迭代式开发,后者的各阶段允许部分实现、用户反馈和完善。21 世纪带来了敏捷开发,它将开发方法转向协作、改进反馈和更迭代的开发周期。在接下来的十年里,DevOps 实践逐渐普及。这套文化理念、实践和工具将开发与运营团队整合起来,以实现持续集成和持续交付 (CI/CD)。
这些创新极大地改进了 SDLC,但是该过程仍然存在问题。开发人员虽然更愿意构建新系统,但还是把时间花在了“救急”上。他们仍在处理孤立且零散的工作流。在许多组织中,他们必须努力处理数十年间由于不协调的解决方案和不进行长远规划就实施的快速补丁所累积的技术债务。
随着转换器这种使现代 LLM 成为可能的模型架构的发展,AI 领域取得了巨大的飞跃。OpenAI 于 2021 年推出的 Codex 是其 GPT-3 模型的后继产品,并且使用了大量公开代码进行训练。许多人认为,这一版本代表了 AI 编程时代的到来。同年晚些时候,GitHub 发布了由 Codex 提供支持的 Copilot 编程助手。此时,AI 编程辅助不再仅是学术研究中的小众兴趣,而已成为主流产品,正在企业工作流中迅速部署。
次年,OpenAI 的 ChatGPT 将与人工智能驱动的聊天机器人进行对话的概念引入大众视线。虽然与 AI 对话的能力很重要,但 AI 也需要能够理解代码的更广泛上下文,以便提供最佳建议。后来的发展,如 Code Llama,允许更大的上下文窗口和更好的上下文理解。
智能体系统代表着下一项重大创新。借助能够推理和行动的智能体(如 ReAct 框架),LLM 不仅可以思考和交谈,还可以在开发环境中采取行动。现在,智能体可以半自主地进行工具调用和代码库互动。
AI 智能体仍在彻底改变软件开发。智能体并非取代人类开发人员,而是作为智能层,提高生产力、减轻认知负担并改善决策。从规划、分析、编程、测试、部署到维护,AI 将 SDLC 转变为一个更具适应性、更高效和可迭代的流程。
革命仍在继续,智能体辅助编程有可能成为比瀑布式、敏捷式或 DevOps 影响更深远的开发范式转变。
AI 解决方案可用于整个 SDLC,提供从规划到维护的端到端支持。
项目规划阶段确定软件开发项目的目标和范围。AI 赋能构思与范围划定等前期环节,协助团队梳理目标,将业务思路转化为标准化方案。自然语言处理 (NLP) 工具可汇总利益相关者访谈内容,生成项目路线图。AI 项目管理工具可辅助制定时间排期、分配各类资源。
在分析阶段,开发团队收集并分析有关项目需求的信息。AI 可以将电子邮件、聊天机器人对话服务工单等非结构化信息转化为规范需求文档。AI 也可作为质量保障工具,依托专用模型识别并校验需求合理性。模型可分析指定技术栈落地可行性,预判性能瓶颈、兼容问题,并给出基础设施供应商选型建议。
设计阶段包括定义项目的架构。核心步骤包括概述软件的导览、用户界面、数据库设计。AI 可以提供结构建议,帮助人工设计师选择各种架构方法、软件框架、数据库模式及其他元素。同样,用户界面也可以快速生成和测试。生成式 AI 工具还可以生成交互式原型。
测试阶段在开发团队创建软件的功能片段后开始。在此阶段,团队寻找机会消除错误并增强最终产品。AI 可以分析代码库,识别潜在故障点与复杂边界场景,自动生成测试用例。它可以检测应用程序运行异常,并执行视觉回归测试。
在部署阶段,经过精细调优的软件被部署到生产环境中,用户可以访问它。AI 可以通过预测瓶颈并提高日常任务的自动化程度来简化和优化持续集成和部署管道。AI 监控系统可实时分析日志、指标和系统行为,在潜在故障升级之前将其检测出来,从而最大限度地减少代价高昂的停机时间。
维护阶段包括软件团队为帮助确保软件的持续运营而开展的部署后工作:推送更新和优化、进行意外的更改、测试补丁、应对新用例以及消除用户发现的任何错误。AI 编程软件可以自动对错误报告进行分类和优先级排序,总结事件并提出根本原因建议,并提出调试修复建议。它通过对联锁系统进行持续监控,使维护工作能够更加积极主动,从而令这些系统能够发现人类可能忽略的低效之处。
AI 工具是由复杂算法驱动的概率系统,其推理方式与人类工程师不同。他们的输出基于训练数据集中的模式,而不是真正的理解。AI 生成的代码可能看起来正确,但可能包含一些微妙的问题。它预测的是从统计学角度来看,什么应该有效,而不是在特定的现实环境中什么确实有效。AI 可能会忽略或低估跨系统依赖关系、API 集成或组织设计标准的重要性。它们可以调用实际上并不存在的函数,因为它们会出现幻觉。未经审查的 AI 代码可能引入安全漏洞或资源效率低下。
大型组织和企业现在正在尝试人工智能辅助编程工具,甚至鼓励其员工涉足“氛围编程”。现代企业的任务是在人类输入与 AI 协助之间找到适当的平衡。对于任何类型的严肃编程项目,通常建议采用人机回圈 (HITL) 方法。
代码编写不再是核心瓶颈,AI 生成代码的审核校验才是。评估工作可部分交由 AI 执行,但组织仍需升级审核流程、最佳实践,甚至重塑 AI 生成代码评审相关的团队规范。甚至开发团队人员架构与整套开发流程都需重新调整,以适配这类新技术。例如,高级工程师需将更多精力投入架构设计与代码审核,而非基础编码实现。开发人员的定位将更多偏向方案统筹与问题攻坚。能够重构 SDLC、充分利用 AI 工具的企业,可实现更快交付与业务创新。
借助您的 AI 合作伙伴 IBM® Bob,加速软件交付,实现安全的意图感知型开发。
利用企业级工具更快地开发、部署和管理 AI 应用程序。
用智能 AI 现代化重新构想旧版系统。