• Imagix 4D ユーザガイド
  • 目次

クエリパネル

プロジェクト用の Imagix 4D データベースには、通常、きわめて膨大な量のデータが格納されます。プロジェクトにロードされたコードベース全体を対象に、Imagix 4D は多岐にわたるシンボル型や、その多種多様な関係あるいは依存性、さらには各シンボルに関する数多くの属性などの情報を収集します。GUI フィルタ機能を使用することで、これらの情報の中から直面している課題に求められる、特定の箇所を表示することが可能です。確認が必要なある特定の情報を部分的に絞り込むことが、Imaghix 4D を使用する上での重要な観点となります。

場合により、現在ビューを実行している画面から、遷移機能を使用することで特定の情報をたどることができます。個々の Imagix 4D ディスプレイは、遷移機能用に最適化されているため、閲覧中のディスプレイから、次に閲覧が必要となりそうなディスプレイへ、迅速に移行することが可能です。また [グラフ] ウィンドウには、グラフィカルなクエリ機能という言葉で表現される、ウィンドウに表示されている情報を操作する高度な機能が用意されています。

また時として、絞り込みとコンテンツにおける変更が、今現在ビューしている対象に強く関連するデータの一部分だけではなく、データベース全体を参照し直すという、より重要な作業となるのです。クエリに対するこのタイプの主なツールは、[クエリ] パネルで提供されています。

[クエリ] パネルにも、[マッパー] タブが用意されています。[マッパー] タブは [メイン] パネルのディスプレイを補足するもので、[グラフ] ウィンドウあるいは [ファイルエディタ] のコンテンツに関する豊富なビューの表示や、それらディスプレイのスクロール機能をサポートします。この使用方法の観点から、[マッパー] タブは、[メイン] ウィンドウの左側にある [コンテキスト] パネルのタブにグループ化されることがあります。しかしながら、そのフォームの形状の都合上、[マッパー] タブは [クエリ] パネル内に配置されます。

[データベースの検索] タブ

[データベースの検索] タブでは、名前、型、属性に基づいた、ソフトウェアにおけるシンボルの特定が可能です。

名前の照合にはワイルドカードとして "*" を使用することができます。例えば、SomeErrorHandler というシンボル名は、次の検索文字列すべてに一致します: "SomeErrorHandler", "*ErrorHandler", "Some*Handler", *Error*"。Aa ボタンを使用し大文字小文字の区別を無効にすると、"*error*" で名前検索を実行した場合、SomeErrorHandler も返り値となります。

[データベースの検索] は、[すべてのシンボル] メニューボタンを使用することで、特定の型のシンボルに検索対照を限定することができます。また [オプション]... ダイアログを活用すると、シンボルの属性をベースに、対照範囲、ファイルの場所、メトリクス値など、検索におけるより詳細なフィルタリングを実現できます。一例をあげると、名前の語尾 が"handler" であるグローバル・スコープで、サイクロマティック複雑度が10以上の関数を検索することが可能です。

数多くの属性がシンボル型に固有となるため、属性のフィルタリングを設定する前に、シンボル型のフィルタリングを設定することが重要となります。

ショートカットキー: [データベースの検索] は、[ファイルエディタ] から直接、起動することができます。Ctrl キーと B キーを同時に押下すると、エディタで選択されている文字列を使用して検索が実行されます。

[grep検索] タブ

[grep検索] タブは、プロジェクトのソースコードに記述された文字列を検索する際に使用します。出力結果の上で左クリックすると、一致しているソースコードの場所へ移動することができます。同様に右クリックすることにより、[アナライザ] 機能から grep の検索結果に関する詳細なグラフィカル解析へアクセスすることが可能です。

[詳細] ボタンをクリックすると、[高度なgrep検索] ダイアログが開き、文字列の検索における詳細設定が行えます。最新の検索(現在の grep の出力結果)に一致する行の詳細なフィルタリングを含め、検索対象となるソースコード行の範囲を限定することが可能です。また、大文字小文字の区別、全文一致、拡張正規表現の使用などに関する、検索の実行方法を調整することもできます。

ショートカットキー: grep 検索は、[ファイルエディタ] から直接、起動することが可能です。Ctrl キーと G キーを同時に押下すると、エディタで選択されている文字列を使用して検索が実行されます。

[アナライザ] タブ

[グラフ] ウィンドウには、ソフトウェアに関するきめの細かいグラフィカル解析を実行する、下位レベル向けの一連の制御機能が用意されています。これらの制御機能を補完するのが [アナライザ] タブです。アナライザでは、あるシンボルの用途や依存性に関わる数多くの重要な要素の本質を示すグラフを生成する、高度で、レベルの高いクエリのリストを作成できます。直面している問題について、出力結果のグラフだけで十分に対応できる場合もあれば、そのグラフが下位レベルにおけるグラフィカルなクエリの新たな行の起点として、機能することもあります。

アナライザのクエリは、シンボル型に対して固有です。クラスの場合は、クラス階層のような共通事項のみならず、クラスが持つパブリック・インターフェイス、内部的な制御フロー、メンバが使用される場所、あらゆる依存性などの情報を調査することができます。また関数においては、ある関数から呼び出されたり使用されたりするだけの関数や、グローバル変数のような制御フローならびに変数の使用における、関数の役割について数多くの側面を確認することが可能です。

一部の解析については、情報を突き合わせながら、シンボルの複数の側面を調べる必要性が生じることがあります。このような場合には、[アナライザ] タブにある [新規グラフ] ボタンをクリックすることで、現在のグラフをそのままに、別のグラフを作成することが可能です。

1つのシンボルに焦点を置いたこれらの解析に加えて、アナライザは2つのシンボル間における関係の依存性解析を提供します。これらの解析では、1つの関数が呼び出す任意のパス、あるいは別の関数に呼び出される任意のパス、もしくはある関数によって間接的に設定される1つの変数など、間接的な関係を検出します。さらに、2つの特定の変数を間接的に読み取る任意の関数や、2つの特定の関数によって設定される任意の変数など、共有の階層構造の解析も行います。

起動方法: 任意のディスプレイに表示されているシンボルを右クリックし、コンテキスト・センシティブメニューからアナライザを起動することが可能です。より簡単な方法は、対象のシンボルの上で Alt キーを押下しながら左クリックをします。

ショートカット: 2つのシンボルの関係クエリを実行する場合、アナライザの第一のフォーカスと同時に、2つめのシンボルを指定する必要があります。関係のクエリには、シンボルを選択するためのポップアップ・フィールドが用意されています。 ただし、デフォルトの2つめのシンボルは、前回アナライザがフォーカスしたものとなります。このため、2つのシンボルの内1つにアナライザをフォーカスしたのち、残りの1つにフォーカスすることが、関係クエリを指定する最も簡単な方法です。