CHATDEV—初級(jí)程序員的福音,一種用于軟件開發(fā)過程的創(chuàng)新范式的核心
CHATDEV
????????清華大學(xué)、北京郵電大學(xué)和布朗大學(xué)的研究者提出了一種創(chuàng)新的軟件開發(fā)范式,該范式利用大型語言模型(LLM)在整個(gè)軟件開發(fā)過程中實(shí)現(xiàn)了自然語言通信的簡化和統(tǒng)一。這一范式的核心被稱為CHATDEV,它基于經(jīng)典的瀑布模型,并將軟件開發(fā)過程劃分為設(shè)計(jì)、編碼、測試和文檔四個(gè)階段。每個(gè)階段都有一個(gè)代理團(tuán)隊(duì),如程序員、代碼評(píng)審員和測試工程師,他們通過協(xié)作對話和無縫工作流程來推進(jìn)開發(fā)過程。聊天鏈在其中起到了促進(jìn)作用,將每個(gè)階段細(xì)分為原子子任務(wù)。CHATDEV充分發(fā)揮了雙重角色的優(yōu)勢,通過上下文感知的通信來提出和驗(yàn)證解決方案,從而高效地解決特定的子任務(wù)。CHATDEV的實(shí)用工具分析突出了其在軟件生成方面的顯著效果,使整個(gè)軟件開發(fā)過程可以在不到七分鐘的時(shí)間內(nèi)完成,成本不到一美元。它不僅能夠識(shí)別和解決潛在的漏洞,還能糾正潛在的誤解,同時(shí)保持了卓越的效率和經(jīng)濟(jì)效益。CHATDEV展示了將LLM整合到軟件開發(fā)領(lǐng)域的新可能性。
????????以上的話,用人話來翻譯就是,在軟件開發(fā)過程中基本實(shí)現(xiàn)了無人化,人類客戶只需要提出需求,接下來的所有工作量全部由電腦自主完成,使用什么語言開發(fā),編程文檔,界面的設(shè)計(jì)與美化,系統(tǒng)測試,bug修改,自動(dòng)制定全面的軟件解決方案,包括源代碼、環(huán)境依賴性和用戶手冊。
????????那么這個(gè)范式是怎么做到的呢?
????????首先,這個(gè)范式使用 Chat Chain 將軟件開發(fā)過程分解為順序的各個(gè)原子任務(wù),相當(dāng)于規(guī)定了什么時(shí)間該做什么,由誰和誰去討論,去實(shí)現(xiàn),這樣可以更精準(zhǔn)的關(guān)注軟件開發(fā)過程的每一步驟,確保準(zhǔn)確性。
????????其次,講講軟件開發(fā)過程四個(gè)階段的優(yōu)秀設(shè)計(jì):
????????設(shè)計(jì)階段:設(shè)計(jì)階段的優(yōu)秀實(shí)現(xiàn)主要包含角色分配、記憶流、自我反思三個(gè)方面。角色分配主要負(fù)責(zé)指定當(dāng)前由哪個(gè)代理擔(dān)任某一角色,CEO、CPO、CTO、測試工程師以及程序員等;記憶流會(huì)保存一定時(shí)間內(nèi)的聊天記錄,如果當(dāng)前角色需要使用就可以去翻找,但是有些過于古早的記錄,相當(dāng)于被淘汰了,就查不到了;自我反思,有時(shí)候兩個(gè)角色的討論明明有結(jié)果但是沒有結(jié)論性的話語來結(jié)束討論,也就是沒有結(jié)束指令,那么制造一個(gè)偽我來提問,要求做出結(jié)論。
????????編碼階段:代碼管理和思想指導(dǎo)。代碼管理引入“版本改進(jìn)”機(jī)制,通過對記憶流可見性的限制,丟棄早期代碼版本。程序員(本文的所有角色都是電腦,人類是客戶)使用git命令管理代碼版本,隨著“版本改進(jìn)”機(jī)制的推進(jìn),程序越來越完善;思想指導(dǎo)不同于傳統(tǒng)的問答帶來的不確定性,這里要求對某一問題提出特定的解決思路,相當(dāng)于遇到問題不會(huì)只說“你去把問題解決了”,而是會(huì)加上處理問題的解決方法。
????????測試階段:這里有三個(gè)角色,評(píng)審員、程序員和測試人員。同行評(píng)審由評(píng)審員和程序員參與,檢查源代碼以確定潛在的問題;系統(tǒng)測試由程序員和測試人員參與,測試人員一定程度上起到指導(dǎo)程序員的作用。
????????文檔化階段:這里涉及CEO、CPO、CTO、程序員。由這四位來完成軟件項(xiàng)目文檔的撰寫,文檔化階段包括生成相關(guān)文檔,例如外部依賴規(guī)范和用戶說明。用戶手冊提供了有關(guān)軟件技術(shù)架構(gòu)、安裝說明和功能的全面信息,是用戶的寶貴資源。一旦安裝了依賴項(xiàng),人工客戶端就可以使用合適的解釋器來執(zhí)行軟件。
????? ?
????????CHATDEV是一個(gè)模擬真實(shí)軟件開發(fā)公司的范式,它可以涵蓋軟件開發(fā)過程中的各種崗位,從而減輕人類的工作負(fù)擔(dān)。CHATDEV考慮到了設(shè)計(jì)師創(chuàng)建圖像的成本,并通過這一成本來確定整體的軟件開發(fā)成本。根據(jù)平均數(shù)據(jù),每個(gè)軟件的設(shè)計(jì)師成本約為0.1398美元,平均需要8.74個(gè)圖像創(chuàng)作。因此,CHATDEV的平均軟件開發(fā)成本為0.2967美元,遠(yuǎn)低于傳統(tǒng)定制軟件開發(fā)公司的費(fèi)用。
????????然而,這并不意味著CHATDEV將完全取代程序員。在CHATDEV的自動(dòng)開發(fā)過程中,人類仍然可以積極參與,并使用自然語言與系統(tǒng)進(jìn)行交互,影響項(xiàng)目的方向。對于一些簡單軟件的開發(fā)來說,CHATDEV是一個(gè)非常有用的工具,特別適合初級(jí)程序員或工程師使用。它可以提供便捷和高效的開發(fā)體驗(yàn),同時(shí)加速項(xiàng)目的完成速度。
????????綜上所述,CHATDEV可以被視為程序員和工程師的有益補(bǔ)充,為他們提供更強(qiáng)大的工具和資源,而不是完全替代他們。這種機(jī)器人輔助的開發(fā)方式有助于提高生產(chǎn)效率,并釋放人類開發(fā)者的創(chuàng)造力,使他們能夠更專注于更復(fù)雜的任務(wù)。
????????此外,CHATDEV也有一些局限性。其中一個(gè)主要限制是LLM(Language Model)的先進(jìn)性,它在生成高級(jí)或大規(guī)模軟件需求的完美源代碼方面仍面臨挑戰(zhàn)。代理團(tuán)隊(duì)的能力有限,無法自主確定具體實(shí)現(xiàn)細(xì)節(jié),通常需要進(jìn)行多輪討論。此外,在給定的時(shí)間限制內(nèi)識(shí)別缺陷或漏洞對評(píng)審人員和測試人員來說也是挑戰(zhàn)。
????????這些局限性指出了CHATDEV范式仍需改進(jìn)之處。我們需要進(jìn)一步發(fā)展先進(jìn)的LLM技術(shù),以提高對復(fù)雜軟件需求的生成能力。此外,還需要研究和開發(fā)更高效的評(píng)審和測試方法,以加快發(fā)現(xiàn)和解決潛在問題的速度。通過不斷改進(jìn)和創(chuàng)新,可以進(jìn)一步拓展CHATDEV的潛力,并實(shí)現(xiàn)更高效、更可靠的軟件開發(fā)過程。
?????
???????