基於監控與反饋的軟體重構機會檢測方法研究

《基於監控與反饋的軟體重構機會檢測方法研究》是依託北京理工大學,由劉輝擔任項目負責人的面上項目。

基本介紹

  • 中文名:基於監控與反饋的軟體重構機會檢測方法研究
  • 依託單位:北京理工大學
  • 項目負責人:劉輝
  • 項目類別:面上項目
項目摘要,結題摘要,

項目摘要

軟體重構是提高軟體質量的一個有效手段。重構機會的自動檢測是其中的一個難點和熱點問題。現有檢測方法主要基於原始碼的靜態分析,通過檢測代碼壞味以尋找重構機會。現有方法過於依賴代碼壞味的形式描述以及代碼靜態分析技術,忽視了程式設計師以及應用程式的個體差異對重構機會檢測的影響。為此本項目計畫研究如何根據程式設計師對檢測結果的反饋動態最佳化調整現有檢測算法的閾值設定,從而降低程式設計師和應用程式的個體差異對檢測算法的影響;擬以重命名為例研究如何根據程式設計師的當前重構推薦類似重構機會及重構方案;計畫挖掘重構歷史數據找出時序上緊密相連的重構操作,分析前後重構之間的內在聯繫,進而提出相應的規則以根據當前重構推薦相關重構機會及重構方案。基於當前重構推薦相似及相關重構的方法既降低了對代碼壞味形式化描述的依賴,也降低了程式設計師和應用程式的個體差異對檢測算法的影響。此外該方法與基於代碼壞味的檢測方法可互為補充從而提高查全率。

結題摘要

軟體重構機會的自動檢測對軟體開發與維護具有重要意義,但現有的檢測方法過於依賴代碼壞味的形式化描述以及原始碼的靜態分析,忽視了重構參與人員及應用程式的個體差異對重構機會檢測的影響。為此,本項目研究分析了重構參與者對重構機會檢測結果的反饋,提出了基於反饋的代碼壞味閾值動態最佳化方法;研究分析了重構操作的內在聯繫,提出了基於監控的相似重構機會檢測方法;研究分析了需求-代碼追蹤關係對軟體重構的影響,提出了基於需求追蹤關係的重構方案推薦方法。這些方法很好地利用了軟體重構的上下文信息,避免了對代碼靜態結構的過度依賴,提高了重構機會推薦的準確率和召回率。此外,項目探索研究了基於深度學習的重構機會推薦方法,提出了反重構(anti-refactoring)的概念,很好地解決了訓練數據的問題,為基於深度學習的重構推薦奠定了基礎。在此基礎上,研究提出了基於深度學習的特徵依戀檢測方法、基於深度學習的上帝類檢測方法、基於深度學習的長函式檢測方法等一系列的代碼壞味檢測方法,大幅度提高了重構推薦的準確率和召回率。針對最常見的重命名重構,提出了基於文本相似性的重命名推薦方法以及縮寫詞自動擴展方法。針對冗長重構選單的選擇困難,研究分析了重構參與者針對不同重構類型的代碼選擇模式,提出了重構選單項的動態排序方法等。課題組還設計並實施相關實驗,初步證明了以上研究成果的有效性。上述研究成果深入探索了基於多源信息和深度學習的重構推薦方法,對後續軟體重構的研究具有重要意義。基於理論研究成果研發的相關工具也較大幅度地提高了軟體重構的自動化水平以及軟體重構的效率和效果。相關研究成果發表於國內外一流學術期刊與學術會議。在軟體工程領域的頂級國際期刊IEEE Transactions on Software Engineering上發表論文3篇;在ICSE、ASE等軟體工程領域頂級國際會議發表論文2篇;在重要國際SCI期刊與主流國際會議發表錄用論文10篇;在國內一級學報發表論文3篇;培養中青年學術骨幹3人、博士研究生8人、碩士研究生9人。

相關詞條

熱門詞條

聯絡我們