Cプログラムの理解を 支援するナビゲーション機能 太田洋介 大久保弘崇 粕谷英人 山本晋一郎 (愛知県立大学大学院 情報科学研究科)
発表の概要 背景 目標 システム構成 コールグラフビューワ コールグラフヒストリー 連携 まとめ
背景 ソフトウェア開発を行う上で他人の書いた プログラムを理解することは必要 参照関係の膨大なCプログラムを 理解するのは困難
CASEツール・プラットホーム Sapid プログラムブラウザ コールグラフビューワ
プログラムブラウザ
コールグラフビューワ
課題 方向感覚を 失いやすい 詳細な情報が 得られない プログラムブラウザ コールグラフビューワ
目標 コールグラフビューワに 閲覧経路の提示 プログラムブラウザと コールグラフビューワの連携
連携とは プログラムブラウザ上で 関数呼び出しのリンクを辿っていく操作 ⇔ コールグラフビューワで 関数ノードを辿っていく操作 関数呼び出しのリンクを辿っていく操作 ⇔ コールグラフビューワで 関数ノードを辿っていく操作 常に互いに同じ関数を提示することで、 複雑な参照関係の中をナビゲートする仕組み
システム構成(Before) ← SPIE ← Cプログラム ↓ ↓ XHTML プログラムブラウザ コールグラフビューワ
システム構成(After) コンバータ ↓ XHTML XHTML' CGI コールグラフビューワ プログラムブラウザ
コールグラフビューワ 注目関数→ ↑ 関数 ↓ ↑ ↑ 呼び出しエッジ ↑ ファイル ↓ 関数呼び出し関係を 3次元に視覚化
閲覧経路(コールグラフビューワ)
閲覧履歴(コールグラフヒストリー) 閲覧履歴をツリー形式で提示
コールグラフヒストリー
連携
まとめ 2つのツールの連携により お互いの欠点を補完しあうことができた コールグラフヒストリーにより、 辿った参照関係の整理が簡単になった お互いの欠点を補完しあうことができた 方向感覚の失いやすさ(プログラムブラウザ) 詳細な情報を得られない(コールグラフビューワ) コールグラフヒストリーにより、 辿った参照関係の整理が簡単になった
今後の課題 閲覧した順序の提示