
核心在于,它大幅降低了从意图到实现之间的摩擦。现代LLM可将自然语言需求直接转译为可编译代码,显著缩短开发周期。
主要优势:
上述能力共同使其在追求快速上市与应对日益复杂系统压力的环境中极具吸引力。
尽管优势显著,安全关键软件开发所施加的约束从根本上挑战了纯AI驱动代码生成(即‘氛围编码’)的可行性。
行业实践与当前研究一致得出明确结论:AI生成代码本身对安全关键系统不具备内在可信度。
仅当其经历与人工编写代码同等严格的验证与确认(V&V)流程后,方可被接受。
该流程包括:
换言之,“氛围编码”或AI代码生成并未消除传统安全工程实践的必要性,反而凸显其重要性。
鉴于独立AI代码生成的局限性,当前研究与实验性工作普遍趋向于一种混合模型。
在此范式中:AI负责从需求生成代码;确定性工具则实时标记潜在缺陷与不合规项。二者构成反馈闭环——若分析工具检测到问题,即生成诊断信息并提交给AI代理请求修复;代理尝试修正后,修改版代码重新进入流水线;循环迭代直至代码通过全部质量关卡,最终提交人工专家复审。
此类工作流的核心价值在于显著降低最终人工复审所需投入。确定性代码分析工具可自动识别并消除整类问题,从而节省验证与批准环节的时间与精力。该模式建立在成熟的软件测试自动化基础之上。
宏观上看,此构想颇具吸引力,但仍面临若干挑战。首要在于:整体效能受限于流水线中集成的确定性工具能力。自动化检测仅对特定类问题可行,典型如静态分析——可作为质量关卡嵌入流水线,系统性依据预设规则评估代码。此类工具擅长识别潜在运行时错误、未定义行为等,并强制执行MISRA等编码标准,从而提升对AI生成代码的信心。
当发现违规时,静态分析工具输出的诊断信息通常结构清晰、可操作性强;在多数情况下,这些信息可被AI代理直接接收并用于代码修复。除静态分析外,单元测试、属性测试及形式化验证等技术亦可进一步强化该自动化流程的稳健性。
易IC库存管理软件
该工作流假设需求文档已包含测试用例规范:需求连同生成请求一并提交给AI代理;测试用例规范则用于自动生成单元、集成及系统级测试用例。生成代码随后通过多级关卡——执行前述测试用例,并将失败结果与代码覆盖率反馈至AI代理,触发修复请求(可能涉及修改代码、调整测试用例或补充新测试)。
当所有关卡均通过后,代码提交人工专家复审。理论上,此时代码应已清除所有可被质量关卡识别的问题。与此同时,另一代理被指派整合各关卡执行报告,并起草初始版安全文档。
需强调:此流程为简化模型,未涵盖真实安全关键软件开发的全部复杂性,仅旨在阐明当前活跃研究方向及AI代理在其中的潜在角色。其核心价值在于:通过前置消除特定类缺陷,切实减轻最终人工复审与批准负担。
另一替代路径是赋予代理一套技能集合——包括代码构建、静态分析执行及各类测试运行能力。在此模式下,代理拥有充分自主权,可自行决策达成目标所需步骤。
“技能导向”路径更契合AI代理长期融入软件开发的战略愿景。但目前多数团队倾向采用管控更严格的方案,原因在于:处理大型代码库(如为既有系统新增功能)时,代理采取“不合理”行动(如无谓重建整个代码库)所耗费的时间与计算资源成本过高。
内部曾实施图3所示实验流程:目标为验证能否对简单C++程序进行‘氛围编码’,并自动通过三重关卡——MISRA指南静态分析、MC/DC覆盖单元测试、带覆盖率的集成测试。团队选用多个主流编程挑战基准集,但结论是:现有基准集复杂度不足,难以全面评估该流程在自动化精炼‘氛围编码’实现中的可行性。因此转向更基础问题:能否生成功能正确且自动符合MISRA C++:2023标准的简单C++程序?
实验设置如下图所示:
实验结果积极:代理成功为所有案例生成功能正确代码,并自动确保其符合MISRA C++:2023标准。下图展示了达成合规与功能正确所需的迭代次数分布:
在总计72个测试案例中,46个仅需2轮迭代即达成目标;仅6个案例需6轮迭代完成。这表明:将静态分析纳入自动化反馈闭环,完全可行——足以保障AI生成代码符合安全关键软件常用行业标准。
‘氛围编码’正在变革软件开发方式,带来显著的生产力与灵活性提升。然而,其在安全关键系统中的应用受限于确定性、可追溯性与可验证性的根本要求。
基于当前能力,‘氛围编码’不应被视为传统安全关键代码开发的替代方案,而应定位为增强层。
AI编程代理应被视为紧密受控、以验证为核心流程中的协作伙伴。恰当使用时,它们能在不牺牲安全的前提下提升效率——这一平衡,正是未来关键系统开发的关键所在。