プログラム依存グラフを用いた研究

プログラム依存グラフとは

プログラムの依存関係を表すグラフを,プログラム依存グラフ,あるいはPDG(Program Dependence Graph)と呼ぶ.

依存関係とは,2つの文などの関係を表し,主に以下の2つが用いられる.

制御依存
ある文の実行の有無が,他の文に影響される
データ依存
ある文で使用する変数の値が,他の文で設定される

PDGは,これらの依存関係を辺とし,依存関係の対象となる文などを頂点としたグラフである.

PDGを用いることで,データの流れなど,プログラムの振る舞いを表現することができる. 以下では,このPDGを用いた研究を紹介する.

プログラム依存グラフを利用したメソッド内構造の改善手法

PDG を用いて,リファクタリングを行う手法について研究している. リファクタリングとは,外部の振る舞いを変えずにソースコードの内部構造を整理することである.開発や保守で重要であるが,手動では困難なためツールでサポートすることが大切である. 本研究では,PDG からリファクタリングの候補を特定する手法を提案する. 結果をグラフィカルに示すツールも開発しており,リファクタリングの候補を視覚的に確認することが可能である.

新規開発者のソフトウェア理解を目的としたプログラム依存グラフ可視化手法

他人が書いたソースコードを理解するのは容易ではない.PDG は依存関係や構造の理解を容易にするのに有効だと考えることができる. 本研究では, PDG の可視化手法を提案し, 統合開発環境の一つであるEclipse のプラグインとして実装した. 実装したプラグインは, Java プログラムのメソッドを選択し, そのメソッドに対するPDGを, 構造を理解しやすい配置にして出力することを可能にしている.