在當前的科技發(fā)展背景下,生成式人工智能(artificial intelligence, AI)已經(jīng)開始為軟件工程領(lǐng)域賦能,并衍生為一種新的生產(chǎn)力. 生成式AI 將大大加速軟件開發(fā)過程,減少測試的時間和人工成本,提高測試的覆蓋率、準確性和可靠性,增強代碼的質(zhì)量和可維護性,同時幫助軟件管理人員更好地進行項目管理與維護,提供自動化軟件部署方式,并推動軟件開發(fā)效率和質(zhì)量的快速提升. 以ChatGPT 為例,其自問世以來,已經(jīng)被應用在軟件工程領(lǐng)域并得到了初步的探索. 生成式AI 作為一種新穎的簡化代碼開發(fā)方式,使得測試用例的開發(fā)流程與技術(shù)手段更加簡單、高效.
為反映生成式AI 在軟件工程領(lǐng)域中的相關(guān)研究前沿進展與實踐,并推動國內(nèi)相關(guān)研究向深度發(fā)展,我們組織了“生成式AI 與軟件自動化”專題,邀請領(lǐng)域?qū)<覍Υa合成評價指標、代碼摘要生成、基于擴散模型生成數(shù)據(jù)、基于大模型進行需求獲取等生成式AI 和自動化軟件工程的重要問題進行專題討論.
評估指標在代碼合成領(lǐng)域中具有至關(guān)重要的作用. 常用的代碼評估指標可以分為3 類:基于匹配、基于語義和基于執(zhí)行. 其中,基于執(zhí)行的Pass@k 指標通過執(zhí)行測試用例,能夠準確判斷預測代碼的功能準確性. 然而,該指標的計算需要大量開銷,因此亟需設(shè)計一種自動化評估指標,在無需測試用例時仍可評估預測代碼的功能準確性. 此外,好的評估指標應當具有魯棒性,即預測代碼發(fā)生微小改變時,評估指標仍能保持其準確性. 為此,楊光等人提出了一種基于UniXcoder 和對比學習的自動化魯棒指標CodeScore-R,用于評估代碼合成的功能準確性.CodeScore-R 采用草圖化處理、語法等價轉(zhuǎn)換和變異測試等技術(shù)手段,有效減輕了標識符、語法結(jié)構(gòu)和運算符對評估結(jié)果的干擾.
代碼摘要是源代碼的重要組成部分,可以提高開發(fā)人員對程序的理解效率. 近年來,代碼自動摘要在方法級別代碼片段上的研究得到了廣泛關(guān)注. 然而,對于面向?qū)ο蟮恼Z言,如Java,類才是項目的基本組成單元. 為了解決這個問題,陳豪伶等人提出了一種名為HRCE(hierarchical representation and context enhancement)的類摘要生成方法,并構(gòu)建了一個包含358 992 個Java 類的類摘要數(shù)據(jù)集. HRCE 方法使用代碼精簡策略來刪除類中的非關(guān)鍵代碼,從而減小代碼長度. 然后,通過對類的層次結(jié)構(gòu)、屬性和方法進行建模,獲得類的語義信息和層次結(jié)構(gòu)信息. 此外,還通過提取項目中父類的簽名和摘要來捕捉類與項目中其他類的關(guān)系上下文. 這種基于分層表示和上下文增強的方法可以更好地生成高質(zhì)量的類摘要.
軟件代碼測試中存在數(shù)據(jù)不平衡的問題,這會影響模型的預測精度,并且還未考慮用戶的隱私保護. 為了解決這些問題,生成偽造數(shù)據(jù)成為一種重要的解決方法. 然而,在以結(jié)構(gòu)化數(shù)據(jù)為主的場景中,由于存在數(shù)據(jù)特征維度多且不相關(guān)等特點,生成高質(zhì)量的數(shù)據(jù)具有一定的挑戰(zhàn)性. 針對這一問題,楊斌等人以客戶流失預測為典型應用場景,嘗試將擴散模型應用到預測任務中. 他們提出了一種基于高斯擴散模型和多項式擴散模型的數(shù)據(jù)生成方法,并對模型預測效果和數(shù)據(jù)隱私保護能力進行了研究和分析. 通過將路徑探索過程均攤到多個工作線程中,并在線程間共享約束求解信息,以提高求解緩存的命中率,他們的方法實現(xiàn)了預測任務中的符號執(zhí)行效率的提升,為符號執(zhí)行技術(shù)的進一步發(fā)展和應用提供了一種有效的解決方案.
需求獲取和建模是需求工程中至關(guān)重要的步驟,對后續(xù)系統(tǒng)設(shè)計與實現(xiàn)產(chǎn)生深遠影響.然而,傳統(tǒng)的需求獲取和建模方法通常需要由多類干系人,如需求提供者和需求分析師等共同協(xié)作、反復迭代完成,耗費大量人力. 因此,如何減輕需求提供者和需求分析師的負擔,提高獲取和建模的效率具有重要意義. 靳東明等人利用大語言模型(LLMs)的生成能力,提出了一種名為ChatModeler 的人機協(xié)作的迭代式需求獲取和建模框架. 具體而言,根據(jù)真實世界中需求團隊的分工和協(xié)作關(guān)系,他們將部分需求提供者和需求分析師的工作由大語言模型承擔,從而顯著減輕了人們的負擔,并實現(xiàn)了需求獲取和建模的效率提升.
生成式AI 與軟件自動化是一個引人注目的領(lǐng)域,它為軟件開發(fā)和自動化帶來了新的機遇和挑戰(zhàn). 本專題的出版對于促進生成式AI 與軟件自動化領(lǐng)域的研究具有重要意義,希望能夠激發(fā)更多的創(chuàng)新思維和研究成果. 雖然本專題的篇幅有限,無法覆蓋該領(lǐng)域的所有最新研究工作,但我們相信它可以為研究人員提供幫助和啟發(fā).
在此,我們衷心感謝《計算機研究與發(fā)展》提供這個寶貴的機會,使得本專題論文得以順利出版. 同時,由衷感謝所有的作者、審稿專家和編輯部工作人員,他們的全力支持和辛勤付出為本專題的成功發(fā)表做出了重要貢獻. 感謝他們對生成式AI 與軟件自動化領(lǐng)域的貢獻和努力,希望這個專題能夠為該領(lǐng)域的研究提供一個有益的平臺,進一步推動相關(guān)研究的發(fā)展.