プログラム要素の組合せ集合を用いたソースコード検索

高田 大樹 (1811148)


本発表ではソースコード中のプログラム要素を組合せ集合として索引化するソースコード検索手法を提案する.ソースコードの実装例を検索することは,ソフトウェア開発の生産性向上に欠かせない手段の 1 つである.既存のコード検索エンジンでは検索クエリの単語とソースコードの記述が一致している必要があるが,開発者が自然言語による質問形式で検索クエリを表現する事例も多く,記述の不一致で目的のソースコード例を取得できないといった課題がある.こうした自然言語クエリによるソースコード検索に対応するため,本研究ではまず自然言語クエリの事前分析を行い,単語間の対応関係,およびソースコード中に現れない語彙の存在,という 2 つの特徴を特定した.提案手法ではそれぞれの特徴に基づき,単語間の対応関係を辺要素として追加し,またソースコード中に現れない語彙を生成モデルで補完する,というアプローチをとる.さらに組合せ集合の効率的な表現が可能な ZDD というデータ構造を用いることで,それぞれの特徴表現を反映したソースコード索引を構築する.提案アプローチの効果に関する評価の結果,ZDD を用いた索引がそれぞれの特徴を正しく反映できていることが確認できた.また既存ツールとの比較により,74.8% のクエリに対して上位 10 件以内に正解のソースコード例を推薦でき,既存手法よりも 8 ポイント高い性能を達成した.これらの結果はソースコード検索における索引化手法の新たな可能性を示した.