0530-3433334

网站建设 APP开发 小程序

知识

分享你我感悟

您当前位置>首页 >> 知识 >> 软件开发

全流程自动化软件开发框架(Chat-)

发表时间:2023-09-12 19:19:34

文章来源:炫佑科技

浏览次数:126

菏泽炫佑科技

全流程自动化软件开发框架(Chat-)

近日,我们课题组联合Face Wall 、北京邮电大学、布朗大学的研究人员,共同发布了大型模型驱动的全流程自动化软件开发框架(Chat-)[1]。 计划成为一家多主体协作运营的虚拟软件公司。 在人类“用户”指定特定的任务需求后,不同角色的代理将交互协作生产出完整的软件(包括源代码、环境依赖说明、用户手册等)。 该技术为软件开发自动化提供了新的可能,支持快速、高效、高性价比的软件生产,未来将有效地将部分人力从传统软件开发的繁重劳动中解放出来。

论文链接:

研究背景

软件工程( )是涉及需求分析、系统开发、软件测试、运维等的系统性、综合性活动。由于软件开发的复杂性,不同环节之间需要特定的角色进行沟通和决策。 近年来,深度学习技术的*新研究探索了其在软件工程各个主要阶段的应用,包括需求分析模型、代码生成模型、单元测试模型等,主要目的是提高软件工程各个环节的效率。软件开发和降低成本。 近年来全流程自动化软件开发框架(Chat-),大型语言模型(LLM)在自然语言处理(NLP)领域取得了重要进展。 通过大规模语料库训练,他们在智能问答、机器翻译等众多下游任务中展现了强大的语言理解和生成能力。 事实上,软件开发涉及的两个核心要素——代码和文档——都可以认为是“语言”。 本文从这个角度出发,探索一种由大语言模型驱动的自动化软件开发框架,旨在为整个软件开发过程提供统一、高效、经济的新范式。

框架概述

本文[1]借鉴了软件工程瀑布模型的思想,将其分为四个主要环节:软件设计、系统开发、集成测试、文档。 之后,通过对软件开发瀑布模型的进一步分解,形成了由原子任务组成的通信链(Chat Chain)。 整个链条可以看作是由原子任务组成的“软件生产线”。 链中各子任务通过具有专业角色的代理(如产品设计人员、程序员、测试工程师等)进行会话式信息交互和决策[2, 4]; 驱动它执行自动化需求分析、头脑风暴、系统开发、集成测试、GUI创建和文档等全流程软件工程。

驱动Agent通信和对话的主要机制有:角色专门化(Role)、记忆流( Flow)和自我反思(Self-):

下图的例子展示了“编程语言讨论”框架中两个智能体之间的对话和交流过程:

在编码阶段,采用面向对象的编程语言,其模块化、继承等特点可以减少整个系统的代码冗余。 另外,利用代码进化(Code )机制,通过Git版本控制,只将*新版本的源代码呈现给通信链中的各个环节。

在编码和测试阶段,为了缓解代码幻觉问题,本文提出了一种思维指令策略( )来缓解潜在的代码幻觉。 具体来说,就是通过角色反转(Role)来获取代码审查者()在沟通过程中实际上希望程序员()修改的代码块的精确片段,然后将这种思维注入到提示中来表明信息以更细粒度的方式进行程序。 让开发人员优化他们的代码以支持常见的代码幻觉问题(例如编写未实现的接口、添加必要的注释、消除测试错误等)。

在文档过程中,通过对需求和代码的理解生成环境配置说明和用户手册。 然后,人类“用户”可以“打包”生成的软件并对其进行配置以供使用。

实验评价

实验从CAMEL[2]的任务库中随机抽取70个软件开发任务进行测试。 根据用户任务需求的抽象性或特殊性,所产生的软件的复杂性也有很大不同。 如下图所示,软件平均生成代码131.61行,外部依赖2.90行,指令53.96行。

此外,生成的软件的复杂性与用户任务要求的特殊性密切相关。 根据软件的复杂程度,完成每项任务所需的具体时间也会有所波动。 从接收需求到制作软件的整个开发周期*长用时1030.0秒,*短用时169.0秒。 软件平均制作时间不到7.0分钟,制作成本不到3.0元(即买一杯可乐的价格和喝下可乐的时间)。

以“设计双陆棋”为例,程序员和测试人员首先会生成一个基于终端的程序(左一); GUI设计将在此基础上增加初步的用户交互界面(左二); 创意设计师将根据GUI的需要添加交互界面,创建相应的图像素材(左三); 人类“用户”可以选择性地替换图像素材,使其更符合用户的审美需求(左四)。

此外,还可以支持网络爬虫、数据库读写、文件批量处理、网页设计、数学计算器、贪吃蛇等小型软件的开发。

局限性分析及未来展望

新范式的出现必然会带来新的限制和挑战,同时也会面临诸多限制:

我们希望在了解这些局限性的基础上,能够有一个更加清晰的适用范围自动化软件开发,在实际应用中充分发挥其优势,同时对可能出现的问题保持警惕。 通过未来的不断研究和改进,我相信这些挑战将会被逐步克服,并展现出更好的性能。

参考

[1]

[2]

[3]

[4]

科研实习生\科研助理招聘

作为大型模型群体智能的初步工作,仍有很大的继续研究空间。 欢迎专家学者关注\交流\评议\合作\共建。 欢迎有兴趣的本科生、硕士生、博士生加入课题组,共同研究、共同探索。 大型群体行为模型的新思想、新资源和新范式。 我们将继续围绕大模型群体行为开展进一步的研究,重点探索基于Agent的软件开发、多Agent协作与博弈、多Agent自组织管理等。

科研实习生或科研助理简历请联系:钱老师。 通过简历审核的学生将进行1-2轮面试。 通过整个流程后,即可正式加入团队开展研究工作。 我们希望您能加入!

炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等

相关案例查看更多