欢迎光临散文网 会员登陆 & 注册

CHATDEV—初级程序员的福音,一种用于软件开发过程的创新范式的核心

2023-07-26 10:30 作者:华魔王与青衫客  | 我要投稿

CHATDEV

        清华大学、北京邮电大学和布朗大学的研究者提出了一种创新的软件开发范式,该范式利用大型语言模型(LLM)在整个软件开发过程中实现了自然语言通信的简化和统一。这一范式的核心被称为CHATDEV,它基于经典的瀑布模型,并将软件开发过程划分为设计、编码、测试和文档四个阶段。每个阶段都有一个代理团队,如程序员、代码评审员和测试工程师,他们通过协作对话和无缝工作流程来推进开发过程。聊天链在其中起到了促进作用,将每个阶段细分为原子子任务。CHATDEV充分发挥了双重角色的优势,通过上下文感知的通信来提出和验证解决方案,从而高效地解决特定的子任务。CHATDEV的实用工具分析突出了其在软件生成方面的显著效果,使整个软件开发过程可以在不到七分钟的时间内完成,成本不到一美元。它不仅能够识别和解决潜在的漏洞,还能纠正潜在的误解,同时保持了卓越的效率和经济效益。CHATDEV展示了将LLM整合到软件开发领域的新可能性。

        以上的话,用人话来翻译就是,在软件开发过程中基本实现了无人化,人类客户只需要提出需求,接下来的所有工作量全部由电脑自主完成,使用什么语言开发,编程文档,界面的设计与美化,系统测试,bug修改,自动制定全面的软件解决方案,包括源代码、环境依赖性和用户手册。

        那么这个范式是怎么做到的呢?

        首先,这个范式使用 Chat Chain 将软件开发过程分解为顺序的各个原子任务,相当于规定了什么时间该做什么,由谁和谁去讨论,去实现,这样可以更精准的关注软件开发过程的每一步骤,确保准确性。

        其次,讲讲软件开发过程四个阶段的优秀设计:

        设计阶段:设计阶段的优秀实现主要包含角色分配、记忆流、自我反思三个方面。角色分配主要负责指定当前由哪个代理担任某一角色,CEO、CPO、CTO、测试工程师以及程序员等;记忆流会保存一定时间内的聊天记录,如果当前角色需要使用就可以去翻找,但是有些过于古早的记录,相当于被淘汰了,就查不到了;自我反思,有时候两个角色的讨论明明有结果但是没有结论性的话语来结束讨论,也就是没有结束指令,那么制造一个伪我来提问,要求做出结论。

        编码阶段:代码管理和思想指导。代码管理引入“版本改进”机制,通过对记忆流可见性的限制,丢弃早期代码版本。程序员(本文的所有角色都是电脑,人类是客户)使用git命令管理代码版本,随着“版本改进”机制的推进,程序越来越完善;思想指导不同于传统的问答带来的不确定性,这里要求对某一问题提出特定的解决思路,相当于遇到问题不会只说“你去把问题解决了”,而是会加上处理问题的解决方法。

        测试阶段:这里有三个角色,评审员、程序员和测试人员。同行评审由评审员和程序员参与,检查源代码以确定潜在的问题;系统测试由程序员和测试人员参与,测试人员一定程度上起到指导程序员的作用。

        文档化阶段:这里涉及CEO、CPO、CTO、程序员。由这四位来完成软件项目文档的撰写,文档化阶段包括生成相关文档,例如外部依赖规范和用户说明。用户手册提供了有关软件技术架构、安装说明和功能的全面信息,是用户的宝贵资源。一旦安装了依赖项,人工客户端就可以使用合适的解释器来执行软件。

       

        CHATDEV是一个模拟真实软件开发公司的范式,它可以涵盖软件开发过程中的各种岗位,从而减轻人类的工作负担。CHATDEV考虑到了设计师创建图像的成本,并通过这一成本来确定整体的软件开发成本。根据平均数据,每个软件的设计师成本约为0.1398美元,平均需要8.74个图像创作。因此,CHATDEV的平均软件开发成本为0.2967美元,远低于传统定制软件开发公司的费用。

        然而,这并不意味着CHATDEV将完全取代程序员。在CHATDEV的自动开发过程中,人类仍然可以积极参与,并使用自然语言与系统进行交互,影响项目的方向。对于一些简单软件的开发来说,CHATDEV是一个非常有用的工具,特别适合初级程序员或工程师使用。它可以提供便捷和高效的开发体验,同时加速项目的完成速度。

        综上所述,CHATDEV可以被视为程序员和工程师的有益补充,为他们提供更强大的工具和资源,而不是完全替代他们。这种机器人辅助的开发方式有助于提高生产效率,并释放人类开发者的创造力,使他们能够更专注于更复杂的任务。

        此外,CHATDEV也有一些局限性。其中一个主要限制是LLM(Language Model)的先进性,它在生成高级或大规模软件需求的完美源代码方面仍面临挑战。代理团队的能力有限,无法自主确定具体实现细节,通常需要进行多轮讨论。此外,在给定的时间限制内识别缺陷或漏洞对评审人员和测试人员来说也是挑战。

        这些局限性指出了CHATDEV范式仍需改进之处。我们需要进一步发展先进的LLM技术,以提高对复杂软件需求的生成能力。此外,还需要研究和开发更高效的评审和测试方法,以加快发现和解决潜在问题的速度。通过不断改进和创新,可以进一步拓展CHATDEV的潜力,并实现更高效、更可靠的软件开发过程。

     

       





CHATDEV—初级程序员的福音,一种用于软件开发过程的创新范式的核心的评论 (共 条)

分享到微博请遵守国家法律