netail.net
自作フリーソフトや,ゲームに関する雑記を公開してます.
日記はソフトウェア工学の論文ネタが中心です.
最近のお知らせ (古いものはこちら)
2006-08-25 [長年日記] ▲
_ [論文] アーキテクチャ情報に基づいてコールグラフをレイアウトする ▲
J. Bohnet, J. Doellner: Analyzing Feature Implementation by Visual Exploration of Architecturally-Embedded Call-Graphs. Proceedingds of the 4th International Workshop on Dynamic Analysis (WODA2006), pp.41-48, Shanghai, China, May 2006.
ものものしいタイトルに惹かれて読んでみた……が,やってることはコールグラフの可視化だけ.騙された感が強い.
コールグラフを可視化するときに,システム-サブシステム-コンポーネント-メソッドの階層を意識してレイアウトしよう,という論文.アーキテクチャ記述としてどのクラスがどのサブシステムの一部かというのを用意する必要があるのだけど,単にディレクトリをサブシステムにマップしてるだけみたい.
コールグラフは3次元画像として可視化される.サブシステムを1枚の平面で表現して,コンポーネントの箱を載せて,その箱の上にさらにサブコンポーネントの箱を載せていくことで階層構造を表現する.平面上に配置するコンポーネント間の距離は,メソッド呼び出し関係を引力とみなし,コンポーネント同士が重なるのを防ぐための斥力と足しこんで位置を探すらしい.あとは,サブシステムが複数になったら平面の枚数を増やして3次元的に配置する.呼び出し関係はコンポーネントからコンポーネントへの3次元的な軌跡として表現される.
3次元空間を全部使ってノードを配置すると,どこに何があるやら分かりにくくなってしまいがちだが,平面+その上での階層構造という2.5次元の表現ならドローバックが少ない,と主張している.球面上へのマッピングなどよりは多少直観的かもしれない.
アーキテクチャ情報を使う意味は,メソッド間の呼び出しを,コンポーネント間,サブシステム間の呼び出しというように分類して明示的に可視化できることにあるのだろう,と思う.それがどのくらい効果があるかは分からないけど,ないよりはあったほうが有利?
使いやすさその他の評価実験はなし.トレーサビリティ情報を使っての可視化とかいうのもなし.タイトル的には色々期待してしまったので少し残念.