Hitachi

COBOL2002 Professional Tool Kit データ影響波及分析ガイド


12.2.2 プログラムの波及レベル

解析対象にする影響プログラムの範囲を設定する波及レベルの説明です。

データ影響波及分析の対象とする波及レベルの範囲

データ影響波及分析では,調査対象データ項目が定義された調査対象プログラムを解析の起点として,調査対象データ項目との間に影響関係を持つプログラム(影響プログラム)の影響範囲を解析します。

波及レベルは,調査対象プログラムから影響プログラムまでに経由するプログラム呼び出しの数を表すもので,プログラムの呼び出し関係を示します。調査対象プログラムの波及レベルには0が設定され,影響プログラムの波及レベルにはプログラムの呼び出し関係によって値(1から始まる数値)が設定されます。内部プログラム(入れ子のプログラム)の場合には,最外側のプログラムと同じ波及レベルが設定されます。波及レベルを指定すると,解析対象にする影響プログラムの範囲を絞り込むことができます。

調査対象プログラムを起点として設定される波及レベルを次の図に示します。

図12‒1 調査対象プログラムを起点として設定される波及レベル

[図データ]

この図に示すように,調査対象プログラム(波及レベル0)の呼び出し元プログラムおよび呼び出し先プログラムは,波及レベル1のプログラムとなります。波及レベル1のプログラムの呼び出し元プログラムおよび呼び出し先プログラムは,波及レベル2のプログラムとなります。このように,調査対象プログラムを起点に経由するプログラムが多くなればなるほど,波及レベルは大きくなります。一度波及レベルを決定したプログラムが,別のプログラムから呼び出された場合は,値が小さい方の波及レベルが設定されます。プログラムに設定された波及レベルが[調査対象選択]ダイアログ,またはcbldiaコマンドの-ProgramImpactLevelオプションで指定した波及レベルの値を超えた場合,そのプログラムは解析対象外となります。

複数のプログラムから呼び出されるプログラムに設定される波及レベルの例を次に示します。

図12‒2 複数のプログラムから呼び出されるプログラムに設定される波及レベルの例

[図データ]

この図の場合,プログラムP008は,プログラムP005とプログラムP009から呼び出されています。調査対象プログラムP003を起点としたプログラムP008の波及レベルは,プログラムP005から呼び出されたときは波及レベル3,プログラムP009から呼び出されたときは波及レベル5となります。データ影響波及分析では,値の小さい方を有効にするため,プログラムP008には波及レベル3が設定されます。このため,波及レベル4を指定すると,プログラムP008も解析対象となります。

波及レベルの設定値は,解析方向の指定値(影響波及元と影響波及先,影響波及元,または影響波及先)の影響は受けません。例えば,同一プログラムが調査対象プログラムの呼び出し元と呼び出し先の両方にある場合,呼び出し先にあるプログラムの方が調査対象プログラムに近いときは,呼び出し元を解析方向(影響波及元)に指定しても呼び出し先にあるプログラムの波及レベルが設定されます。

なお,調査対象がユーザ資産項目の場合,そのユーザ資産項目を使用しているすべてのプログラムには,波及レベル0が設定されます。

複数の調査対象データ項目を同時に解析する際の波及レベルの範囲

調査対象データ項目を複数指定している場合に,それらの項目が属するプログラムが異なるとき,それぞれの調査対象プログラムの波及レベルは0になります。影響プログラムには,それぞれの調査対象プログラムを起点とした波及レベルが設定されます。この場合,それぞれの調査対象プログラムからの影響範囲が重なるプログラムには,値が小さい方の波及レベルが設定されます。複数の調査対象データ項目を同時に解析する際に設定される波及レベルの例を次の図に示します。

図12‒3 複数の調査対象データ項目を同時に解析する際に設定される波及レベルの例

[図データ]

外部データ項目だけでプログラム間の影響関係がある場合の波及レベルの範囲

プログラム情報フィルタリングファイルを指定して解析対象を絞り込んでいる場合,外部データ項目だけでプログラム間に影響が波及することがあります。プログラム情報フィルタリングファイルについては,「付録A.1 プログラム情報フィルタリングファイル」を参照してください。

データ影響波及分析では,次に示す手順で,外部データ項目によるプログラム間の影響関係を持つプログラムに波及レベルを設定します。

  1. 調査対象プログラムを起点とした呼び出し関係を基に波及レベルを設定する

  2. 手順1のプログラムの中で,外部データ項目が定義されたプログラムの波及レベルに1を加えた値を,その外部データ項目と対となる外部データ項目が定義されたプログラムに設定する

  3. 手順2で波及レベルを設定した,対となる外部データ項目が定義されたプログラムを起点とした呼び出し関係を基に波及レベルを設定する

なお,外部データ項目を起点としたプログラム間の呼び出し関係をたどっていくときに,すでに調査対象プログラムを起点とした波及レベルが設定されたプログラムは,呼び出し元または呼び出し先のプログラムとして出現しません。

図12‒4 外部データ項目によるプログラム間の影響関係を持つプログラムに設定される波及レベルの例

[図データ]

この図の場合,プログラムP005とプログラムP007は,調査対象プログラムP001から外部データ項目によって影響が波及しています。

プログラムP005の場合は,調査対象プログラムP001を起点とした呼び出し関係でプログラムP002から呼び出されているため,波及レベル5が設定されます。この場合,調査対象プログラムP001の波及レベルに1を加えた値は設定されません。

プログラムP007の場合は,調査対象プログラムP001から外部データ項目だけで影響が波及しているため,調査対象プログラムP001の波及レベルに1を加えた値(1)が波及レベルとして設定されます。