Understand 3.1 新機能 – グラフ機能の拡張

「Understand 3.1」では、依存関係グラフ / 依存関係ブラウザーにフィルタリング機能を搭載し、特定の依存関係だけを表示できるようになりました。
これにより、関数コール、変数アクセスの関係などを絞り込んで表示できるようになりました。

フィルタリング可能な依存関係の種類は以下の通りです。
– Inits (Init):値の初期化
– Sets (Set) :値の代入
– Uses (Use) :参照
– Calls (Call):関数の呼び出し
– Modifies (Modify):演算(インクリメント/デクリメント演算子、代入演算子など)
これらを組み合わせて表示する依存関係をフィルタリングできます。
デフォルトでは、上記を含む、すべての依存関係を表示します。

具体的な使用方法 (依存関係グラフ、依存関係ブラウザー) を紹介します。

依存関係グラフ

ファイルや関数等の依存関係をグラフィカルに表示する機能です。
フィルタリング機能は、「Internal Dependencies」グラフに追加されました。
「Internal Dependencies」グラフは、ツールメニュー[グラフ]-[依存関係グラフ]-[By Directory Structure]をクリックする等で表示できます。
下図は、UnderstandのC言語のサンプルプロジェクト『 fastgrep 』で、「Internal Dependencies」グラフを表示した例です。
依存関係の線 (青い矢印) の横にある数字は、依存関係の数を表しています。
依存関係のフィルタリングは、[表示]リストボックス(赤枠部分)から、任意の依存関係を選択することで実行できます。

つぎの図は、「Calls」(関数の呼び出し)の依存関係だけを表示するようフィルタリングした例です。

最初の図と比較すると情報量が減り、視認性がよくなりました。フィルタリング機能を活用すれば、そのときに注目したい依存関係だけに集中することができます。

また、特定の要素に注目して依存関係をハイライト表示することも可能です。
[外側に向かうエッジをハイライト]はその要素が “参照している” 依存関係をハイライト表示、[内側に向かうエッジをハイライト]はその要素が “参照されている” 依存関係をハイライト表示するものです。グラフ上で任意の要素を選択し、目的に合わせてオプションをチェックします。

上図は、選択したregcomp関数(背景が黄色になっている関数)について、[内側に向かうエッジをハイライト]をチェックした状態です。
regcomp関数が、どの関数から参照されているかが明確になりました。

依存関係ブラウザー

ファイルや関数等の依存関係をテキスト情報で表示する機能です。
依存関係ブラウザーの表示方法には、エンティティフィルターなどから任意のファイルを選択して右クリックから[依存関係の表示]をクリックする方法、依存関係グラフで任意のファイルを選択しフィルタリング機能の上部分に表示されている[依存関係の表示]をクリックする方法などがあります。

以下の図では、依存関係グラフでハイライト表示した関数 (regcomp) を依存関係ブラウザーで表示したものです。依存関係は「Calls」(赤枠) のみにフィルタリングしています。
依存関係ブラウザーでは、[依存関係の種類]リストボックス(緑枠)から、依存関係の方向(Depends On, Depended On By)を選択することができます。

また、依存関係が発生しているファイル名・行数といった詳細情報も確認できるのが、依存関係ブラウザーの特徴です。


今回ご紹介した、依存関係の種類をフィルタリングする機能は、多くのお客様にご要望いただいていた機能です。
プログラムの修正/拡張に伴う影響分析やレガシーコードの可視化、特定の依存関係に着目した分析をおこないたいという方にはおすすめの機能です。ぜひ一度お試しください。

タイトルとURLをコピーしました
Close Bitnami banner
Bitnami