EvoGraph: Hybrid Directed Graph Evolution toward Software 3.0

📄 arXiv: 2508.05199v1 📥 PDF

作者: Igor Costa, Christopher Baran

分类: cs.SE, cs.AI

发布日期: 2025-08-07

备注: 15 pages, 3 tables, 1 algorithm. Submitted to ICSE 2025


💡 一句话要点

EvoGraph:混合有向图进化框架,迈向软件3.0时代

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 软件演化 有向图 小型语言模型 代码现代化 自动化修复

📋 核心要点

  1. 现有软件系统难以自动化演进,面临代码维护、安全漏洞修复和跨平台迁移等挑战。
  2. EvoGraph采用有向图表示软件系统,利用小型语言模型驱动的变异算子进行代码进化。
  3. 实验结果表明,EvoGraph在漏洞修复、代码翻译和文档维护方面表现出色,显著降低了延迟和交付周期。

📝 摘要(中文)

EvoGraph是一个使软件系统能够进化自身源代码、构建流程、文档和问题的框架。它使用类型化的有向图表示每个软件组件,应用由专用小型语言模型(SLM)驱动的学习到的变异算子,并通过多目标适应度选择幸存者。在三个基准测试中,EvoGraph修复了83%的已知安全漏洞,将COBOL翻译成Java,功能等效性达到93%(通过测试验证),并在两分钟内保持文档的新鲜度。实验表明,与强大的基线相比,延迟降低了40%,功能交付周期缩短了七倍。该方法扩展到evoGraph,利用特定于语言的SLM来现代化.NET、Lisp、CGI、ColdFusion、遗留Python和C代码库,在跨语言实现82-96%的语义等效性的同时,计算成本降低了90%(与大型语言模型相比)。EvoGraph的设计解决了遗留系统现代化改造中的经验性失败模式,例如隐式契约、性能保持和集成演化。结果表明,这为软件3.0提供了一条切实可行的道路,即系统能够持续适应,同时保持在可衡量的控制之下。

🔬 方法详解

问题定义:现有软件系统演进面临诸多挑战,包括代码库老化、安全漏洞频发、跨平台迁移困难以及文档维护滞后等问题。传统方法往往依赖人工干预,效率低下且容易出错。现有自动化方法,如基于大型语言模型的代码生成,计算成本高昂,且难以保证语义一致性和性能。

核心思路:EvoGraph的核心思路是将软件系统的各个组成部分(源代码、构建脚本、文档、问题工单等)表示为有向图中的节点,节点之间的边表示依赖关系。通过定义一系列变异算子,对图进行迭代演化,从而实现软件系统的自动化改进和优化。这种基于图的表示方法能够更好地捕捉软件系统的结构信息和依赖关系,从而提高演化的效率和质量。

技术框架:EvoGraph框架主要包含以下几个模块:1) 图表示模块:将软件系统表示为类型化的有向图。2) 变异算子模块:利用小型语言模型(SLM)学习并生成变异算子,用于修改图中的节点和边。3) 适应度评估模块:定义多目标适应度函数,用于评估演化后的软件系统的质量,包括安全性、功能等效性和性能等指标。4) 选择模块:根据适应度值选择优秀的个体(即演化后的软件系统)作为下一代。

关键创新:EvoGraph的关键创新在于:1) 混合有向图表示:能够全面捕捉软件系统的结构和依赖关系。2) 小型语言模型驱动的变异算子:降低了计算成本,并提高了变异的效率和质量。3) 多目标适应度评估:能够综合考虑软件系统的多个质量指标,从而实现更全面的优化。

关键设计:EvoGraph的关键设计包括:1) 类型化的有向图:节点类型包括源代码、构建脚本、文档等,边类型表示依赖关系。2) 小型语言模型(SLM):针对特定语言和任务进行训练,例如代码翻译、漏洞修复等。3) 多目标适应度函数:综合考虑安全性(漏洞数量)、功能等效性(测试用例通过率)和性能(执行时间)等指标。4) 演化算法:采用遗传算法或其他进化算法进行搜索和优化。

🖼️ 关键图片

fig_0

📊 实验亮点

EvoGraph在三个基准测试中表现出色:修复了83%的已知安全漏洞,将COBOL翻译成Java的功能等效性达到93%,并在两分钟内保持文档的新鲜度。与基线方法相比,延迟降低了40%,功能交付周期缩短了七倍。在遗留代码现代化改造方面,EvoGraph在跨语言实现82-96%语义等效性的同时,计算成本降低了90%(与大型语言模型相比)。

🎯 应用场景

EvoGraph可应用于遗留系统现代化改造、软件安全漏洞自动修复、跨平台代码迁移、软件文档自动维护等领域。它能够显著降低软件开发和维护的成本,提高软件质量和安全性,加速软件交付周期。未来,EvoGraph有望成为软件开发自动化和智能化的重要基础设施。

📄 摘要(原文)

We introduce EvoGraph, a framework that enables software systems to evolve their own source code, build pipelines, documentation, and tickets. EvoGraph represents every artefact in a typed directed graph, applies learned mutation operators driven by specialized small language models (SLMs), and selects survivors with a multi-objective fitness. On three benchmarks, EvoGraph fixes 83% of known security vulnerabilities, translates COBOL to Java with 93% functional equivalence (test verified), and maintains documentation freshness within two minutes. Experiments show a 40% latency reduction and a sevenfold drop in feature lead time compared with strong baselines. We extend our approach to evoGraph, leveraging language-specific SLMs for modernizing .NET, Lisp, CGI, ColdFusion, legacy Python, and C codebases, achieving 82-96% semantic equivalence across languages while reducing computational costs by 90% compared to large language models. EvoGraph's design responds to empirical failure modes in legacy modernization, such as implicit contracts, performance preservation, and integration evolution. Our results suggest a practical path toward Software 3.0, where systems adapt continuously yet remain under measurable control.