[修士論文] 動的コールグラフと形式概念束の構造特徴に基づく機能識別と機能理解支援

小林研M2の中野さんが修士論文の発表を行いました.

論文題目:動的コールグラフと形式概念束の構造特徴に基づく機能識別と機能理解支援
論文概要:

動的機能捜索手法の一つに形式概念分析を利用した手法(FCA-based FL)が存在する.この手法は,複数の機能を同時に解析するため,機能とモジュール間の詳細な情報に加え,複数の機能間の関係性も細かく解析でき,他の動的機能捜索手法より優れている.しかし,「入力であるシナリオと利用された機能とのマッピングの作成が容易ではない点」と「現実的なソフトウェアでは機能捜索のコストが増大してしまう点」の2点に大きな問題が存在する.本論文では,これら2つの問題を解決する手法を提案する.

一つ目の問題に対して,機能の開始点を特定することで,ソフトウェアが有する機能群とシナリオとの対応関係を特定する手法を提案する.機能開始点に相当するエントリーモジュールの名前は,機能の処理内容を端的に表現していることが多く,またプログラム実行時に機能開始点の通過有無を記録することで,機能の利用有無を判断できる.このため,機能開始点を特定することで,機能群の特定や,各実行シナリオとの対応関係が特定可能となる.提案手法では,複数のシナリオの実行トレースを比較し,“実行シナリオに関する共通性”の変化を解析する事で,機能開始点の特定を行う.特定した機能開始点を分類し,開発者による機能群の特定を支援する.
オープンソースソフトウェアを対象に提案手法の有用性を評価する実験を行った.その結果,用意したシナリオ中で利用された34個の機能の内,18個の機能名を推定でき,対象ソフトウェアのドメイン知識だけを前提とし,約4割の機能とシナリオのマッピングを構成することができた.

二つ目の問題に対して,多機能間で機能とモジュールの関連性を比較することで,モジュールが機能を実装している確率で,ランキングを行う手法を提案する.機能とモジュールの関連性を示す尺度を複数機能間で比較するためにオッズ比に基づく指標を提案し,モジュールが捜索対象機能を実装している確率を求める手法を開発した.またFCA-based FLを応用して,既存の動的機能捜索手法の精度を向上させるフィルタリング手法も提案する.オープンソースソフトウェアの9機能を対象に提案手法の有用性を評価する実験を行った.その結果,提案手法が既存手法より優れており,開発者がプログラムを理解するために必要なコストを平均で半分近く削減できた.