軟件所在Python程序的構建依賴分析方面取得進展
文章來源:軟件工程技術研究開發中心 | 發布時間:2021-12-31 | 【打印】 【關閉】
近日,中國科學院軟件研究所軟件工程技術研究開發中心在Python程序構建中的依賴分析推斷方面取得研究進展,該研究提出了知識驅動的Python程序依賴推斷方法及工具,幫助開發人員提高代碼復用效率,減少依賴缺失和依賴版本錯誤導致的Python程序構建和運行錯誤,為提升開發運維一體化中的應用構建自動化能力起到重要支撐作用。
Python語言是當前最流行的編程語言之一,尤其廣泛應用于科學計算等。開發者常常通過代碼復用提高開發效率。但是Python程序運行環境復雜,依賴于Python包、系統庫和特定版本的Python解釋器。缺少程序依賴,或者依賴版本不兼容,會導致程序構建失敗和運行錯誤。
針對該問題,團隊提出了一種知識驅動的Python程序依賴推斷方法,包括知識圖譜構建和程序依賴推斷兩個階段。在知識圖譜構建階段,該方法收集大量多源異構數據,進行知識的抽取和融合,構建Python領域知識圖譜。在程序依賴推斷階段,該方法基于領域知識圖譜,通過程序分析和約束求解方法推斷目標Python程序的多層次依賴。
基于上述方法,團隊開發了PyEGo:知識驅動的Python程序依賴推斷工具,實驗結果顯示,PyEGo工具的依賴推斷成功率是已有方法的1.5-4.5倍,極大提升了程序構建的正確率和執行效率,團隊依托該成果獲得2021年第四屆中國軟件開源創新大賽(自由組)一等獎。
相關成果以“Knowledge-Based Environment Dependency Inference for Python Programs”為題被軟件工程領域頂級會議ICSE 2022接收。該論文第一作者為碩士生葉宏杰,通訊作者為副研究員陳偉。該研究獲國家重點研發計劃等項目支持。
Python程序依賴分析方法示意圖