科研快訊丨必贏3003no1線路檢測中心黃袁副教授在TOSEM發(fā)文揭示了構建函數內部文檔自動生成模型的理論基礎

【研究背景】

在生成式軟件工程中,利用人工智能技術自動生成軟件制品成為可能。生成式軟件工程可以顯著降低軟件開發(fā)過程中的人力投入,有效提升軟件開發(fā)效率,從而節(jié)約開發(fā)成本,助力軟件產業(yè)升級。必贏3003no1線路檢測中心黃袁副教授等人在生成式軟件工程研究中,面向軟件代碼文檔自動生成任務,揭示了函數級別外部文檔與內部文檔的等價作用機理,探索了構建代碼內部文檔自動生成模型的理論基礎。

代碼文檔是對軟件代碼功能的解釋和描述。研究顯示,程序員由于開發(fā)任務繁重,往往會忽略代碼文檔的編寫,因此,已有研究提出了一系列自動生成函數代碼文檔的方法。函數級別的代碼文檔分為兩類,即位于函數頭部的外部文檔及位于函數內部的內部文檔。必贏官網黃袁副教授團隊研究發(fā)現,函數內部文檔與函數外部文檔在輔助程序員理解代碼的過程中發(fā)揮等價的作用,它們對于提升代碼的可讀性及可理解性具有同等作用。遺憾的是,與函數外部文檔相比,函數內部文檔自動生成研究并沒有得到足夠的重視。

image-20230414152433-1

▲示例:1為函數外部文檔,2為函數內部文檔

【研究工作】

研究團隊比較和分析了代碼外部文檔和內部文檔的異同。首先構建了一個包含函數外部文檔和內部文檔的數據集,在該數據集上,通過將現有的生成函數外部文檔的模型直接應用于內部文檔生成任務上,發(fā)現現有模型表現較差。然后進一步探索可能的原因,并獲得了一些新的觀察結果:(1)在函數外部文檔數據集中有很多模板(即具有相同或相似結構的文本),使生成模型表現更好;(2)在已有研究中,一些被認為是重要的術語(如API調用)在文檔自動生成中并沒有明顯影響生成文檔的質量;(3)從書寫風格上看,函數外部文檔中的用詞比較集中,而內部文檔中的用詞比較多樣等。

【研究意義】

基于以上研究結果,團隊為構建函數內部文檔自動生成模型提供了理論基礎,可以幫助研究人員為內部注釋生成設計更有針對性的模型。比如考慮對文本單詞多樣性問題的處理,已有的函數外部文檔包含規(guī)模適中的語料庫,而內部文檔則包含規(guī)模更大的預料庫,因此,要求函數內部文檔自動生成模型具有更高的語料庫建模能力,能處理更為廣泛的預料分布。此外,還需考慮對代碼語義碎片化問題的處理。函數外部文檔的覆蓋范圍是一個語義完整的函數,而函數內部文檔的覆蓋范圍往往是單行或連續(xù)幾行代碼,因此,函數內部文檔覆蓋的代碼具有語義碎片化的特征。最后, 該項研究工作可以將代碼文檔自動生成任務從單一的函數外部文檔生成推廣到函數內部文檔生成,實現場景多樣化。研究公開第一個只包括函數內部文檔的數據集,可以用于研究人員的函數內部文檔生成任務的BeachMark。

該研究成果以“A Comparative Study on Method Comment and Inline Comment”為題發(fā)表于軟件工程領域旗艦期刊ACM Transactions on Software Engineering and Methodology。文章第一作者是必贏3003no1線路檢測中心黃袁副教授,鄭子彬教授、陳湘萍副教授等為合作作者。必贏3003no1線路檢測中心為第一完成單位。

原文信息:https://dl.acm.org/doi/abs/10.1145/3582570