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

プロジェクト

Imagix 4D におけるプロジェクト という言葉は、調査対象となるソフトウェアの特定の部分に関する、あらゆる情報を格納するリポジトリの意味で使用されます。データをインポートしてビューする際、Imagix 4D はデータソースから情報を抽出し、それをビュー用にロードします。この情報の大半は、カレントプロジェクトに永続的に保存されます。

プロジェクトに関する永続的な情報はすべて、ファイルシステムにディレクトリ構造で格納されます。したがって、プロジェクトは共有リソースとなるのです。通常、ファイルの読み書きのパーミッションは、プロジェクトのディレクトリおよびファイルに適用されます。標準的なパーミッション・メカニズムを使用することによって、アクセスを許可するユーザや、プロジェクトを更新できるユーザを制御することが可能です。また Imagix 4D プロジェクトの最上位ディレクトリには、プロジェクトを識別するために拡張子 .4D が使用されます。

プロジェクトスコープを管理

Imagix 4D の利用頻度が増すにつれて、プロジェクトごとに格納されているデータを管理することが、本ツールを使用することで得られる利点を最大限に活かす重要なポイントである、と認識できます。データ量が多ければ多いほど、プロジェクト内でより広範囲の情報を解析することができます。しかしその一方で、必要となる特定の情報を見つけるためには、より多くの情報をフィルタリングしなければなりません。さらにデータベースの規模が大きい場合は、若干、応答時間が遅くなります。そのため、プロジェクトを定義する際にはスコープに注意を払うことが重要です。

ソースコードのどの部分をプロジェクトに含めるかを決定することに加えて、プロジェクトのサイズを管理するには、ヘッダファイルの内容をどのように含めるかも決定する必要があります。ディレクトリごとに、ヘッダファイルの内容に関するデータをプロジェクトデータベースにロードするかどうかを制御できます。`#include`プリプロセッサディレクティブを通じて含まれるヘッダファイルは、ヘッダに指定された型などに依存するソースコードを正確に処理するために常に解析する必要があります。しかし、通常、stdio.h のような標準システムヘッダファイルや一部のサードパーティライブラリの内部内容を調べることには興味がないでしょう。インクルードディレクトリを指定するために使用される -I および -S オプションは、データベースにロードされ、結果としてプロジェクト内で表示可能になる内容を制御します。

Javaプロジェクトの場合、 -impXX オプションは、プロジェクトデータベース内のサポート詳細の量に似た影響を与えます。指定されたクラスパスに対して、.classファイルまたは .javaファイルのどちらを解析するかを選択します。.javaファイルからは .classファイルよりも多くのデータが収集されます。

混合プロジェクト

Imagix 4D の混合プロジェクト機能では、各プロジェクトで保存されているデータを重複させることなく、混合プロジェクトとして個々のプロジェクトを1つにまとめることを可能とします。ソフトウェアのサブシステムごとにプロジェクトを作成したのち、それらを迅速に結合することで、ソフトウェアをより広範囲にわたりカバーするプロジェクトを作成することができます。

混合プロジェクトを使用して、より規模の大きいプロジェクトを作成することと、それぞれのプロジェクトにある複数のデータソースを追加することでは、意味が異なります。既存の各プロジェクトでは、「データソース」 ダイアログ(「プロジェクト」 > 「データソース」)から、インクルード用にソフトウェアの別々の箇所を複数指定することができます。その後、Imagix 4D は指定されたソフトウェアをすべて解析する必要があるため、関連するプロジェクトを分割することができません。一方で、混合プロジェクトが定義されると、新たなデータを収集することなく、既存の独立したプロジェクトに存在するデータを単純に結合します。

この混合プロジェクトは [混合プロジェクトを開く] ダイアログ([ファイル] > [プロジェクトを開く]... > [結合] >>)で定義します。ダイアログを開き、まず結合の対象となるプロジェクトを指定します。これは、単にプロジェクトを開くための操作となります。これにより Imagix 4D は、指定の各プロジェクトを1つの一時プロジェクトとして結合し、開きます。つまり、選択された個別のプロジェクトをすべてまとめた単一のプロジェクトを作成し、それを開いたような環境を提供するのです。

また、将来的に再び解析が必要となるプロジェクトを混合プロジェクトにする場合は、そのc混合プロジェクトを開かずに、保存することが可能です。この結果、常設的な新しいプロジェクトが作成されます。ここでも、選択した個別のプロジェクトは、すべて1つにまとめられます。新しい混合プロジェクトには、個々のプロジェクトに格納されたデータの重複を防止する機能が搭載されていますが、多くの場面で通常の個別のプロジェクトと同様に動作します。例えば、通常のプロジェクトと同じく、混合プロジェクトを標準の [プロジェクトを開く] ダイアログ([ファイル] > [プロジェクトを開く])から利用することが可能です。唯一の例外としては、プロジェクトの更新時における動作があげられます。混合プロジェクトは、結合された各プロジェクトに基づき現状のステータスを表します。このためソースコードの変更を把握したり、別のアナライザの設定を使用したりするために、混合プロジェクトを更新する必要がある場合、混合プロジェクトを形成している基のプロジェクトを開いて更新ししたのち、再度混合プロジェクトを開く必要があります。

混合プロジェクトは、プロジェクトのスコープ管理に非常に有用であると、捉えることができます。データを重複させずに、非常に速やかに混合プロジェクトを作成することができ、何よりも基本的にディスク容量を消費することがありません。また、混合プロジェクトは基になっている個別のプロジェクトで生成されたデータを指し示すため、この個別プロジェクトのプロジェクトデータを更新することにより、混合プロジェクトを最新の状態に保つことが可能です。さらに混合プロジェクトの混合プロジェクトを作成することができます。