|
構造ビュー[構造] ビューは、高レベルのアーキテクチャから、ビルド、手続き、データ、およびクラス依存関係の詳細に至るまで、あらゆるレベルにおけるソフトウェアの体系的な調査を可能にします。Imagix 4D データベースに格納されるデータは、特定のソフトウェア・プロジェクトを問わず、膨大な量となる可能性があります。グラフィカル解析では、現在、調査対象となっている特定の情報に重点を置き [グラフ] ウィンドウに表示します。その中でも第一にあげられるのは [ビュー] メカニズムでです。これによって [グラフ] ウィンドウに表示するシンボルおよび関係の型を調整することができます。[構造] ビューにおいては、表示する関係型を指定することができ、幅が広くきわめて粒度の細かい一連のシンボル型を選択することが可能です。 また関数の複雑度や、テストケースがコードをどの程度完全に実行したかなど、ソフトウェアの定量的な特性を調べることもできます。ソフトウェア・メトリクスの情報は、各シンボルに関連付けられたメトリクス値を示すよう、色分して [グラフ] ウィンドウに表示することが可能です。これにくわえて、特定の [フローチェック] レポートによって識別された関数を表すために、色分け表示することもできます。 グラフの外観ならびにレイアウトは、[グラフ] ウィンドウの下にあるチェックボックスで調整します。範囲と方向の設定を調整することで、現在のグラフ内のコンテンツを、より見やすくすることが可能です。また、レイアウトおよび起点の設定では、グラフ上のシンボルの相対的な位置関係を変更することができます。これらの設定は、グラフに表現された固有の構造や依存関係をいかに素早く完全に理解し得るのか、という点に影響を及ぼします。 ビューの範囲Imagix 4D データベースには、ソフトウェアに内在するさまざまなシンボル、ならびにそれらの相互関係に関する情報が格納されます。シンボルとは、ソフトウェアのオブジェクトあるいは要素を指します。例えば、ヘッダファイル、クラス、マクロなどがこれに相当します。また関係とは、ある関数から別の関数への呼び出し、あるいは宣言の中でデータ型を使用する変数など、方向を示すことで2つのシンボル間における関係性を表すものです。全体的に見て、Imagix 4D によって収集されるシンボルおよび関係の情報は、ソフトウェアの多種多様な側面をカバーします。この側面が意味するところは、ファイル間におけるインクルードの依存関係から、別のクラスからあるクラスへの派生、設定されたり読み取られたりする変数に至るまで多岐にわたります。 [構造] ビューを用いることで、これらすべての情報をビューすることができます。ビューメカニズムでは、ソフトウェアの特定の側面における解析を有用にすることを目的に、[グラフ] ウィンドウでビューを可能とする特定のシンボルおよび関係型を設定することが可能です。 通常は、[ビュー] メニューにリストされた構造ビューの1つを選択します。プロジェクト内に存在するシンボルの型によりますが、メニューには最大10件までの構造ビューがリスト表示されます。事前に定義されたシンボル型と関係型の組み合わせを用いることで、一般的に調査の対象となるソフトウェアの多くの構造的な側面を調べることが可能です。 例えば、[変数付き関数呼び出し] ビューでは、ソフトウェアにおける関数の呼び出し階層を調べることができ、それと同時に、それらの関数の中でグローバル変数および静的変数の使用方法を確認することができます。
例えば変数(variables)のチェックを外すと設定されたり読み取られたりするビュー可能なシンボルがなくなるため、関数から変数に対する設定および読み取りの関係も、グラフから消去されるのです。また [ビュー設定] では、表示される関係を意図的に制限する必要性が生じる場合があります。すなわち、ある関数によって設定される変数はすべて表示し、ある関数によって読み取られる変数を非表示にするようなケースです。表示する関係を調整することは、現在のグラフのレイアウトのみならず、[追加] 関数から関係クエリを実行した際に追加されるシンボルにも影響を及ぼします。 頻繁に使用する特定のシンボル型と関係型の組み合わせがある場合には、[ビュー設定] にある [保存] 機能を使用して、該当のビューを既存のビュー定義のリストに追加することが可能です。 グラフの外観さらにグラフの外観を調整することにより、データを見やすく理解しやすい形で表示することもできます。一例をあげると [グラフ] ウィンドウでシンボルの形状や配置を変えることによって、調査対象のコードに内在する構造ならびに依存関係の理解を向上するよう、ディスプレイを最適化することが可能です。
これら2つのディスプレイ・スタイルに大きな違いはなく、唯一その外観だけが異なり、常にいずれかのディスプレイを使用することができます。チャートディスプレイは、関連する実際のシンボルと依存関係の調査に最も適しており、対照的にグラフディスプレイは表示可能なシンボル間における依存関係の構造の理解に、きわめて有用であることが分かると思います。 同様に [垂直] チェックボックスは、論理的なレイアウトを変更することなく、グラフの外観のみを変えることができます。このチェックボックスは、グラフを上から下への(縦<垂直>の)流れで描画するか、左から右への(横<水平>の)流れで描画するかを設定する項目です。それぞれが理解しやすい表示に設定してください。この他にも、グラフの読み易さや直観的な視認性を改善するために、描画の方向を変更する必要が生じるケースもあります。 グラフのレイアウト外観にくわえて、レイアウトも調節することが可能です。レイアウトを編集することによって、現在の解析用のレイアウトが向上すると考えるユーザが多いため、簡単に操作できるようメニューボタンとチェックボックスを、[グラフ] ウィンドウの下部に配置しています。シンボル間の関係には、すべて方向性があります。例えば、関数が変数に値を代入するときに生じる設定の関係においては、関数から変数に対する方向性を持ちます。グラフに表示される、他の表示可能なシンボルから向かってくる関係を持たないシンボルはすべてルート と見なされます。また、表示可能な他のシンボルへ向かう関係を持たないシンボルはすべて、リーフ と見なされるのです。
ルートを基準にした判断が必要となるケースが多くあるかと思います。例えば、ある関数の呼び出し階層をビューしている最中に、関数 X のサブツリーを切り離し、そのサブツリーを調査すると仮定します。ルートレイアウトでは、関数 X に直接呼び出される関数と、それらの関数によって使用されるその他の関数を明確に指摘します。そのような場合でも、リーフレイアウトでの表示が適切となるインスタンスが数多くあるのです。また同じようにある呼び出し階層を確認していても、今度は、ある変数がどのように使われているかを把握する必要があると想定します。このような場合には、コンパクト / リーフ レイアウトのグラフを使用することで、当該変数を直接的に設定したり読み取ったりしている関数や、それらの関数を呼び出している関数を表示することができるのです。
メトリクスとレポート結果
さらにメトリクスを選択する際に、グラフに表示されるシンボル間で関連のある値を色を分けて示すか、ユーザが設定した閾値と比較した各シンボルの値を反映したものを色分け表示するかを、選ぶことも可能です。関連のある値を色分け表示する場合には、グラフの下部に現在の範囲が表示されます。また閾値は、[ファイル] > [オプション] ダイアログから設定することができます。 この他にも [表示] 設定を活用し、所定の [フローチェック] でレポートされた関数を特定することも可能です。特に、さまざまな [タスクフローチェック] によってレポートされた問題を調べるために [グラフ] ウィンドウを使用してソフトウェアを解析するような場合に、タスクで使用されていない関数を特定できれば非常に役立つことがあります。
|