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

アナライザの構文とオプション(Java)

Imagix 4D Java アナライザは、単独で動作する実行ファイルであり、Imagix 4D のデータベースおよびユーザ・インターフェイスから独立しています。また、この実行ファイルは ../imagix/bin directory ディレクトリに格納されており、次の構文を使用します。

imagix-java [option...] file...

option には、imagix-java のオプション(以下で説明)を1つ以上指定することができ、file には1つ以上のソースファイルをフルパス名で記述します。これらは通常 .java 関連のソースファイルであることが多いです。解析の対象となる file のリストでクラスおよび jar ファイルを直接インクルードすることもできますが、これらは通常、ソースコードに記述の import classname ディレクティブ、または imagix-java 構文の呼び出しによる -cp クラスパス・オプションの結果として解析されます。

Imagix 4D Java アナライザがサポートするオプションは以下の通りです。

-cmmd Filename   Filename に記述されたコマンドを追加します。

imagix-csrc ソースアナライザは、コマンドラインで実行します。-cmmd は、コマンドライン・オプションを間接的に指定するオプションです。Filename に記述されたオプションはすべて、コマンドラインで指定されたオプションに追加されます。Filename に複数の行が記述される場合、imagix-java は Filename 内に記述されている以下の各行から、その都度オプションと一緒に、複数回起動されるように動作します。

-cp Dirname   クラスファイルを検索するクラスパスのリストに Dirname を追記します。
-cp Filename   クラスファイルを検索する jar ファイルのリストに Filename を追記します。

アナライザがソースファイルに記述された import classname ディレクティブを認識すると、-cp オプションで指定されたあらゆるディレクトリおよび jar ファイルで、クラスファイル classname.class を検索します。

-cp の後に Dirname を記述すると、そのディレクトリはクラスファイルを検索する際の基準のディレクトリとなります。classname 内のパッケージ名はすべて、クラスパス Dirname のサブディレクトリとして処理されます。例えば、クラスパス Dirname が /some/dir で import classname が pkgA.pkgB.classC の場合、アナライザはディレクトリ /some/dir/pkgA/pkgB で classC.class というファイルを検索します。

-cp の後に Filename を記述すると、jar ファイルの Filename にあるクラスファイルが解析されます。デフォルトでは、jar ファイルに記述された全クラスファイルの内容に関するデータが生成されます。-impmin オプションを使用すると、ソースコードに import ディレクティブがあるクラスファイルに関連するデータのみが生成されます。

ディレクトリおよび jar ファイルのコンテナは、コマンドラインで -cp オプションを使用した際に記述した順序で検索されます。

-genflowDirname   ディレクトリ Dirname 内のファイルに、シーケンス図およびデータフローに関するデータを書き込みます。

アナライザは解析済みのソースコードの中に存在する、シーケンス図とデータフローに関するディスプレイとレポートを生成するためのデータを収集します。このフローデータは、エンティティ、関係、属性データが格納されているディレクトリとは別の場所にあるファイルに保存されます。-genflow オプションは、これらフローデータの格納場所を制御します。Imagix 4D でこのデータを検索するには、-genvdb のデータとして同じディレクトリのパスで(例: -genvdb データに並列するように)、cfd という名前のディレクトリを検索先として指定する必要があります。-genflow が指定されない場合、フローデータは生成されず、くわえてフローチャート、シーケンス図、一部のレポートも作成されません。

このオプションはデータソースを追加することで自動的に設定されます。

-genqcfDirname   ディレクトリ Dirname 内のファイルに品質管理データを書き込みます。

アナライザはソースコード・チェックを実行し、解析済みのソースファイルに記述されたシンボルに関するメトリクスを収集します。この品質管理データは、エンティティ、関係、属性データが格納されているディレクトリとは別の場所にあるファイルに保存されます。-genqcf オプションは、これら品質管理データファイルの格納場所を制御します。Imagix 4D でこのデータを検索するには、-genvdb のデータとして同じディレクトリのパスで(例: -genvdb データに並列するように)、qcm という名前のディレクトリを検索先として指定する必要があります。-genqcf が指定されない場合、品質管理データは生成されず、くわえて特定のメトリクスおよびレポートが作成されません。

このオプションはデータソースを追加することで自動的に設定されます。

-genvdbDirname   ディレクトリ Dirname 内のデータファイルに、解析結果を書き込みます。

アナライザは、明示的に解析された各ソースファイルのエンティティ、関係、属性データを生成し、ヘッダファイルはそれぞれ直接的あるいは間接的に、これらのソースファイルによってインクルードされます。ただし、システム・インクルード・ディレクトリに格納されているヘッダファイルは、例外となる可能性があります(-S および -nosys オプションを参照)。

-genvdb が指定されると、各ソースファイルもしくはヘッダファイルのデータは、ディレクトリ Dirname 内で別々のファイルに格納されます。これにより増分解析が可能となり、これが推奨される解析方法となります。他に使用できるオプションは -o です。

このオプションはデータソースを追加することで自動的に設定されます。

-impcj:   最初にクラスファイル次に java ファイルの順序で、インポートされたクラスを検索します。

ソースコード内にある import クラス・ディレクティブを認識すると、アナライザはそのクラスの定義を検索します。-impcj オプションが使用されている場合、アナライザは最初に -cp オプションで指定されたクラスファイルを確認します。クラスファイル内でクラス定義を見つけられないと、次にアナライザは解析対象の java ソースファイルに記述された、あらゆるクラス定義を検索します。

-impcj、-impco、-impjcおよび -impjoは、排他的な関係にあるオプションです。このオプションは [データソース] ダイアログの [クラスパス] タブにある [インポートモード] コンボボックスで選択してください。

-impco:   インポートされたクラスの検索先をクラスファイルに限定します。

ソースコード内にある import クラス・ディレクティブを認識すると、アナライザはそのクラスの定義を検索します。-impco オプションが使用されている場合、アナライザはクラスファイルのみを検索対象とします。このため解析対象の java ソースファイルにあるクラスの定義は、すべて無視されます。

-impcj、-impco、-impjcおよび -impjoは、排他的な関係にあるオプションです。このオプションは [データソース] ダイアログの [クラスパス] タブにある [インポートモード] コンボボックスで選択してください。

-impjc:   最初に java ファイル次にクラスファイルの順序で、インポートされたクラスを検索します。

ソースコード内にある import クラス・ディレクティブを認識すると、アナライザはそのクラスの定義を検索します。-impjc オプションが使用されている場合、アナライザは最初に解析対象の java ソースファイルを確認します。.java ファイルでクラス定義を見つけられないと、次にアナライザは -cp オプションで指定されたクラスファイルで、クラス定義を検索します。

-impcj、-impco、-impjcおよび -impjoは、排他的な関係にあるオプションです。このオプションは [データソース] ダイアログの [クラスパス] タブにある [インポートモード] コンボボックスで選択してください。

-impjo:   このオプションは、Javaファイル内でのみインポートされたクラスを検索します。

ソースコードにインポートされたクラスのディレクティブがある場合、アナライザはそのクラスの定義を検索します。もし -impjoオプションが使用されている場合、アナライザはJavaファイル内だけを見ます。解析対象のクラスソースファイル内にあるクラスの定義は無視されます。

-impcj、-impco、-impjcおよび -impjoは、排他的な関係にあるオプションです。このオプションは [データソース] ダイアログの [クラスパス] タブにある [インポートモード] コンボボックスで選択してください。

-impmin:   jar ファイルにインポートされていないクラス用のデータを生成しません。

アナライザは -cp オプションにより jar ファイルを識別します。通常、アナライザは jar ファイルにあるクラスファイルすべてに関するデータを収集します。-impmin オプションを使用すると、解析対象のファイルに import class ディレクティブが記述されたクラスファイルに関するデータのみが生成されます。

-impwopkg:   import ディレクティブ用のパッケージ名を無視します。

import ディレクティブを処理する際、ソースアナライザはパッケージ名の一部を含めた、完全な import 名の java ファイル、あるいはクラスファイルを見つけようとします。-impwopkg オプションを指定し初回の検索に失敗すると、次にソースアナライザはパッケージ名を無視して java ファイルまたはクラスファイルを検索します。

-incFilename   各ファイルの解析開始時に Filename をインクルードします。

-inc オプションは、解析対象の各ソースファイルの冒頭に import Filename ディレクティブを追記することと同じ機能を果たします。したがって、ファイルそのものを修正せずにファイルの解析方法を変更することが可能です。

本オプションは主に、言語設定ファイルのインクルードに使用されます。これらの設定ファイルは通常、それぞれの環境における jar ファイル用のクラスパス・コマンドが記述されています。これにより、Imagix 4D アナライザはコードの解析時に、各 Java 言語環境をエミュレートすることが可能となるのです。

Filename は、[データソース] ダイアログの [ソースファイル] タブにある [言語] コンボ・ボックスで ../imagix/user/java_cfg 内のファイルから、選択してください。

-java4:   Java 1.4 の構文を使用してソースコードを解析します。

Imagix 4D Java アナライザのデフォルトの動作では、Java のバージョン1.8 の構文に従いソースコードを解析します。本オプションが適用されると、ソースコードは旧式の構文に基づいて解析されます。

このオプションは [データソース] ダイアログの [ソースファイル] タブにある [オプション] フィールドに追加するか、言語設定ファイルに指定します。

-locals:   ローカル変数に関するデータを収集します。

ローカル変数は、定義されている関数によって設定されるか読み取り専用とされるため、通常、Imagix 4D アナライザはグローバル変数および静的変数に関するデータのみを収集します。つまりローカル変数は、ソフトウェアを理解する上において、あまり重要な要素ではないのです。しかし [クラスの結合度] のような特定の品質メトリクスに関心がある場合など、状況によりローカル変数に関するデータを取得する必要が生じるかもしれません。このような場合に -locals オプションを使用することによって、ローカル変数の定義や使用方法に関するデータを、データファイルに追加することができます。

このオプションは [データ収集オプション] ダイアログの、解析オプションの1つとして指定します。

-mark:   あらゆるアナライザ・メッセージに "imagix: " を挿入します。

通常、アナライザのエラーメッセージには、エラー発生場所のファイル名が行頭に記述されますが、-mark オプションを使用することで、すべてのエラーメッセージの行頭に "imagix: " が挿入されます。このため Makefile でアナライザを実行中の場合など、エラーメッセージが他のメッセージに混入して標準エラー出力(stderr)されるようなケースに有用です。

このオプションは [データソース] ダイアログの [ソースファイル] タブにある [オプション] フィールドに追加するか、言語設定ファイルに指定します。

-sfx:   -genflow および -genqcf データに関連するファイル名に接尾辞を追記します。

通常 -genflow ならびに -genqcf スイッチで生成されたデータは、対応するオリジナルのソースファイルならびにヘッダファイルと同じ接尾辞のファイル名に格納されます。これにより、ある特定の構成管理システムでは、問題が生じる場合があるのです。-sfx オプションは、ファイル名の末尾に _sfx を追記することで、.java ソースファイルから生成されたデータを .java_sfx というファイル名の形式で保存します。

このオプションは [データソース] ダイアログの [ソースファイル] タブにある [オプション] フィールドに追加するか、言語設定ファイルに指定します。

-vuid:   解析する各シンボル用の VUID を生成します。

プロジェクトに関するドキュメントを作成する際、通常は1つのパスに全ドキュメントを置きます。この場合にデータベースがロードされると、ハイパーテキスト・リンクで使用するシンボル識別子が割り当てられるのです。ドキュメントは単一のセッションで作成されるため、各 HTML ページで同一の識別子が使用されます。

-vuid オプションは、プロジェクトがロードされる時ではなく、ソースコードが解析されるタイミングで、ビジュアライザ固有の識別子を生成します。これによりプロジェクトのセッション間における識別子の一貫性を保ち、部分的かつ増分の HTML ファイルを生成することができるのです。部分的また増分のドキュメント作成に関する詳細は ../imagix/user/doc_gen/sample.dg_ を参照してください。

このオプションは [データソース] ダイアログの [ソースファイル] タブにある [オプション] フィールドに追加するか、言語設定ファイルに指定します。

-warn:   アナライザの警告をすべて返します。

ソースコード解析の際、Imagix 4D アナライザはソースコードそのもの、もしくはコード解析に使用されるマクロ定義およびインクルード・パスにより、構文エラーもしくは意味エラーを検出することがあります。

デフォルトでアナライザは、インクルード・ファイルが存在しなかったり、アナライザと再同期するためコードを何行かスキップする必要があったりと、重大な問題が発生した場合にエラーメッセージを返します。-warn オプションを使用すると、アナライザは検出したあらゆる問題に対するメッセージを返します。

後の解析において、深刻なエラーに繋がる初期の問題の切り分けに、-warn オプションを使用すると効果的な場合があります。

本オプションは常にユーザ・インターフェイスから有効にしてください。[解析結果] ウィンドウにおける生成された警告メッセージの表示 / 非表示は、ディスプレイ設定容([表示] > [~~を表示])に従います。