肖卓宇,黃 海,何 锫,李 港,楊道武,彭逸凡,董澤民
1.中南林業科技大學 涉外學院,長沙 410200
2.廣東第二師范學院 計算機科學系,廣州 510303
3.北京大學 高可信軟件技術教育部重點實驗室,北京 100871
4.廣州大學 計算機科學與教育軟件學院,廣州 510006
設計模式常用于構建可復用的解決方案,而自動檢測設計模式有助于研發人員在缺乏文檔支撐的情況下提高軟件質量[1]。目前在程序理解、維護、重構、逆向工程與再工程領域,設計模式檢測工具的應用被廣大研發人員所關注,但如何選擇合適的檢測工具成為困擾軟件從業人員的一個難題[2-3]。
Bernardi等人[4]提出通過圖形映射參與者,并以DSL匹配方法來檢測設計模式。Fontana等人[5-6]將設計模式的特征信息以EDP(elemental design pattern)、Clues等微結構的形式表示,并通過這些微結構來識別設計模式。Zanoni[7]與Chihada[8]等人將機器學習引入到設計模式檢測領域,二者皆側重特征值的訓練。許涵斌等人[9]提出通過查詢與匹配UML模型中的特征信息來恢復設計模式。古輝等人[10]通過鄰接表與聯通分量縮小搜索空間來優化特征信息,進而識別設計模式。肖卓宇等人[11]結合形式概念分析與實例推理技術,通過余弦理論來優化設計模式檢測結果。文獻[12]提出一種基于矩陣積分評估的設計模式檢測方法,旨在通過子圖同構的方法來提升設計模式檢測效果。Ampatzoglou等人[13-14]通過實驗評估了部分主流檢測工具的模式實例基準庫。Petterson等人[15]提出設計模式變體、模式基準、測試用例選擇及F-score指標等是影響設計模式精確率的主要因素。……