復雜軟件系統(tǒng)的重構技術:現(xiàn)狀、問題與展望
發(fā)布時間:2021-10-27 07:19
軟件重構是改善軟件質量的一種重要手段,它在不改變軟件外部行為特性的情況下,通過調整軟件內部結構來提高軟件的可理解性、可維護性和可擴展性。然而,隨著開源軟件的迅猛發(fā)展,軟件的規(guī)模和復雜程度日益增加,現(xiàn)有的重構技術在應對規(guī)模龐大且復雜的軟件系統(tǒng)時,重構效果并不如意。因此,提高重構技術的可擴展性一直是軟件工程領域研究的熱點。從技術負債角度出發(fā),探究重構時機,思考重構技術對軟件質量的深入影響,明確重構技術旨在尋找重構代碼的自動化方法,從而降低維護成本,提高代碼質量。文中對工程實例進行分析并對文獻進行梳理,調研了自2010年至今國內外96篇相關領域的文獻,嘗試以復雜系統(tǒng)的視角對這些研究工作進行歸納、比較,提煉總結軟件重構領域的研究方向與技術方法,探討重構技術研究中的特點與難點,思考重構技術研究中存在的問題及未來的研究方向,對軟件重構技術的研究趨勢進行了展望。
【文章來源】:計算機科學. 2020,47(12)北大核心CSCD
【文章頁數(shù)】:10 頁
【部分圖文】:
軟件重構過程
重構序列的組合所形成的解空間十分龐大,因此從龐大的解空間中尋求一個最優(yōu)的重構序列是十分困難的,而這正是搜索算法的優(yōu)勢所在。如圖2所示,首先,針對需要被改進的軟件系統(tǒng),將此類系統(tǒng)轉換成軟件組件(類或方法)的集合或者抽象表示為圖形的形式并作為算法的輸入;然后,使用重構建議、軟件質量度量指標和其他信息作為算法的指導過程,并且將所有的重構操作映射為向量作為解決方案的表現(xiàn)形式;最后,利用適應度函數(shù)(Fitness Function)動態(tài)評估解的優(yōu)劣,在搜索收斂至最優(yōu)或局部最優(yōu)時,即可得到一組最優(yōu)的重構序列。在這方面的工作中,Amal等提出了一種基于神經網絡的適應度函數(shù),通過遺傳算法手動評估重構的解決方案以進行少量迭代,然后利用人工神經網絡進行訓練以評估剩余迭代的重構解決方案[40]。在某些重構問題中,任何兩個或多個目標之間可能存在冗余。Dea等提出了一種新的軟件重構方法,即PCA-NSGA-II多目標重構方法。該方法是在PCA-NSGA-II演化多目標算法的基礎上改進而來的,通過去除冗余來保留沖突目標,從而避免維數(shù)災難[41]。為了解決相互沖突的優(yōu)化目標,Mkaouer等提出了一種新的重構問題表示方法,即將每個需要改進的質量屬性視為一個獨立的優(yōu)化目標,利用NSGA-III算法,使用8個不同的目標來評估重構解決方案[42]。
【參考文獻】:
期刊論文
[1]一種基于深度學習的上帝類檢測方法[J]. 卜依凡,劉輝,李光杰. 軟件學報. 2019(05)
[2]基于量子搜索的軟件工程[J]. 吳楠,宋方敏,LI XiangDong. 中國科學:信息科學. 2015(05)
本文編號:3461130
【文章來源】:計算機科學. 2020,47(12)北大核心CSCD
【文章頁數(shù)】:10 頁
【部分圖文】:
軟件重構過程
重構序列的組合所形成的解空間十分龐大,因此從龐大的解空間中尋求一個最優(yōu)的重構序列是十分困難的,而這正是搜索算法的優(yōu)勢所在。如圖2所示,首先,針對需要被改進的軟件系統(tǒng),將此類系統(tǒng)轉換成軟件組件(類或方法)的集合或者抽象表示為圖形的形式并作為算法的輸入;然后,使用重構建議、軟件質量度量指標和其他信息作為算法的指導過程,并且將所有的重構操作映射為向量作為解決方案的表現(xiàn)形式;最后,利用適應度函數(shù)(Fitness Function)動態(tài)評估解的優(yōu)劣,在搜索收斂至最優(yōu)或局部最優(yōu)時,即可得到一組最優(yōu)的重構序列。在這方面的工作中,Amal等提出了一種基于神經網絡的適應度函數(shù),通過遺傳算法手動評估重構的解決方案以進行少量迭代,然后利用人工神經網絡進行訓練以評估剩余迭代的重構解決方案[40]。在某些重構問題中,任何兩個或多個目標之間可能存在冗余。Dea等提出了一種新的軟件重構方法,即PCA-NSGA-II多目標重構方法。該方法是在PCA-NSGA-II演化多目標算法的基礎上改進而來的,通過去除冗余來保留沖突目標,從而避免維數(shù)災難[41]。為了解決相互沖突的優(yōu)化目標,Mkaouer等提出了一種新的重構問題表示方法,即將每個需要改進的質量屬性視為一個獨立的優(yōu)化目標,利用NSGA-III算法,使用8個不同的目標來評估重構解決方案[42]。
【參考文獻】:
期刊論文
[1]一種基于深度學習的上帝類檢測方法[J]. 卜依凡,劉輝,李光杰. 軟件學報. 2019(05)
[2]基于量子搜索的軟件工程[J]. 吳楠,宋方敏,LI XiangDong. 中國科學:信息科學. 2015(05)
本文編號:3461130
本文鏈接:http://sikaile.net/kejilunwen/sousuoyinqinglunwen/3461130.html
教材專著